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><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_96b28898-000c-4358-960d-f784fd58c466--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["33584"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_96b28898-000c-4358-960d-f784fd58c466"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.1.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.1.txt new file mode 100644 index 000000000..48d0e886e --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc"} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.2.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.2.txt new file mode 100644 index 000000000..3160a50fc --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/$metadata#Movies(Year,Count)\",\"value\":[{\"@odata.id\":null,\"Year\":1990,\"Count\":10},{\"@odata.id\":null,\"Year\":1989,\"Count\":9},{\"@odata.id\":null,\"Year\":1995,\"Count\":1}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["162"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.1.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.1.txt new file mode 100644 index 000000000..48d0e886e --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc"} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.2.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.2.txt new file mode 100644 index 000000000..3160a50fc --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/$metadata#Movies(Year,Count)\",\"value\":[{\"@odata.id\":null,\"Year\":1990,\"Count\":10},{\"@odata.id\":null,\"Year\":1989,\"Count\":9},{\"@odata.id\":null,\"Year\":1995,\"Count\":1}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["162"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.1.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.1.txt new file mode 100644 index 000000000..48d0e886e --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc"} \ No newline at end of file diff --git a/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.2.txt b/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.2.txt new file mode 100644 index 000000000..3160a50fc --- /dev/null +++ b/MockData/AggregationV4Tests.Get_movie_count_by_year_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/$metadata#Movies(Year,Count)\",\"value\":[{\"@odata.id\":null,\"Year\":1990,\"Count\":10},{\"@odata.id\":null,\"Year\":1989,\"Count\":9},{\"@odata.id\":null,\"Year\":1995,\"Count\":1}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["162"]}],"RequestUri":"http:\/\/localhost\/Movies?$apply=groupby%28%28Year%29%2Caggregate%28%24count%20as%20Count%29%29&$orderby=Count%20desc","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.AllFailures.1.txt b/MockData/BatchDynamicTests.AllFailures.1.txt new file mode 100644 index 000000000..a9e89749d --- /dev/null +++ b/MockData/BatchDynamicTests.AllFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_8fabc28a-5cb1-4ac8-b785-707992bcbc85\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_bbe8c975-c85c-4aa1-bf3a-594d327dea7f\u000d\u000a\u000d\u000a--changeset_bbe8c975-c85c-4aa1-bf3a-594d327dea7f\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_bbe8c975-c85c-4aa1-bf3a-594d327dea7f\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_bbe8c975-c85c-4aa1-bf3a-594d327dea7f--\u000d\u000a--batch_8fabc28a-5cb1-4ac8-b785-707992bcbc85--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_8fabc28a-5cb1-4ac8-b785-707992bcbc85"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.AllFailures.2.txt b/MockData/BatchDynamicTests.AllFailures.2.txt new file mode 100644 index 000000000..d50209423 --- /dev/null +++ b/MockData/BatchDynamicTests.AllFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_117bfd2e-7d7d-406f-8f4c-a740225cc204\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_e6b7665a-0f30-4e18-819a-4539f4fa5074\u000d\u000a\u000d\u000a--changesetresponse_e6b7665a-0f30-4e18-819a-4539f4fa5074\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>The ProductName field is required. \u000aThe ProductName field is required.<\/m:message><m:type>System.InvalidOperationException<\/m:type><m:stacktrace> at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.<\/m:message><m:type>System.Data.Entity.Validation.DbEntityValidationException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges()<\/m:stacktrace><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_e6b7665a-0f30-4e18-819a-4539f4fa5074--\u000d\u000a--batchresponse_117bfd2e-7d7d-406f-8f4c-a740225cc204--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1802"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_117bfd2e-7d7d-406f-8f4c-a740225cc204"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService146\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt new file mode 100644 index 000000000..1d400bc34 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_c273ba18-bf9a-4009-947b-9fcc0bf6b6f0\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_8db339e5-b30c-4e6e-ae13-4d885290c228\u000d\u000a\u000d\u000a--changeset_8db339e5-b30c-4e6e-ae13-4d885290c228\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test15<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_8db339e5-b30c-4e6e-ae13-4d885290c228\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test16<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_8db339e5-b30c-4e6e-ae13-4d885290c228\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/$1\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/$2\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test17<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_8db339e5-b30c-4e6e-ae13-4d885290c228--\u000d\u000a--batch_c273ba18-bf9a-4009-947b-9fcc0bf6b6f0--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_c273ba18-bf9a-4009-947b-9fcc0bf6b6f0"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt new file mode 100644 index 000000000..0d88ac933 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_37c1e193-a306-4081-aceb-a801b2975b7e\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_85cca055-a1f1-46d8-9b36-8867e3f46ba3\u000d\u000a\u000d\u000a--changesetresponse_85cca055-a1f1-46d8-9b36-8867e3f46ba3\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1048)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1048)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_85cca055-a1f1-46d8-9b36-8867e3f46ba3\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1049)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1049)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_85cca055-a1f1-46d8-9b36-8867e3f46ba3\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories(1050)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories(1050)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_85cca055-a1f1-46d8-9b36-8867e3f46ba3--\u000d\u000a--batchresponse_37c1e193-a306-4081-aceb-a801b2975b7e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1751"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_37c1e193-a306-4081-aceb-a801b2975b7e"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt new file mode 100644 index 000000000..070297430 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt new file mode 100644 index 000000000..479d235c4 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories(1050)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1050)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1050)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories(1050)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1050)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1048)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1048)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1048)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1048)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1048)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1048<\/d:ProductID><d:ProductName>Test15<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1050<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Products(1049)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1049)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1049)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1049)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1049)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1049<\/d:ProductID><d:ProductName>Test16<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1050<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1050<\/d:CategoryID><d:CategoryName>Test17<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4522"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService149\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt new file mode 100644 index 000000000..e7b22770c --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_3d0dec6f-4bfd-4315-b674-56f883b8b21e\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_39796441-63f7-42f9-8f15-1b1a344c8f4a\u000d\u000a\u000d\u000a--changeset_39796441-63f7-42f9-8f15-1b1a344c8f4a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Categories HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">0<\/d:CategoryID>\u000d\u000a <d:CategoryName>Test13<\/d:CategoryName>\u000d\u000a <d:Picture m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_39796441-63f7-42f9-8f15-1b1a344c8f4a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/$1\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test14<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_39796441-63f7-42f9-8f15-1b1a344c8f4a--\u000d\u000a--batch_3d0dec6f-4bfd-4315-b674-56f883b8b21e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_3d0dec6f-4bfd-4315-b674-56f883b8b21e"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt new file mode 100644 index 000000000..ed114e034 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_9327dd10-773e-454d-a699-22a90ff135b6\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_91aca558-b68e-4487-b8f7-66326779de7c\u000d\u000a\u000d\u000a--changesetresponse_91aca558-b68e-4487-b8f7-66326779de7c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Categories(1046)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Categories(1046)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1046)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1046)\/Products\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1046<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_91aca558-b68e-4487-b8f7-66326779de7c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products(1047)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products(1047)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1047)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1047)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1047)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1047)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1047<\/d:ProductID><d:ProductName>Test14<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1046<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_91aca558-b68e-4487-b8f7-66326779de7c--\u000d\u000a--batchresponse_9327dd10-773e-454d-a699-22a90ff135b6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4055"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_9327dd10-773e-454d-a699-22a90ff135b6"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt new file mode 100644 index 000000000..1ad4a72ee --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt new file mode 100644 index 000000000..4c79e6b0b --- /dev/null +++ b/MockData/BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products(1047)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1047)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1047)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Categories(1046)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1046)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1046)\/Products\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1046<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1047)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1047)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1047<\/d:ProductID><d:ProductName>Test14<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1046<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2785"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService148\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.1.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.1.txt new file mode 100644 index 000000000..252d839ce --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_31cbf11b-f717-4640-b1d3-3240180610d8\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_64f99cd1-bff3-486a-9973-fad036784b05\u000d\u000a\u000d\u000a--changeset_64f99cd1-bff3-486a-9973-fad036784b05\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test12<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_64f99cd1-bff3-486a-9973-fad036784b05--\u000d\u000a--batch_31cbf11b-f717-4640-b1d3-3240180610d8--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_31cbf11b-f717-4640-b1d3-3240180610d8"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.10.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.10.txt new file mode 100644 index 000000000..602b4a32b --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.10.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_0f9e16fd-29f7-45bc-bc5e-93c0b2059f7a\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_d20c1232-156d-4cb7-a4c8-45d61e9f76fc\u000d\u000a\u000d\u000a--changesetresponse_d20c1232-156d-4cb7-a4c8-45d61e9f76fc\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_d20c1232-156d-4cb7-a4c8-45d61e9f76fc--\u000d\u000a--batchresponse_0f9e16fd-29f7-45bc-bc5e-93c0b2059f7a--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["508"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_0f9e16fd-29f7-45bc-bc5e-93c0b2059f7a"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.11.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.11.txt new file mode 100644 index 000000000..bbfea7b77 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.11.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.12.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.12.txt new file mode 100644 index 000000000..3519a9052 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.12.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.2.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.2.txt new file mode 100644 index 000000000..5b5c4dcdc --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_be767849-5827-4b20-975e-d9942d1ec665\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_c1fb9d6e-55b2-4503-a5e6-c82b6024915c\u000d\u000a\u000d\u000a--changesetresponse_c1fb9d6e-55b2-4503-a5e6-c82b6024915c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_c1fb9d6e-55b2-4503-a5e6-c82b6024915c--\u000d\u000a--batchresponse_be767849-5827-4b20-975e-d9942d1ec665--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["761"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_be767849-5827-4b20-975e-d9942d1ec665"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.3.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.3.txt new file mode 100644 index 000000000..bbfea7b77 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.4.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.4.txt new file mode 100644 index 000000000..b60efbd21 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1051)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1051)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1051)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1051)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1051<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.5.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.5.txt new file mode 100644 index 000000000..64e5f014e --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_f00d7060-96c3-4b35-8c51-21b095a52ced\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_82fc5c3b-9c91-49bd-aaae-0068be1674ed\u000d\u000a\u000d\u000a--changeset_82fc5c3b-9c91-49bd-aaae-0068be1674ed\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_82fc5c3b-9c91-49bd-aaae-0068be1674ed--\u000d\u000a--batch_f00d7060-96c3-4b35-8c51-21b095a52ced--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_f00d7060-96c3-4b35-8c51-21b095a52ced"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.6.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.6.txt new file mode 100644 index 000000000..b6216346f --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_33a192ed-5fdc-44ee-a74f-cf0e05a0b1b6\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_311a6491-70ee-43d2-9847-95c57b0de793\u000d\u000a\u000d\u000a--changesetresponse_311a6491-70ee-43d2-9847-95c57b0de793\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_311a6491-70ee-43d2-9847-95c57b0de793--\u000d\u000a--batchresponse_33a192ed-5fdc-44ee-a74f-cf0e05a0b1b6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["562"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_33a192ed-5fdc-44ee-a74f-cf0e05a0b1b6"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.7.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.7.txt new file mode 100644 index 000000000..bbfea7b77 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.8.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.8.txt new file mode 100644 index 000000000..85ab74580 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1051)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1051)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1051)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1051)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1051<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.9.txt b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.9.txt new file mode 100644 index 000000000..e5227f8a9 --- /dev/null +++ b/MockData/BatchDynamicTests.InsertUpdateDeleteSeparateBatches.9.txt @@ -0,0 +1 @@ +{"Content":"--batch_89ef3268-acc9-490f-a528-e6aa42c1dab0\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_19c8d4be-72cc-4e80-9415-44f372a70b16\u000d\u000a\u000d\u000a--changeset_19c8d4be-72cc-4e80-9415-44f372a70b16\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/Products(1051) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_19c8d4be-72cc-4e80-9415-44f372a70b16--\u000d\u000a--batch_89ef3268-acc9-490f-a528-e6aa42c1dab0--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_89ef3268-acc9-490f-a528-e6aa42c1dab0"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService150\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.1.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.1.txt new file mode 100644 index 000000000..f1d2bd006 --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_276ee17c-32f2-4d46-a786-9beb557dc93b\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_5243ba64-4657-4c63-9436-86eb9f59286f\u000d\u000a\u000d\u000a--changeset_5243ba64-4657-4c63-9436-86eb9f59286f\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_5243ba64-4657-4c63-9436-86eb9f59286f--\u000d\u000a--batch_276ee17c-32f2-4d46-a786-9beb557dc93b--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_276ee17c-32f2-4d46-a786-9beb557dc93b"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.2.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.2.txt new file mode 100644 index 000000000..d1441fa19 --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_d9b78dc1-5fe1-4e06-bab7-0bd510e3fcbc\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_2bf40a70-32f5-42ea-b661-6dda056616c7\u000d\u000a\u000d\u000a--changesetresponse_2bf40a70-32f5-42ea-b661-6dda056616c7\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1041)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1041)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1041)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1041)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1041<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_2bf40a70-32f5-42ea-b661-6dda056616c7--\u000d\u000a--batchresponse_d9b78dc1-5fe1-4e06-bab7-0bd510e3fcbc--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_d9b78dc1-5fe1-4e06-bab7-0bd510e3fcbc"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.3.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.3.txt new file mode 100644 index 000000000..16ba3856e --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_5f911997-bde6-4ff3-9990-5fac9ef1b231\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_d03bf14d-3b78-4d0f-9e2c-da2286708a5b\u000d\u000a\u000d\u000a--changeset_d03bf14d-3b78-4d0f-9e2c-da2286708a5b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_d03bf14d-3b78-4d0f-9e2c-da2286708a5b--\u000d\u000a--batch_5f911997-bde6-4ff3-9990-5fac9ef1b231\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_5f911997-bde6-4ff3-9990-5fac9ef1b231\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_803e0cb4-cd7c-45ed-bcb0-59d15eec84d9\u000d\u000a\u000d\u000a--changeset_803e0cb4-cd7c-45ed-bcb0-59d15eec84d9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041) HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">23<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_803e0cb4-cd7c-45ed-bcb0-59d15eec84d9--\u000d\u000a--batch_5f911997-bde6-4ff3-9990-5fac9ef1b231\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_5f911997-bde6-4ff3-9990-5fac9ef1b231--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_5f911997-bde6-4ff3-9990-5fac9ef1b231"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.4.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.4.txt new file mode 100644 index 000000000..857bab839 --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_368501d3-cc55-433a-b0fd-0c89f0fcd182\u000d\u000a\u000d\u000a--changesetresponse_368501d3-cc55-433a-b0fd-0c89f0fcd182\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_368501d3-cc55-433a-b0fd-0c89f0fcd182--\u000d\u000a--batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1041)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1041)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1041)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1041)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1041<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_0bb95ae8-29c3-4905-803b-a35625365eec\u000d\u000a\u000d\u000a--changesetresponse_0bb95ae8-29c3-4905-803b-a35625365eec\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_0bb95ae8-29c3-4905-803b-a35625365eec--\u000d\u000a--batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1041)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1041)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1041)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1041)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1041<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5616"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_8dcd5f9a-467a-4f71-b5bd-3d94de96e451"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.5.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.5.txt new file mode 100644 index 000000000..4074d85cb --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.6.txt b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.6.txt new file mode 100644 index 000000000..920ab65fe --- /dev/null +++ b/MockData/BatchDynamicTests.MultipleUpdatesSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products(1041)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1041)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1041)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1041)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1041)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1041<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService145\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.PartialFailures.1.txt b/MockData/BatchDynamicTests.PartialFailures.1.txt new file mode 100644 index 000000000..24592141d --- /dev/null +++ b/MockData/BatchDynamicTests.PartialFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_334798e1-9019-4f0e-a704-69a505e34817\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_ef38efa8-7d46-4c2c-a371-3a0b8d5a1566\u000d\u000a\u000d\u000a--changeset_ef38efa8-7d46-4c2c-a371-3a0b8d5a1566\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ef38efa8-7d46-4c2c-a371-3a0b8d5a1566\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <d:SupplierID m:type=\"Edm.Int32\">65535<\/d:SupplierID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ef38efa8-7d46-4c2c-a371-3a0b8d5a1566--\u000d\u000a--batch_334798e1-9019-4f0e-a704-69a505e34817--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_334798e1-9019-4f0e-a704-69a505e34817"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.PartialFailures.2.txt b/MockData/BatchDynamicTests.PartialFailures.2.txt new file mode 100644 index 000000000..4d0e4bb56 --- /dev/null +++ b/MockData/BatchDynamicTests.PartialFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_3cc66a07-aad4-41e1-85bd-c3a30e93249c\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_b109c7b9-dfd6-4dc9-836e-d4d923c08672\u000d\u000a\u000d\u000a--changesetresponse_b109c7b9-dfd6-4dc9-836e-d4d923c08672\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Infrastructure.DbUpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Core.UpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() \u000a at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction) \u000a at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction) \u000a at System.Data.Entity.Internal.InternalContext.SaveChanges()<\/m:stacktrace><m:internalexception><m:message>The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.Products_dbo.Suppliers_SupplierID\". The conflict occurred in database \"NorthwindModel.NorthwindContext\", table \"dbo.Suppliers\", column 'SupplierID'. \u000aThe statement has been terminated.<\/m:message><m:type>System.Data.SqlClient.SqlException<\/m:type><m:stacktrace> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) \u000a at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) \u000a at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) \u000a at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() \u000a at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) \u000a at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()<\/m:stacktrace><\/m:internalexception><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_b109c7b9-dfd6-4dc9-836e-d4d923c08672--\u000d\u000a--batchresponse_3cc66a07-aad4-41e1-85bd-c3a30e93249c--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5038"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_3cc66a07-aad4-41e1-85bd-c3a30e93249c"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService147\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.1.txt b/MockData/BatchDynamicTests.Success.1.txt new file mode 100644 index 000000000..c708ecaf0 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_abf6a32f-f01d-4804-a988-378d183131b8\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_7e40d24e-108f-436d-8002-ba1d6720aa49\u000d\u000a\u000d\u000a--changeset_7e40d24e-108f-436d-8002-ba1d6720aa49\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_7e40d24e-108f-436d-8002-ba1d6720aa49\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_7e40d24e-108f-436d-8002-ba1d6720aa49--\u000d\u000a--batch_abf6a32f-f01d-4804-a988-378d183131b8--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_abf6a32f-f01d-4804-a988-378d183131b8"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.2.txt b/MockData/BatchDynamicTests.Success.2.txt new file mode 100644 index 000000000..090c88300 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_53730cd0-1a66-4686-a9ed-af205d2bad3a\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_3d15b3d9-237a-41cb-848e-00d7b12ab92a\u000d\u000a\u000d\u000a--changesetresponse_3d15b3d9-237a-41cb-848e-00d7b12ab92a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1039)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1039)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_3d15b3d9-237a-41cb-848e-00d7b12ab92a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1040)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1040)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_3d15b3d9-237a-41cb-848e-00d7b12ab92a--\u000d\u000a--batchresponse_53730cd0-1a66-4686-a9ed-af205d2bad3a--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_53730cd0-1a66-4686-a9ed-af205d2bad3a"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.3.txt b/MockData/BatchDynamicTests.Success.3.txt new file mode 100644 index 000000000..1b6a7b8e5 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.4.txt b/MockData/BatchDynamicTests.Success.4.txt new file mode 100644 index 000000000..ef9219985 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1039)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1039)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1039)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1039)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1039)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1039<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.5.txt b/MockData/BatchDynamicTests.Success.5.txt new file mode 100644 index 000000000..d2a73f9a3 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products?$filter=ProductName%20eq%20%27Test2%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.Success.6.txt b/MockData/BatchDynamicTests.Success.6.txt new file mode 100644 index 000000000..b36735c26 --- /dev/null +++ b/MockData/BatchDynamicTests.Success.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products(1040)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1040)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1040)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1040)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1040)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1040<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService144\/Products?$filter=ProductName%20eq%20%27Test2%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.1.txt b/MockData/BatchDynamicTests.SuccessWithResults.1.txt new file mode 100644 index 000000000..672219028 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_3cc1e8ab-a82f-46cb-b4ed-f4c0b9dc3627\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_a1e97cac-498a-4002-9a48-00065b396cfe\u000d\u000a\u000d\u000a--changeset_a1e97cac-498a-4002-9a48-00065b396cfe\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_a1e97cac-498a-4002-9a48-00065b396cfe\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_a1e97cac-498a-4002-9a48-00065b396cfe--\u000d\u000a--batch_3cc1e8ab-a82f-46cb-b4ed-f4c0b9dc3627--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_3cc1e8ab-a82f-46cb-b4ed-f4c0b9dc3627"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.2.txt b/MockData/BatchDynamicTests.SuccessWithResults.2.txt new file mode 100644 index 000000000..a31897153 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_66b8a315-bf14-49fd-960b-677fc8e18f8e\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_40563712-1002-4896-9834-d0992f1d0f44\u000d\u000a\u000d\u000a--changesetresponse_40563712-1002-4896-9834-d0992f1d0f44\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1053)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1053)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1053)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1053)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1053)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1053)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1053<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_40563712-1002-4896-9834-d0992f1d0f44\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1054)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1054)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1054)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1054)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1054)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1054)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1054<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_40563712-1002-4896-9834-d0992f1d0f44--\u000d\u000a--batchresponse_66b8a315-bf14-49fd-960b-677fc8e18f8e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4646"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_66b8a315-bf14-49fd-960b-677fc8e18f8e"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.3.txt b/MockData/BatchDynamicTests.SuccessWithResults.3.txt new file mode 100644 index 000000000..8b56db747 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.4.txt b/MockData/BatchDynamicTests.SuccessWithResults.4.txt new file mode 100644 index 000000000..bf303c343 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1053)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1053)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1053)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1053)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1053)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1053<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.5.txt b/MockData/BatchDynamicTests.SuccessWithResults.5.txt new file mode 100644 index 000000000..f0184dbd1 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products?$filter=ProductName%20eq%20%27Test2%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.SuccessWithResults.6.txt b/MockData/BatchDynamicTests.SuccessWithResults.6.txt new file mode 100644 index 000000000..b2d5cf327 --- /dev/null +++ b/MockData/BatchDynamicTests.SuccessWithResults.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products(1054)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1054)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1054)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1054)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1054)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1054<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService152\/Products?$filter=ProductName%20eq%20%27Test2%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.1.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.1.txt new file mode 100644 index 000000000..fcf814961 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_fc745adc-5260-43da-bc14-77bd6a251f4b\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_fae269e7-33e0-4c8f-a7a3-b65ce3c41525\u000d\u000a\u000d\u000a--changeset_fae269e7-33e0-4c8f-a7a3-b65ce3c41525\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_fae269e7-33e0-4c8f-a7a3-b65ce3c41525--\u000d\u000a--batch_fc745adc-5260-43da-bc14-77bd6a251f4b--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_fc745adc-5260-43da-bc14-77bd6a251f4b"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.2.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.2.txt new file mode 100644 index 000000000..f804970dc --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_61bb3803-d154-4494-8340-a4967d413f3b\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_da4bbec3-d781-4f21-90ed-350df54e77ac\u000d\u000a\u000d\u000a--changesetresponse_da4bbec3-d781-4f21-90ed-350df54e77ac\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1052)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1052)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1052)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1052)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1052<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_da4bbec3-d781-4f21-90ed-350df54e77ac--\u000d\u000a--batchresponse_61bb3803-d154-4494-8340-a4967d413f3b--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_61bb3803-d154-4494-8340-a4967d413f3b"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.3.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.3.txt new file mode 100644 index 000000000..f37bab137 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.4.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.4.txt new file mode 100644 index 000000000..4df7e3580 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1052)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1052)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1052)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1052)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1052<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.5.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.5.txt new file mode 100644 index 000000000..a15b58118 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_a789c672-4031-43ae-9ae4-67a8b5165c23\u000d\u000a\u000d\u000a--changeset_a789c672-4031-43ae-9ae4-67a8b5165c23\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_a789c672-4031-43ae-9ae4-67a8b5165c23--\u000d\u000a--batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_6ba8f6ce-1761-4d44-b003-d5ea8b63dd8c\u000d\u000a\u000d\u000a--changeset_6ba8f6ce-1761-4d44-b003-d5ea8b63dd8c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_6ba8f6ce-1761-4d44-b003-d5ea8b63dd8c--\u000d\u000a--batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_60bbff02-8259-4c7b-b3a8-6e77723e12d9"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/$batch"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.6.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.6.txt new file mode 100644 index 000000000..e10046d57 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_fa874d6a-a115-4fe9-a910-6be13cfa8b8f\u000d\u000a\u000d\u000a--changesetresponse_fa874d6a-a115-4fe9-a910-6be13cfa8b8f\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_fa874d6a-a115-4fe9-a910-6be13cfa8b8f--\u000d\u000a--batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products(1052)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1052)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1052)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1052)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1052)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1052<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_2fbc63ab-3a2f-4e97-ad28-41334d15927a\u000d\u000a\u000d\u000a--changesetresponse_2fbc63ab-3a2f-4e97-ad28-41334d15927a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_2fbc63ab-3a2f-4e97-ad28-41334d15927a--\u000d\u000a--batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>\u000d\u000a--batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4122"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_d114fe80-37e2-469a-bad7-d4db75416ca5"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.7.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.7.txt new file mode 100644 index 000000000..f37bab137 --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.8.txt b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.8.txt new file mode 100644 index 000000000..7bef0188d --- /dev/null +++ b/MockData/BatchDynamicTests.UpdateDeleteSingleBatch.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService151\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:30 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.AllFailures.1.txt b/MockData/BatchTests.AllFailures.1.txt new file mode 100644 index 000000000..70f633d73 --- /dev/null +++ b/MockData/BatchTests.AllFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_878214ef-91d0-4cc0-89df-dc1f6d7b1cd5\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_6fd91d00-4ec9-4e1a-8a9d-464faa923acc\u000d\u000a\u000d\u000a--changeset_6fd91d00-4ec9-4e1a-8a9d-464faa923acc\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_6fd91d00-4ec9-4e1a-8a9d-464faa923acc\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_6fd91d00-4ec9-4e1a-8a9d-464faa923acc--\u000d\u000a--batch_878214ef-91d0-4cc0-89df-dc1f6d7b1cd5--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_878214ef-91d0-4cc0-89df-dc1f6d7b1cd5"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.AllFailures.2.txt b/MockData/BatchTests.AllFailures.2.txt new file mode 100644 index 000000000..284dd9075 --- /dev/null +++ b/MockData/BatchTests.AllFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1e8b117c-ab5c-4582-b7e7-b707b227e1e0\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_cd58ef5b-b6a7-4e06-94b1-8458890dbd7b\u000d\u000a\u000d\u000a--changesetresponse_cd58ef5b-b6a7-4e06-94b1-8458890dbd7b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>The ProductName field is required. \u000aThe ProductName field is required.<\/m:message><m:type>System.InvalidOperationException<\/m:type><m:stacktrace> at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.<\/m:message><m:type>System.Data.Entity.Validation.DbEntityValidationException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges()<\/m:stacktrace><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_cd58ef5b-b6a7-4e06-94b1-8458890dbd7b--\u000d\u000a--batchresponse_1e8b117c-ab5c-4582-b7e7-b707b227e1e0--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1802"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1e8b117c-ab5c-4582-b7e7-b707b227e1e0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService278\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.Count.1.txt b/MockData/BatchTests.Count.1.txt new file mode 100644 index 000000000..0e33f1f1c --- /dev/null +++ b/MockData/BatchTests.Count.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_1f650cf9-a700-4e1c-b144-35eb0f0463bf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService277\/Products\/$count HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_1f650cf9-a700-4e1c-b144-35eb0f0463bf--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_1f650cf9-a700-4e1c-b144-35eb0f0463bf"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService277\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.Count.2.txt b/MockData/BatchTests.Count.2.txt new file mode 100644 index 000000000..4749ed7a2 --- /dev/null +++ b/MockData/BatchTests.Count.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_4bdc6751-a8b9-4f25-917e-f8642099d71e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aContent-Type: text\/plain;charset=utf-8\u000d\u000aDataServiceVersion: 2.0;\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000a\u000d\u000a22\u000d\u000a--batchresponse_4bdc6751-a8b9-4f25-917e-f8642099d71e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["326"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_4bdc6751-a8b9-4f25-917e-f8642099d71e"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService277\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.1.txt b/MockData/BatchTests.DeleteEntriesExisting.1.txt new file mode 100644 index 000000000..c50b32f7f --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_8b4dc2c4-1b4e-466c-85ec-aeec3589aaf2\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_b352909b-0d45-4420-9567-8fb54512a918\u000d\u000a\u000d\u000a--changeset_b352909b-0d45-4420-9567-8fb54512a918\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test19<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_b352909b-0d45-4420-9567-8fb54512a918--\u000d\u000a--batch_8b4dc2c4-1b4e-466c-85ec-aeec3589aaf2--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_8b4dc2c4-1b4e-466c-85ec-aeec3589aaf2"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.2.txt b/MockData/BatchTests.DeleteEntriesExisting.2.txt new file mode 100644 index 000000000..c18e4768e --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_7a4878bc-03c3-4604-b4c8-5e1e74b9c7cf\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_c8339444-d958-41dd-a89a-368885694953\u000d\u000a\u000d\u000a--changesetresponse_c8339444-d958-41dd-a89a-368885694953\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products(1142)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products(1142)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1142)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1142)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1142)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1142)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1142<\/d:ProductID><d:ProductName>Test19<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_c8339444-d958-41dd-a89a-368885694953--\u000d\u000a--batchresponse_7a4878bc-03c3-4604-b4c8-5e1e74b9c7cf--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_7a4878bc-03c3-4604-b4c8-5e1e74b9c7cf"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.3.txt b/MockData/BatchTests.DeleteEntriesExisting.3.txt new file mode 100644 index 000000000..2c7a05524 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products?$filter=ProductName%20eq%20%27Test19%27"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.4.txt b/MockData/BatchTests.DeleteEntriesExisting.4.txt new file mode 100644 index 000000000..0e99db023 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products(1142)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1142)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1142)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1142)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1142)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1142<\/d:ProductID><d:ProductName>Test19<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products?$filter=ProductName%20eq%20%27Test19%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.5.txt b/MockData/BatchTests.DeleteEntriesExisting.5.txt new file mode 100644 index 000000000..53f342e81 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_11a7251d-d984-4052-a53f-38e365bb9aa6\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_7ec0b944-0320-4d5d-9aed-83789187bb44\u000d\u000a\u000d\u000a--changeset_7ec0b944-0320-4d5d-9aed-83789187bb44\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products(1142) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_7ec0b944-0320-4d5d-9aed-83789187bb44--\u000d\u000a--batch_11a7251d-d984-4052-a53f-38e365bb9aa6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_11a7251d-d984-4052-a53f-38e365bb9aa6"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.6.txt b/MockData/BatchTests.DeleteEntriesExisting.6.txt new file mode 100644 index 000000000..3535ef2f8 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_ea7d86de-6351-4824-b4b0-cd3fac895286\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_a37c725c-e495-40b3-ac86-673ef3fdc9fe\u000d\u000a\u000d\u000a--changesetresponse_a37c725c-e495-40b3-ac86-673ef3fdc9fe\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_a37c725c-e495-40b3-ac86-673ef3fdc9fe--\u000d\u000a--batchresponse_ea7d86de-6351-4824-b4b0-cd3fac895286--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["508"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_ea7d86de-6351-4824-b4b0-cd3fac895286"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.7.txt b/MockData/BatchTests.DeleteEntriesExisting.7.txt new file mode 100644 index 000000000..2c7a05524 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products?$filter=ProductName%20eq%20%27Test19%27"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesExisting.8.txt b/MockData/BatchTests.DeleteEntriesExisting.8.txt new file mode 100644 index 000000000..3deb3e6a1 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesExisting.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService289\/Products?$filter=ProductName%20eq%20%27Test19%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.1.txt b/MockData/BatchTests.DeleteEntriesMultiple.1.txt new file mode 100644 index 000000000..aee093e97 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_1e19d3e9-0700-446f-b079-24abcfd2f30d\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_106d295a-8267-4fca-a97e-ba7a7cb27eae\u000d\u000a\u000d\u000a--changeset_106d295a-8267-4fca-a97e-ba7a7cb27eae\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test21<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_106d295a-8267-4fca-a97e-ba7a7cb27eae\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test22<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_106d295a-8267-4fca-a97e-ba7a7cb27eae\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test23<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_106d295a-8267-4fca-a97e-ba7a7cb27eae--\u000d\u000a--batch_1e19d3e9-0700-446f-b079-24abcfd2f30d--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_1e19d3e9-0700-446f-b079-24abcfd2f30d"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.2.txt b/MockData/BatchTests.DeleteEntriesMultiple.2.txt new file mode 100644 index 000000000..6e4331b50 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_67596653-f231-4080-a813-cbf02c59fc12\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_095a41aa-533b-4787-8be5-a4426d635f2b\u000d\u000a\u000d\u000a--changesetresponse_095a41aa-533b-4787-8be5-a4426d635f2b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1115)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1115)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1115)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1115)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1115)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1115)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1115<\/d:ProductID><d:ProductName>Test21<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_095a41aa-533b-4787-8be5-a4426d635f2b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1116)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1116)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1116)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1116)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1116)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1116)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1116<\/d:ProductID><d:ProductName>Test22<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_095a41aa-533b-4787-8be5-a4426d635f2b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1117)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1117)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1117)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1117)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1117)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1117)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1117<\/d:ProductID><d:ProductName>Test23<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_095a41aa-533b-4787-8be5-a4426d635f2b--\u000d\u000a--batchresponse_67596653-f231-4080-a813-cbf02c59fc12--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["6841"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_67596653-f231-4080-a813-cbf02c59fc12"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.3.txt b/MockData/BatchTests.DeleteEntriesMultiple.3.txt new file mode 100644 index 000000000..fb995cc70 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products?$filter=UnitPrice%20eq%20111"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.4.txt b/MockData/BatchTests.DeleteEntriesMultiple.4.txt new file mode 100644 index 000000000..57d82c17f --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1115)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1115)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1115)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1115)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1115)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1115<\/d:ProductID><d:ProductName>Test21<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1116)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1116)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1116)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1116)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1116)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1116<\/d:ProductID><d:ProductName>Test22<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1117)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1117)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1117)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1117)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1117)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1117<\/d:ProductID><d:ProductName>Test23<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">111.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4919"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products?$filter=UnitPrice%20eq%20111","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.5.txt b/MockData/BatchTests.DeleteEntriesMultiple.5.txt new file mode 100644 index 000000000..d54551b37 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_10a49d6f-6cbf-42ee-a992-1366691900df\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_3c5a5ab2-2fce-4406-ad1e-6ad8b37bdc1e\u000d\u000a\u000d\u000a--changeset_3c5a5ab2-2fce-4406-ad1e-6ad8b37bdc1e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1115) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_3c5a5ab2-2fce-4406-ad1e-6ad8b37bdc1e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1116) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_3c5a5ab2-2fce-4406-ad1e-6ad8b37bdc1e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products(1117) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_3c5a5ab2-2fce-4406-ad1e-6ad8b37bdc1e--\u000d\u000a--batch_10a49d6f-6cbf-42ee-a992-1366691900df--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_10a49d6f-6cbf-42ee-a992-1366691900df"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.6.txt b/MockData/BatchTests.DeleteEntriesMultiple.6.txt new file mode 100644 index 000000000..db0e4e091 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_e71525b3-72dd-466c-9959-53474cb32a54\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_fec2b882-44fb-41f9-bc42-d8318ef934b9\u000d\u000a\u000d\u000a--changesetresponse_fec2b882-44fb-41f9-bc42-d8318ef934b9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_fec2b882-44fb-41f9-bc42-d8318ef934b9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_fec2b882-44fb-41f9-bc42-d8318ef934b9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_fec2b882-44fb-41f9-bc42-d8318ef934b9--\u000d\u000a--batchresponse_e71525b3-72dd-466c-9959-53474cb32a54--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["988"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_e71525b3-72dd-466c-9959-53474cb32a54"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.7.txt b/MockData/BatchTests.DeleteEntriesMultiple.7.txt new file mode 100644 index 000000000..fb995cc70 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products?$filter=UnitPrice%20eq%20111"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesMultiple.8.txt b/MockData/BatchTests.DeleteEntriesMultiple.8.txt new file mode 100644 index 000000000..73874a11e --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesMultiple.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService272\/Products?$filter=UnitPrice%20eq%20111","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExisting.1.txt b/MockData/BatchTests.DeleteEntriesNonExisting.1.txt new file mode 100644 index 000000000..510bc5762 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService269\/Products?$filter=ProductName%20eq%20%27Test99%27"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExisting.2.txt b/MockData/BatchTests.DeleteEntriesNonExisting.2.txt new file mode 100644 index 000000000..d1132c4e9 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService269\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService269\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService269\/Products?$filter=ProductName%20eq%20%27Test99%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.1.txt b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.1.txt new file mode 100644 index 000000000..97c912473 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products?$filter=ProductName%20eq%20%27Test99%27"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.2.txt b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.2.txt new file mode 100644 index 000000000..40eafe0ef --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products?$filter=ProductName%20eq%20%27Test99%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.3.txt b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.3.txt new file mode 100644 index 000000000..333ec1ba3 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_865fded2-9edd-4b90-b048-99f2ee4bee24\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_ea390401-2fa5-4f4c-9a0c-1911d3fc1638\u000d\u000a\u000d\u000a--changeset_ea390401-2fa5-4f4c-9a0c-1911d3fc1638\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test15<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ea390401-2fa5-4f4c-9a0c-1911d3fc1638\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Categories HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/$1\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test17<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ea390401-2fa5-4f4c-9a0c-1911d3fc1638--\u000d\u000a--batch_865fded2-9edd-4b90-b048-99f2ee4bee24--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_865fded2-9edd-4b90-b048-99f2ee4bee24"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.4.txt b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.4.txt new file mode 100644 index 000000000..9fa7d8153 --- /dev/null +++ b/MockData/BatchTests.DeleteEntriesNonExistingThenInsert.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_2aebd678-c808-4ce4-976b-3ba68c7aca45\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_7f7dd1f7-af47-4d50-92bb-7dc6f7056cbf\u000d\u000a\u000d\u000a--changesetresponse_7f7dd1f7-af47-4d50-92bb-7dc6f7056cbf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products(1136)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Products(1136)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1136)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1136)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1136)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1136)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1136<\/d:ProductID><d:ProductName>Test15<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1137<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_7f7dd1f7-af47-4d50-92bb-7dc6f7056cbf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Categories(1137)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/Categories(1137)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_7f7dd1f7-af47-4d50-92bb-7dc6f7056cbf--\u000d\u000a--batchresponse_2aebd678-c808-4ce4-976b-3ba68c7aca45--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2977"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_2aebd678-c808-4ce4-976b-3ba68c7aca45"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService285\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntryNonExisting.1.txt b/MockData/BatchTests.DeleteEntryNonExisting.1.txt new file mode 100644 index 000000000..509451ec4 --- /dev/null +++ b/MockData/BatchTests.DeleteEntryNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_b7a503ea-c475-4697-b823-df6e8ae1b458\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_c3c250b9-1fc9-4f0f-bb13-8587e77ae3ed\u000d\u000a\u000d\u000a--changeset_c3c250b9-1fc9-4f0f-bb13-8587e77ae3ed\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService274\/Products(65535) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_c3c250b9-1fc9-4f0f-bb13-8587e77ae3ed--\u000d\u000a--batch_b7a503ea-c475-4697-b823-df6e8ae1b458--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_b7a503ea-c475-4697-b823-df6e8ae1b458"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService274\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.DeleteEntryNonExisting.2.txt b/MockData/BatchTests.DeleteEntryNonExisting.2.txt new file mode 100644 index 000000000..faa11e9df --- /dev/null +++ b/MockData/BatchTests.DeleteEntryNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_b3162e42-03eb-464b-889c-d74c061c9a63\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_c7f49e7e-5e6e-4375-83eb-c6a20ad49635\u000d\u000a\u000d\u000a--changesetresponse_c7f49e7e-5e6e-4375-83eb-c6a20ad49635\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 404 Not Found\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Products'.<\/m:message><\/m:error>\u000d\u000a--changesetresponse_c7f49e7e-5e6e-4375-83eb-c6a20ad49635--\u000d\u000a--batchresponse_b3162e42-03eb-464b-889c-d74c061c9a63--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["753"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_b3162e42-03eb-464b-889c-d74c061c9a63"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService274\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.Function.1.txt b/MockData/BatchTests.Function.1.txt new file mode 100644 index 000000000..92abe5516 --- /dev/null +++ b/MockData/BatchTests.Function.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_a68c31e0-0f24-4e2b-a9b2-01670eaf65d6\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService287\/ParseInt?number=%271%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_a68c31e0-0f24-4e2b-a9b2-01670eaf65d6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_a68c31e0-0f24-4e2b-a9b2-01670eaf65d6"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService287\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.Function.2.txt b/MockData/BatchTests.Function.2.txt new file mode 100644 index 000000000..e1e522aa5 --- /dev/null +++ b/MockData/BatchTests.Function.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_a6ca7fb1-a69e-4eb2-82d8-2e6a04ad28b5\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\/xml;charset=utf-8\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ParseInt xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Int32\">1<\/d:ParseInt>\u000d\u000a--batchresponse_a6ca7fb1-a69e-4eb2-82d8-2e6a04ad28b5--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["549"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_a6ca7fb1-a69e-4eb2-82d8-2e6a04ad28b5"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService287\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt new file mode 100644 index 000000000..c5d6db675 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_e275771c-d2f0-4d50-a6cd-9d128206a792\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_2729a4e3-5374-4b53-bf7e-81d35efee012\u000d\u000a\u000d\u000a--changeset_2729a4e3-5374-4b53-bf7e-81d35efee012\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test15<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_2729a4e3-5374-4b53-bf7e-81d35efee012\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test16<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_2729a4e3-5374-4b53-bf7e-81d35efee012\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/$1\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/$2\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test17<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_2729a4e3-5374-4b53-bf7e-81d35efee012--\u000d\u000a--batch_e275771c-d2f0-4d50-a6cd-9d128206a792--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_e275771c-d2f0-4d50-a6cd-9d128206a792"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt new file mode 100644 index 000000000..b6346a800 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_2d61aaf4-a65c-45e2-8424-ecd49b76ce1f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_9c8b2708-809c-4278-b6b3-83869bcfa270\u000d\u000a\u000d\u000a--changesetresponse_9c8b2708-809c-4278-b6b3-83869bcfa270\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1125)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1125)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1125)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1125)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1125)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1125)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1125<\/d:ProductID><d:ProductName>Test15<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1127<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_9c8b2708-809c-4278-b6b3-83869bcfa270\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1126)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1126)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1126)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1126)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1126)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1126)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1126<\/d:ProductID><d:ProductName>Test16<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1127<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_9c8b2708-809c-4278-b6b3-83869bcfa270\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories(1127)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories(1127)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_9c8b2708-809c-4278-b6b3-83869bcfa270--\u000d\u000a--batchresponse_2d61aaf4-a65c-45e2-8424-ecd49b76ce1f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5189"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_2d61aaf4-a65c-45e2-8424-ecd49b76ce1f"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt new file mode 100644 index 000000000..fe34dd83b --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt new file mode 100644 index 000000000..f10fef4db --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories(1127)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1127)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1127)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories(1127)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1127)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1125)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1125)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1125)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1125)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1125)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1125<\/d:ProductID><d:ProductName>Test15<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1127<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Products(1126)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1126)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1126)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1126)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1126)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1126<\/d:ProductID><d:ProductName>Test16<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1127<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1127<\/d:CategoryID><d:CategoryName>Test17<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4522"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService280\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt new file mode 100644 index 000000000..d4f374df8 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_c291ca28-8bbd-4248-952c-021477b2befd\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_b0f72cdc-295f-46d4-bb43-8a92cda0fea5\u000d\u000a\u000d\u000a--changeset_b0f72cdc-295f-46d4-bb43-8a92cda0fea5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Categories HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test13<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_b0f72cdc-295f-46d4-bb43-8a92cda0fea5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/$1\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test14<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_b0f72cdc-295f-46d4-bb43-8a92cda0fea5--\u000d\u000a--batch_c291ca28-8bbd-4248-952c-021477b2befd--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_c291ca28-8bbd-4248-952c-021477b2befd"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt new file mode 100644 index 000000000..6fb8575c7 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_99308588-2f43-4125-9558-fad2c43512b4\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_b3149a02-caaf-4c1f-b551-777b3159a77c\u000d\u000a\u000d\u000a--changesetresponse_b3149a02-caaf-4c1f-b551-777b3159a77c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Categories(1138)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Categories(1138)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1138)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1138)\/Products\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1138<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_b3149a02-caaf-4c1f-b551-777b3159a77c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products(1139)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products(1139)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_b3149a02-caaf-4c1f-b551-777b3159a77c--\u000d\u000a--batchresponse_99308588-2f43-4125-9558-fad2c43512b4--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2336"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_99308588-2f43-4125-9558-fad2c43512b4"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt new file mode 100644 index 000000000..2286ec5f3 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt new file mode 100644 index 000000000..eb17fdc18 --- /dev/null +++ b/MockData/BatchTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products(1139)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1139)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1139)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Categories(1138)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1138)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1138)\/Products\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1138<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1139)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1139)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1139<\/d:ProductID><d:ProductName>Test14<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1138<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2785"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService286\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.1.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.1.txt new file mode 100644 index 000000000..6da9b61ea --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_deecafe7-41a1-4293-be5d-960a33533349\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_e0af30d4-e125-473c-a1fc-712acc6f2061\u000d\u000a\u000d\u000a--changeset_e0af30d4-e125-473c-a1fc-712acc6f2061\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test12<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_e0af30d4-e125-473c-a1fc-712acc6f2061--\u000d\u000a--batch_deecafe7-41a1-4293-be5d-960a33533349--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_deecafe7-41a1-4293-be5d-960a33533349"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.10.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.10.txt new file mode 100644 index 000000000..15cbb59ae --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.10.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_6cd0c9cd-4989-435d-afb7-7b89003a4a7b\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_c4f4f60e-9099-43e2-b3a8-c0e26126b74f\u000d\u000a\u000d\u000a--changesetresponse_c4f4f60e-9099-43e2-b3a8-c0e26126b74f\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_c4f4f60e-9099-43e2-b3a8-c0e26126b74f--\u000d\u000a--batchresponse_6cd0c9cd-4989-435d-afb7-7b89003a4a7b--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["508"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_6cd0c9cd-4989-435d-afb7-7b89003a4a7b"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.11.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.11.txt new file mode 100644 index 000000000..bdbbe0459 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.11.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.12.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.12.txt new file mode 100644 index 000000000..b6748f28f --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.12.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.2.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.2.txt new file mode 100644 index 000000000..62a91af08 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1aa36c8f-9cdf-4837-97a8-a367a37938ed\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_799ac026-57b3-4f79-8f01-7d5198e79c36\u000d\u000a\u000d\u000a--changesetresponse_799ac026-57b3-4f79-8f01-7d5198e79c36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_799ac026-57b3-4f79-8f01-7d5198e79c36--\u000d\u000a--batchresponse_1aa36c8f-9cdf-4837-97a8-a367a37938ed--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["761"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1aa36c8f-9cdf-4837-97a8-a367a37938ed"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.3.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.3.txt new file mode 100644 index 000000000..bdbbe0459 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.4.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.4.txt new file mode 100644 index 000000000..2f9471cb4 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1113)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1113)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1113)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1113)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1113<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.5.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.5.txt new file mode 100644 index 000000000..b7b1f9842 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_90548616-b319-49aa-8dc2-9b5657037ace\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_2c8125ce-a646-4045-9939-f3a55dab26c5\u000d\u000a\u000d\u000a--changeset_2c8125ce-a646-4045-9939-f3a55dab26c5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_2c8125ce-a646-4045-9939-f3a55dab26c5--\u000d\u000a--batch_90548616-b319-49aa-8dc2-9b5657037ace--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_90548616-b319-49aa-8dc2-9b5657037ace"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.6.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.6.txt new file mode 100644 index 000000000..37bcc450c --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_979930e4-2ff8-4c21-867c-653b5063f6f7\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_d15ecffe-3935-456e-a10f-650b8a248bab\u000d\u000a\u000d\u000a--changesetresponse_d15ecffe-3935-456e-a10f-650b8a248bab\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1113)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1113)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1113)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1113)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1113<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_d15ecffe-3935-456e-a10f-650b8a248bab--\u000d\u000a--batchresponse_979930e4-2ff8-4c21-867c-653b5063f6f7--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2356"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_979930e4-2ff8-4c21-867c-653b5063f6f7"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.7.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.7.txt new file mode 100644 index 000000000..bdbbe0459 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.8.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.8.txt new file mode 100644 index 000000000..cf8c42014 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1113)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1113)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1113)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1113)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1113<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products?$filter=ProductName%20eq%20'Test12'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.9.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.9.txt new file mode 100644 index 000000000..c4a544132 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatches.9.txt @@ -0,0 +1 @@ +{"Content":"--batch_7317131e-7c10-4e91-bca3-55fb83eee30a\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_2dd4baba-42e5-4451-a543-c88db9054708\u000d\u000a\u000d\u000a--changeset_2dd4baba-42e5-4451-a543-c88db9054708\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/Products(1113) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_2dd4baba-42e5-4451-a543-c88db9054708--\u000d\u000a--batch_7317131e-7c10-4e91-bca3-55fb83eee30a--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_7317131e-7c10-4e91-bca3-55fb83eee30a"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService270\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.1.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.1.txt new file mode 100644 index 000000000..b3d28e9ce --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_f7faecb8-b4e1-4a30-91b8-e32672bb00bd\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_e89cc802-bfbd-4f85-ad23-38309c4154cf\u000d\u000a\u000d\u000a--changeset_e89cc802-bfbd-4f85-ad23-38309c4154cf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test12<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_e89cc802-bfbd-4f85-ad23-38309c4154cf--\u000d\u000a--batch_f7faecb8-b4e1-4a30-91b8-e32672bb00bd--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_f7faecb8-b4e1-4a30-91b8-e32672bb00bd"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.2.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.2.txt new file mode 100644 index 000000000..99197e9de --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_5cde80db-0b43-41b2-acc8-84c07f2921be\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_fb1f1592-89f0-4406-9241-3c2ee94d9146\u000d\u000a\u000d\u000a--changesetresponse_fb1f1592-89f0-4406-9241-3c2ee94d9146\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products(1114)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products(1114)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_fb1f1592-89f0-4406-9241-3c2ee94d9146--\u000d\u000a--batchresponse_5cde80db-0b43-41b2-acc8-84c07f2921be--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["761"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_5cde80db-0b43-41b2-acc8-84c07f2921be"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.3.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.3.txt new file mode 100644 index 000000000..574829807 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_4e3ca8ca-7cb9-4a97-ad1b-8966172a04ec\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_47565c4a-b561-47f5-a881-c46896c7fb03\u000d\u000a\u000d\u000a--changeset_47565c4a-b561-47f5-a881-c46896c7fb03\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products(1114) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_47565c4a-b561-47f5-a881-c46896c7fb03--\u000d\u000a--batch_4e3ca8ca-7cb9-4a97-ad1b-8966172a04ec--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_4e3ca8ca-7cb9-4a97-ad1b-8966172a04ec"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.4.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.4.txt new file mode 100644 index 000000000..fe11e67e9 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_a97c9321-dee7-451a-b683-bf9d0e2ef1da\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_54ae808a-ef92-4f79-bce7-b257f5acfe97\u000d\u000a\u000d\u000a--changesetresponse_54ae808a-ef92-4f79-bce7-b257f5acfe97\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products(1114)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1114)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1114)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1114)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1114)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1114<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_54ae808a-ef92-4f79-bce7-b257f5acfe97--\u000d\u000a--batchresponse_a97c9321-dee7-451a-b683-bf9d0e2ef1da--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2356"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_a97c9321-dee7-451a-b683-bf9d0e2ef1da"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.5.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.5.txt new file mode 100644 index 000000000..a7bb9c02b --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_7c0d2034-12b2-4bc8-8496-4299bd34c36b\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_2940b98a-0572-4295-aeea-9774e49c71bf\u000d\u000a\u000d\u000a--changeset_2940b98a-0572-4295-aeea-9774e49c71bf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/Products(1114) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_2940b98a-0572-4295-aeea-9774e49c71bf--\u000d\u000a--batch_7c0d2034-12b2-4bc8-8496-4299bd34c36b--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_7c0d2034-12b2-4bc8-8496-4299bd34c36b"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.6.txt b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.6.txt new file mode 100644 index 000000000..00b4c7f75 --- /dev/null +++ b/MockData/BatchTests.InsertUpdateDeleteSeparateBatchesRenewHttpConnection.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_eef5da48-3abc-47a8-85d4-218bb69a90b1\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_d44e3b37-cf88-485a-b2c4-b99b89f61502\u000d\u000a\u000d\u000a--changesetresponse_d44e3b37-cf88-485a-b2c4-b99b89f61502\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_d44e3b37-cf88-485a-b2c4-b99b89f61502--\u000d\u000a--batchresponse_eef5da48-3abc-47a8-85d4-218bb69a90b1--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["508"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_eef5da48-3abc-47a8-85d4-218bb69a90b1"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService271\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.1.txt b/MockData/BatchTests.LinkEntry.1.txt new file mode 100644 index 000000000..1b9398a1b --- /dev/null +++ b/MockData/BatchTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:39:27Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories"} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.2.txt b/MockData/BatchTests.LinkEntry.2.txt new file mode 100644 index 000000000..d85405269 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories(1001)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1001)\/Products\" \/><title \/><updated>2018-05-20T18:39:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1001<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:39:27 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.3.txt b/MockData/BatchTests.LinkEntry.3.txt new file mode 100644 index 000000000..5c0e7a454 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:39:28Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["750"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products"} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.4.txt b/MockData/BatchTests.LinkEntry.4.txt new file mode 100644 index 000000000..7802fa046 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:39:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1738"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:39:27 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.5.txt b/MockData/BatchTests.LinkEntry.5.txt new file mode 100644 index 000000000..403613249 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_f07569da-d6be-4a2b-8668-69a712634180\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_d92e9c95-09e5-4fe5-855e-262d58e382f5\u000d\u000a\u000d\u000a--changeset_d92e9c95-09e5-4fe5-855e-262d58e382f5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPUT http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)\/$links\/Category HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/xml\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories(1001)<\/uri>\u000d\u000a--changeset_d92e9c95-09e5-4fe5-855e-262d58e382f5--\u000d\u000a--batch_f07569da-d6be-4a2b-8668-69a712634180--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_f07569da-d6be-4a2b-8668-69a712634180"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.6.txt b/MockData/BatchTests.LinkEntry.6.txt new file mode 100644 index 000000000..def31d7a5 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_df299f6b-7d46-4538-b2d2-ee985c57e713\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_43f4572e-ee0d-4bd5-a687-7c30ba1a934b\u000d\u000a\u000d\u000a--changesetresponse_43f4572e-ee0d-4bd5-a687-7c30ba1a934b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_43f4572e-ee0d-4bd5-a687-7c30ba1a934b--\u000d\u000a--batchresponse_df299f6b-7d46-4538-b2d2-ee985c57e713--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["523"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_df299f6b-7d46-4538-b2d2-ee985c57e713"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:39:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.7.txt b/MockData/BatchTests.LinkEntry.7.txt new file mode 100644 index 000000000..be1bed38e --- /dev/null +++ b/MockData/BatchTests.LinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/BatchTests.LinkEntry.8.txt b/MockData/BatchTests.LinkEntry.8.txt new file mode 100644 index 000000000..59b60e3b7 --- /dev/null +++ b/MockData/BatchTests.LinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:39:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:39:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1001<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1981"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:39:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.1.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.1.txt new file mode 100644 index 000000000..ad10fbeaf --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_c7de5d62-d0bd-45fb-9aba-73e0f27cf8de\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_376323dd-fed0-4af8-9dd2-31ac71b80862\u000d\u000a\u000d\u000a--changeset_376323dd-fed0-4af8-9dd2-31ac71b80862\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_376323dd-fed0-4af8-9dd2-31ac71b80862--\u000d\u000a--batch_c7de5d62-d0bd-45fb-9aba-73e0f27cf8de--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_c7de5d62-d0bd-45fb-9aba-73e0f27cf8de"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.2.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.2.txt new file mode 100644 index 000000000..ce426c06b --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_5fca0ab9-6c26-4e0e-8469-f7c1e4f8f331\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_aa206467-5388-48b3-b405-72e7412bcda2\u000d\u000a\u000d\u000a--changesetresponse_aa206467-5388-48b3-b405-72e7412bcda2\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_aa206467-5388-48b3-b405-72e7412bcda2--\u000d\u000a--batchresponse_5fca0ab9-6c26-4e0e-8469-f7c1e4f8f331--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_5fca0ab9-6c26-4e0e-8469-f7c1e4f8f331"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.3.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.3.txt new file mode 100644 index 000000000..296bcf863 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_12ff1a89-3ff0-46c2-93a9-eb8f613246c6\u000d\u000a\u000d\u000a--changeset_12ff1a89-3ff0-46c2-93a9-eb8f613246c6\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_12ff1a89-3ff0-46c2-93a9-eb8f613246c6--\u000d\u000a--batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products?$filter=ProductName%20eq%20'Test11' HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_cc877fdc-4011-49de-ab8d-677c256c7483\u000d\u000a\u000d\u000a--changeset_cc877fdc-4011-49de-ab8d-677c256c7483\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129) HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">23<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_cc877fdc-4011-49de-ab8d-677c256c7483--\u000d\u000a--batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products?$filter=ProductName%20eq%20'Test11' HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_71927fc2-5020-4f58-9f04-8d2b5cdb8716"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.4.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.4.txt new file mode 100644 index 000000000..d3d8e2b53 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_e46f7a0e-3677-4312-a0ed-0c4c30febf7c\u000d\u000a\u000d\u000a--changesetresponse_e46f7a0e-3677-4312-a0ed-0c4c30febf7c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_e46f7a0e-3677-4312-a0ed-0c4c30febf7c--\u000d\u000a--batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_4e0fd745-bffa-45e9-a308-a36d27a53d3c\u000d\u000a\u000d\u000a--changesetresponse_4e0fd745-bffa-45e9-a308-a36d27a53d3c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_4e0fd745-bffa-45e9-a308-a36d27a53d3c--\u000d\u000a--batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["9204"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_67838642-5e68-4222-a91e-cd99b6e2f0af"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.5.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.5.txt new file mode 100644 index 000000000..96a94c158 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products?$filter=ProductName%20eq%20'Test11'"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdateEntrySingleBatch.6.txt b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.6.txt new file mode 100644 index 000000000..1e02f7f1c --- /dev/null +++ b/MockData/BatchTests.MultipleUpdateEntrySingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products(1129)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1129)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1129)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1129)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1129)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1129<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService282\/Products?$filter=ProductName%20eq%20'Test11'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.1.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.1.txt new file mode 100644 index 000000000..765e5dc6f --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_1afca84f-500b-43bd-9ed2-6d858a5019b4\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_56f11277-fc73-4038-ac14-633395349958\u000d\u000a\u000d\u000a--changeset_56f11277-fc73-4038-ac14-633395349958\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_56f11277-fc73-4038-ac14-633395349958\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test12<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_56f11277-fc73-4038-ac14-633395349958\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test13<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_56f11277-fc73-4038-ac14-633395349958--\u000d\u000a--batch_1afca84f-500b-43bd-9ed2-6d858a5019b4--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_1afca84f-500b-43bd-9ed2-6d858a5019b4"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.10.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.10.txt new file mode 100644 index 000000000..42bc1a2a1 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1118)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1118)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1118)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1118)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1118<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1119)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1119)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1119)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1119)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1119<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1120)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1120)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1120)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1120)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1120<\/d:ProductID><d:ProductName>Test13<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4919"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20122","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.2.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.2.txt new file mode 100644 index 000000000..474fdd85b --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1953119e-e88e-457e-9c1e-5a7f808d53b5\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_017f6d6f-a599-4261-94a7-b65615d5ce4b\u000d\u000a\u000d\u000a--changesetresponse_017f6d6f-a599-4261-94a7-b65615d5ce4b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1118)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1118)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1118)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1118)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1118<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_017f6d6f-a599-4261-94a7-b65615d5ce4b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1119)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1119)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1119)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1119)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1119<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_017f6d6f-a599-4261-94a7-b65615d5ce4b\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1120)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1120)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1120)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1120)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1120<\/d:ProductID><d:ProductName>Test13<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_017f6d6f-a599-4261-94a7-b65615d5ce4b--\u000d\u000a--batchresponse_1953119e-e88e-457e-9c1e-5a7f808d53b5--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["6841"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1953119e-e88e-457e-9c1e-5a7f808d53b5"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.3.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.3.txt new file mode 100644 index 000000000..7cd9d3294 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20121"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.4.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.4.txt new file mode 100644 index 000000000..82741be4b --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1118)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1118)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1118)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1118)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1118<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1119)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1119)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1119)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1119)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1119<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1120)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1120)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1120)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1120)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1120<\/d:ProductID><d:ProductName>Test13<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">121.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4919"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20121","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.5.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.5.txt new file mode 100644 index 000000000..87dc75a41 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_80ea122f-9885-46ce-ad34-49a0568f0b10\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_ddbfb95e-a8a3-4ab5-a2c3-be3ee94206b1\u000d\u000a\u000d\u000a--changeset_ddbfb95e-a8a3-4ab5-a2c3-be3ee94206b1\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ddbfb95e-a8a3-4ab5-a2c3-be3ee94206b1\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119) HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ddbfb95e-a8a3-4ab5-a2c3-be3ee94206b1\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120) HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ddbfb95e-a8a3-4ab5-a2c3-be3ee94206b1--\u000d\u000a--batch_80ea122f-9885-46ce-ad34-49a0568f0b10--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_80ea122f-9885-46ce-ad34-49a0568f0b10"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.6.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.6.txt new file mode 100644 index 000000000..b5586bc62 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_4feec2ce-d508-4ed0-9f2d-3c38e050c330\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_06991b53-e4d2-4671-958a-48db55c63d36\u000d\u000a\u000d\u000a--changesetresponse_06991b53-e4d2-4671-958a-48db55c63d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1118)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1118)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1118)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1118)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1118)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1118<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_06991b53-e4d2-4671-958a-48db55c63d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1119)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1119)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1119)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1119)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1119)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1119<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_06991b53-e4d2-4671-958a-48db55c63d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products(1120)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1120)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1120)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1120)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1120)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1120<\/d:ProductID><d:ProductName>Test13<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">122<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_06991b53-e4d2-4671-958a-48db55c63d36--\u000d\u000a--batchresponse_4feec2ce-d508-4ed0-9f2d-3c38e050c330--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["6535"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_4feec2ce-d508-4ed0-9f2d-3c38e050c330"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.7.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.7.txt new file mode 100644 index 000000000..7cd9d3294 --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20121"} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.8.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.8.txt new file mode 100644 index 000000000..a6cc766fc --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20121","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.9.txt b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.9.txt new file mode 100644 index 000000000..49ca125cf --- /dev/null +++ b/MockData/BatchTests.MultipleUpdatesEntriesSingleBatch.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService275\/Products?$filter=UnitPrice%20eq%20122"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.1.txt b/MockData/BatchTests.NestedBatch.1.txt new file mode 100644 index 000000000..88a120f2f --- /dev/null +++ b/MockData/BatchTests.NestedBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_a5f87834-d1cb-4215-a063-87c8a2d42b84\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_ca318a10-5e86-4fe7-b35c-b49750d916f8\u000d\u000a\u000d\u000a--changeset_ca318a10-5e86-4fe7-b35c-b49750d916f8\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test3<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">30<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ca318a10-5e86-4fe7-b35c-b49750d916f8\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">40<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ca318a10-5e86-4fe7-b35c-b49750d916f8--\u000d\u000a--batch_a5f87834-d1cb-4215-a063-87c8a2d42b84--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_a5f87834-d1cb-4215-a063-87c8a2d42b84"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.10.txt b/MockData/BatchTests.NestedBatch.10.txt new file mode 100644 index 000000000..e28cd457d --- /dev/null +++ b/MockData/BatchTests.NestedBatch.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1130)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1130)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1130)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1130)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1130)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1130<\/d:ProductID><d:ProductName>Test3<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test3'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.11.txt b/MockData/BatchTests.NestedBatch.11.txt new file mode 100644 index 000000000..e8bdb0946 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.11.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test4'"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.12.txt b/MockData/BatchTests.NestedBatch.12.txt new file mode 100644 index 000000000..eac83141a --- /dev/null +++ b/MockData/BatchTests.NestedBatch.12.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1131)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1131)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1131)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1131)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1131)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1131<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test4'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.2.txt b/MockData/BatchTests.NestedBatch.2.txt new file mode 100644 index 000000000..e66117095 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_b9a7c168-049d-4637-9df2-e9d529257955\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_dcac0a0e-5b52-4a1e-b7af-a8ec28ad3a12\u000d\u000a\u000d\u000a--changesetresponse_dcac0a0e-5b52-4a1e-b7af-a8ec28ad3a12\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1130)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1130)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_dcac0a0e-5b52-4a1e-b7af-a8ec28ad3a12\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1131)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1131)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_dcac0a0e-5b52-4a1e-b7af-a8ec28ad3a12--\u000d\u000a--batchresponse_b9a7c168-049d-4637-9df2-e9d529257955--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_b9a7c168-049d-4637-9df2-e9d529257955"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.3.txt b/MockData/BatchTests.NestedBatch.3.txt new file mode 100644 index 000000000..fec93cb3d --- /dev/null +++ b/MockData/BatchTests.NestedBatch.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_15ad973f-10c4-4760-96f8-f7050f93dc9c\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_4542f69f-f888-49d7-bc04-5fa8a87df4af\u000d\u000a\u000d\u000a--changeset_4542f69f-f888-49d7-bc04-5fa8a87df4af\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4542f69f-f888-49d7-bc04-5fa8a87df4af\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4542f69f-f888-49d7-bc04-5fa8a87df4af--\u000d\u000a--batch_15ad973f-10c4-4760-96f8-f7050f93dc9c--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_15ad973f-10c4-4760-96f8-f7050f93dc9c"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.4.txt b/MockData/BatchTests.NestedBatch.4.txt new file mode 100644 index 000000000..35956f3a0 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_da6610b2-f17b-44ed-a209-b3388055ee0f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_dcb4b970-d118-43cd-9e4a-2340f20088d6\u000d\u000a\u000d\u000a--changesetresponse_dcb4b970-d118-43cd-9e4a-2340f20088d6\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1132)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1132)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_dcb4b970-d118-43cd-9e4a-2340f20088d6\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1133)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1133)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_dcb4b970-d118-43cd-9e4a-2340f20088d6--\u000d\u000a--batchresponse_da6610b2-f17b-44ed-a209-b3388055ee0f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_da6610b2-f17b-44ed-a209-b3388055ee0f"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.5.txt b/MockData/BatchTests.NestedBatch.5.txt new file mode 100644 index 000000000..f8be60d17 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test1'"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.6.txt b/MockData/BatchTests.NestedBatch.6.txt new file mode 100644 index 000000000..8a6cb238f --- /dev/null +++ b/MockData/BatchTests.NestedBatch.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1132)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1132)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1132)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1132)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1132)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1132<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test1'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.7.txt b/MockData/BatchTests.NestedBatch.7.txt new file mode 100644 index 000000000..6cb4168d4 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test2'"} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.8.txt b/MockData/BatchTests.NestedBatch.8.txt new file mode 100644 index 000000000..197f37e90 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products(1133)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1133)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1133)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1133)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1133)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1133<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test2'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.NestedBatch.9.txt b/MockData/BatchTests.NestedBatch.9.txt new file mode 100644 index 000000000..0d337c1c2 --- /dev/null +++ b/MockData/BatchTests.NestedBatch.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService283\/Products?$filter=ProductName%20eq%20'Test3'"} \ No newline at end of file diff --git a/MockData/BatchTests.PartialFailures.1.txt b/MockData/BatchTests.PartialFailures.1.txt new file mode 100644 index 000000000..5321c68ff --- /dev/null +++ b/MockData/BatchTests.PartialFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_8da9b99e-67b3-451f-8bd8-04afd871587e\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_8903b003-770c-447a-9889-b85e5b3facdd\u000d\u000a\u000d\u000a--changeset_8903b003-770c-447a-9889-b85e5b3facdd\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_8903b003-770c-447a-9889-b85e5b3facdd\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <d:SupplierID m:type=\"Edm.Int32\">65535<\/d:SupplierID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_8903b003-770c-447a-9889-b85e5b3facdd--\u000d\u000a--batch_8da9b99e-67b3-451f-8bd8-04afd871587e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_8da9b99e-67b3-451f-8bd8-04afd871587e"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.PartialFailures.2.txt b/MockData/BatchTests.PartialFailures.2.txt new file mode 100644 index 000000000..9ce9d1295 --- /dev/null +++ b/MockData/BatchTests.PartialFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_8c752040-e9e9-40d4-9603-064cd7e7a0a4\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_52fd9b7d-7899-4814-8bff-511cc6bc07b7\u000d\u000a\u000d\u000a--changesetresponse_52fd9b7d-7899-4814-8bff-511cc6bc07b7\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Infrastructure.DbUpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Core.UpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() \u000a at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction) \u000a at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction) \u000a at System.Data.Entity.Internal.InternalContext.SaveChanges()<\/m:stacktrace><m:internalexception><m:message>The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.Products_dbo.Suppliers_SupplierID\". The conflict occurred in database \"NorthwindModel.NorthwindContext\", table \"dbo.Suppliers\", column 'SupplierID'. \u000aThe statement has been terminated.<\/m:message><m:type>System.Data.SqlClient.SqlException<\/m:type><m:stacktrace> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) \u000a at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) \u000a at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) \u000a at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() \u000a at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) \u000a at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()<\/m:stacktrace><\/m:internalexception><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_52fd9b7d-7899-4814-8bff-511cc6bc07b7--\u000d\u000a--batchresponse_8c752040-e9e9-40d4-9603-064cd7e7a0a4--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5038"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_8c752040-e9e9-40d4-9603-064cd7e7a0a4"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService284\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.ReadOnlyBatch.1.txt b/MockData/BatchTests.ReadOnlyBatch.1.txt new file mode 100644 index 000000000..bd6dde8a0 --- /dev/null +++ b/MockData/BatchTests.ReadOnlyBatch.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 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/BatchTests.ReadOnlyBatch.2.txt b/MockData/BatchTests.ReadOnlyBatch.2.txt new file mode 100644 index 000000000..b93cbd8be --- /dev/null +++ b/MockData/BatchTests.ReadOnlyBatch.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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_96b28898-000c-4358-960d-f784fd58c466--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["33584"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_96b28898-000c-4358-960d-f784fd58c466"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.Success.1.txt b/MockData/BatchTests.Success.1.txt new file mode 100644 index 000000000..21ec1ae2b --- /dev/null +++ b/MockData/BatchTests.Success.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_6506741a-fe9b-4f0d-b144-c3e098907f39\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000a\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55--\u000d\u000a--batch_6506741a-fe9b-4f0d-b144-c3e098907f39--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_6506741a-fe9b-4f0d-b144-c3e098907f39"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.Success.2.txt b/MockData/BatchTests.Success.2.txt new file mode 100644 index 000000000..303f07857 --- /dev/null +++ b/MockData/BatchTests.Success.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1121)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1121)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1122)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1122)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36--\u000d\u000a--batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.Success.3.txt b/MockData/BatchTests.Success.3.txt new file mode 100644 index 000000000..f911b08e7 --- /dev/null +++ b/MockData/BatchTests.Success.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products?$filter=ProductName%20eq%20'Test1'"} \ No newline at end of file diff --git a/MockData/BatchTests.Success.4.txt b/MockData/BatchTests.Success.4.txt new file mode 100644 index 000000000..f143e95df --- /dev/null +++ b/MockData/BatchTests.Success.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1121)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1121)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1121)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1121)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1121)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1121<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products?$filter=ProductName%20eq%20'Test1'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.Success.5.txt b/MockData/BatchTests.Success.5.txt new file mode 100644 index 000000000..a3ec9c9dc --- /dev/null +++ b/MockData/BatchTests.Success.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products?$filter=ProductName%20eq%20'Test2'"} \ No newline at end of file diff --git a/MockData/BatchTests.Success.6.txt b/MockData/BatchTests.Success.6.txt new file mode 100644 index 000000000..92abffcce --- /dev/null +++ b/MockData/BatchTests.Success.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1122)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1122)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1122)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1122)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1122)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1122<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products?$filter=ProductName%20eq%20'Test2'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.1.txt b/MockData/BatchTests.SuccessWithResults.1.txt new file mode 100644 index 000000000..a21824d8a --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_789226b3-72e9-4736-a687-03aa66181dc4\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_4facff16-c0c7-4b42-b910-d248da0d0f6e\u000d\u000a\u000d\u000a--changeset_4facff16-c0c7-4b42-b910-d248da0d0f6e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4facff16-c0c7-4b42-b910-d248da0d0f6e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4facff16-c0c7-4b42-b910-d248da0d0f6e--\u000d\u000a--batch_789226b3-72e9-4736-a687-03aa66181dc4--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_789226b3-72e9-4736-a687-03aa66181dc4"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.2.txt b/MockData/BatchTests.SuccessWithResults.2.txt new file mode 100644 index 000000000..7a1912963 --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_58a5ab31-5920-43e6-acc6-5d05258d33d6\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_9b61cfe8-921a-4045-8bbe-02439c6a00d5\u000d\u000a\u000d\u000a--changesetresponse_9b61cfe8-921a-4045-8bbe-02439c6a00d5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1140)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1140)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1140)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1140)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1140)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1140)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1140<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_9b61cfe8-921a-4045-8bbe-02439c6a00d5\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1141)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1141)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1141)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1141)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1141)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1141)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1141<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_9b61cfe8-921a-4045-8bbe-02439c6a00d5--\u000d\u000a--batchresponse_58a5ab31-5920-43e6-acc6-5d05258d33d6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4646"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_58a5ab31-5920-43e6-acc6-5d05258d33d6"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.3.txt b/MockData/BatchTests.SuccessWithResults.3.txt new file mode 100644 index 000000000..e7d156f09 --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products?$filter=ProductName%20eq%20'Test1'"} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.4.txt b/MockData/BatchTests.SuccessWithResults.4.txt new file mode 100644 index 000000000..0b8acebb7 --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1140)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1140)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1140)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1140)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1140)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1140<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products?$filter=ProductName%20eq%20'Test1'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.5.txt b/MockData/BatchTests.SuccessWithResults.5.txt new file mode 100644 index 000000000..f013e506e --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products?$filter=ProductName%20eq%20'Test2'"} \ No newline at end of file diff --git a/MockData/BatchTests.SuccessWithResults.6.txt b/MockData/BatchTests.SuccessWithResults.6.txt new file mode 100644 index 000000000..f50fa9b56 --- /dev/null +++ b/MockData/BatchTests.SuccessWithResults.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products(1141)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1141)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1141)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1141)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1141)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1141<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService288\/Products?$filter=ProductName%20eq%20'Test2'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:41 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.1.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.1.txt new file mode 100644 index 000000000..315083db5 --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_33182ab6-8131-4317-9029-5b19430f74f6\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_3c8d847a-75a8-4d5e-85d0-a10a0afa67f6\u000d\u000a\u000d\u000a--changeset_3c8d847a-75a8-4d5e-85d0-a10a0afa67f6\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_3c8d847a-75a8-4d5e-85d0-a10a0afa67f6--\u000d\u000a--batch_33182ab6-8131-4317-9029-5b19430f74f6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_33182ab6-8131-4317-9029-5b19430f74f6"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.2.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.2.txt new file mode 100644 index 000000000..bf596e073 --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_5541d5bf-9ffd-4ad1-b707-66f9d1bb47a4\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_b905df26-559e-4516-961a-aeccda37ad7e\u000d\u000a\u000d\u000a--changesetresponse_b905df26-559e-4516-961a-aeccda37ad7e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1128)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1128)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1128)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1128)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1128<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_b905df26-559e-4516-961a-aeccda37ad7e--\u000d\u000a--batchresponse_5541d5bf-9ffd-4ad1-b707-66f9d1bb47a4--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_5541d5bf-9ffd-4ad1-b707-66f9d1bb47a4"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.3.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.3.txt new file mode 100644 index 000000000..38e18c81c --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_8a3e1062-1221-49b0-978e-a8b441d637db\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_085dfb09-c5d3-4d39-8931-e46b52cec233\u000d\u000a\u000d\u000a--changeset_085dfb09-c5d3-4d39-8931-e46b52cec233\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_085dfb09-c5d3-4d39-8931-e46b52cec233--\u000d\u000a--batch_8a3e1062-1221-49b0-978e-a8b441d637db\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products?$filter=ProductName%20eq%20'Test11' HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_8a3e1062-1221-49b0-978e-a8b441d637db\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_a3d30ed9-4393-437d-8270-1a60159b734a\u000d\u000a\u000d\u000a--changeset_a3d30ed9-4393-437d-8270-1a60159b734a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_a3d30ed9-4393-437d-8270-1a60159b734a--\u000d\u000a--batch_8a3e1062-1221-49b0-978e-a8b441d637db\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products?$filter=ProductName%20eq%20'Test11' HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_8a3e1062-1221-49b0-978e-a8b441d637db--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_8a3e1062-1221-49b0-978e-a8b441d637db"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.4.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.4.txt new file mode 100644 index 000000000..d9a0a1605 --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_3b5a9fd3-780c-488e-a706-7a36d654848e\u000d\u000a\u000d\u000a--changesetresponse_3b5a9fd3-780c-488e-a706-7a36d654848e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1128)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1128)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1128)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1128)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1128<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_3b5a9fd3-780c-488e-a706-7a36d654848e--\u000d\u000a--batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products(1128)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1128)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1128)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1128)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1128)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:41Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1128<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_f0035a3f-fc12-4205-8d62-c6794341eae7\u000d\u000a\u000d\u000a--changesetresponse_f0035a3f-fc12-4205-8d62-c6794341eae7\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_f0035a3f-fc12-4205-8d62-c6794341eae7--\u000d\u000a--batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>\u000d\u000a--batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5916"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_520795d7-9ca7-4650-8eb1-c3f80cca11eb"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.5.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.5.txt new file mode 100644 index 000000000..f9f5d825f --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products?$filter=ProductName%20eq%20'Test11'"} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateDeleteSingleBatch.6.txt b/MockData/BatchTests.UpdateDeleteSingleBatch.6.txt new file mode 100644 index 000000000..7405da0d0 --- /dev/null +++ b/MockData/BatchTests.UpdateDeleteSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:41Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService281\/Products?$filter=ProductName%20eq%20'Test11'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateWithResultRequired.1.txt b/MockData/BatchTests.UpdateWithResultRequired.1.txt new file mode 100644 index 000000000..daea70e46 --- /dev/null +++ b/MockData/BatchTests.UpdateWithResultRequired.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_1efe9cb4-078f-4409-9cc0-b00b6029ba36\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_2c3fd826-bbfc-4d56-9f67-c910153ba09c\u000d\u000a\u000d\u000a--changeset_2c3fd826-bbfc-4d56-9f67-c910153ba09c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_2c3fd826-bbfc-4d56-9f67-c910153ba09c--\u000d\u000a--batch_1efe9cb4-078f-4409-9cc0-b00b6029ba36--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_1efe9cb4-078f-4409-9cc0-b00b6029ba36"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateWithResultRequired.2.txt b/MockData/BatchTests.UpdateWithResultRequired.2.txt new file mode 100644 index 000000000..ad8d76b9f --- /dev/null +++ b/MockData/BatchTests.UpdateWithResultRequired.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_db0fbf8c-aea9-4368-81b2-ba942378cbef\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_fee156d1-bf1e-4833-91e0-5d314ef10c3d\u000d\u000a\u000d\u000a--changesetresponse_fee156d1-bf1e-4833-91e0-5d314ef10c3d\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/Products(1112)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/Products(1112)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1112)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1112)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1112)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1112)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1112<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_fee156d1-bf1e-4833-91e0-5d314ef10c3d--\u000d\u000a--batchresponse_db0fbf8c-aea9-4368-81b2-ba942378cbef--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_db0fbf8c-aea9-4368-81b2-ba942378cbef"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateWithResultRequired.3.txt b/MockData/BatchTests.UpdateWithResultRequired.3.txt new file mode 100644 index 000000000..e3c009a24 --- /dev/null +++ b/MockData/BatchTests.UpdateWithResultRequired.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_9880a704-fb46-44e8-961f-b420445bf39c\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_12ac2de2-f931-4e08-b6ee-4a964ec03bd0\u000d\u000a\u000d\u000a--changeset_12ac2de2-f931-4e08-b6ee-4a964ec03bd0\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/Products(1112) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_12ac2de2-f931-4e08-b6ee-4a964ec03bd0--\u000d\u000a--batch_9880a704-fb46-44e8-961f-b420445bf39c--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_9880a704-fb46-44e8-961f-b420445bf39c"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.UpdateWithResultRequired.4.txt b/MockData/BatchTests.UpdateWithResultRequired.4.txt new file mode 100644 index 000000000..2dc2256e2 --- /dev/null +++ b/MockData/BatchTests.UpdateWithResultRequired.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1e41fe42-fa64-4c56-b104-bf4b9da4be72\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_59ef277c-3cf2-47fb-ab59-18d43dc683c3\u000d\u000a\u000d\u000a--changesetresponse_59ef277c-3cf2-47fb-ab59-18d43dc683c3\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/Products(1112)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1112)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1112)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1112)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1112)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1112<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_59ef277c-3cf2-47fb-ab59-18d43dc683c3--\u000d\u000a--batchresponse_1e41fe42-fa64-4c56-b104-bf4b9da4be72--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2356"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1e41fe42-fa64-4c56-b104-bf4b9da4be72"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService268\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTests.WithHttpHeaders.1.txt b/MockData/BatchTests.WithHttpHeaders.1.txt new file mode 100644 index 000000000..5887690c5 --- /dev/null +++ b/MockData/BatchTests.WithHttpHeaders.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_6506741a-fe9b-4f0d-b144-c3e098907f39\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000a\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:41Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_46cc708f-005a-4ea8-a9c0-4897af382b55--\u000d\u000a--batch_6506741a-fe9b-4f0d-b144-c3e098907f39--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_6506741a-fe9b-4f0d-b144-c3e098907f39"]}],"Method":"POST","RequestHeaders":[{"Key":"batchHeader","Value":["batchHeaderValue"]} ],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTests.WithHttpHeaders.2.txt b/MockData/BatchTests.WithHttpHeaders.2.txt new file mode 100644 index 000000000..303f07857 --- /dev/null +++ b/MockData/BatchTests.WithHttpHeaders.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1121)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1121)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1122)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/Products(1122)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_e1d0fdb7-23d5-4623-a699-a395170f6d36--\u000d\u000a--batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_501e042d-1b09-46b3-813a-2a19e22b8b84"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService276\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.AllFailures.1.txt b/MockData/BatchTypedTests.AllFailures.1.txt new file mode 100644 index 000000000..7f20fe004 --- /dev/null +++ b/MockData/BatchTypedTests.AllFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_748212c2-891a-414e-b47c-043445e199e1\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_ca067407-eb06-4c7a-8e50-70e65a2e9154\u000d\u000a\u000d\u000a--changeset_ca067407-eb06-4c7a-8e50-70e65a2e9154\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ca067407-eb06-4c7a-8e50-70e65a2e9154\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_ca067407-eb06-4c7a-8e50-70e65a2e9154--\u000d\u000a--batch_748212c2-891a-414e-b47c-043445e199e1--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_748212c2-891a-414e-b47c-043445e199e1"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.AllFailures.2.txt b/MockData/BatchTypedTests.AllFailures.2.txt new file mode 100644 index 000000000..d537d4ec0 --- /dev/null +++ b/MockData/BatchTypedTests.AllFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_6809ca60-89de-428f-a029-f18729e3abf1\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_7bafd1f1-5b4c-47cc-9d9c-b9763a09c5bd\u000d\u000a\u000d\u000a--changesetresponse_7bafd1f1-5b4c-47cc-9d9c-b9763a09c5bd\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>The ProductName field is required. \u000aThe ProductName field is required.<\/m:message><m:type>System.InvalidOperationException<\/m:type><m:stacktrace> at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.<\/m:message><m:type>System.Data.Entity.Validation.DbEntityValidationException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges()<\/m:stacktrace><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_7bafd1f1-5b4c-47cc-9d9c-b9763a09c5bd--\u000d\u000a--batchresponse_6809ca60-89de-428f-a029-f18729e3abf1--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1802"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_6809ca60-89de-428f-a029-f18729e3abf1"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService140\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt new file mode 100644 index 000000000..69e1f5e4d --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_56869244-d94d-4b6d-b8b2-20037a1c5db9\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_166d5e6f-53ca-4208-9ef6-fc1bcd502eec\u000d\u000a\u000d\u000a--changeset_166d5e6f-53ca-4208-9ef6-fc1bcd502eec\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test15<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_166d5e6f-53ca-4208-9ef6-fc1bcd502eec\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test16<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_166d5e6f-53ca-4208-9ef6-fc1bcd502eec\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/$1\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/$2\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test17<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_166d5e6f-53ca-4208-9ef6-fc1bcd502eec--\u000d\u000a--batch_56869244-d94d-4b6d-b8b2-20037a1c5db9--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_56869244-d94d-4b6d-b8b2-20037a1c5db9"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt new file mode 100644 index 000000000..3231b263c --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_ad9a595d-518e-40bd-b19b-fcd61a589be6\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_02d90f28-3315-4074-b9c7-ecafdcbc1e7a\u000d\u000a\u000d\u000a--changesetresponse_02d90f28-3315-4074-b9c7-ecafdcbc1e7a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1023)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1023)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_02d90f28-3315-4074-b9c7-ecafdcbc1e7a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1024)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1024)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_02d90f28-3315-4074-b9c7-ecafdcbc1e7a\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories(1025)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories(1025)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_02d90f28-3315-4074-b9c7-ecafdcbc1e7a--\u000d\u000a--batchresponse_ad9a595d-518e-40bd-b19b-fcd61a589be6--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1751"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_ad9a595d-518e-40bd-b19b-fcd61a589be6"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt new file mode 100644 index 000000000..ad15bbfa8 --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt new file mode 100644 index 000000000..2faa01b7f --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories(1025)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1025)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1025)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories(1025)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1025)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1023)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1023)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1023)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1023)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1023)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1023<\/d:ProductID><d:ProductName>Test15<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1025<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Products(1024)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1024)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1024)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1024)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1024)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1024<\/d:ProductID><d:ProductName>Test16<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1025<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1025<\/d:CategoryID><d:CategoryName>Test17<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4522"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService135\/Categories?$filter=CategoryName%20eq%20%27Test17%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt new file mode 100644 index 000000000..5eabbbc6e --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_2fde0b03-37f2-4762-8da0-3be4099eb0e5\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_7efb7f86-eb5a-4f18-ad92-e9458e662f11\u000d\u000a\u000d\u000a--changeset_7efb7f86-eb5a-4f18-ad92-e9458e662f11\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Categories HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">0<\/d:CategoryID>\u000d\u000a <d:CategoryName>Test13<\/d:CategoryName>\u000d\u000a <d:Picture m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_7efb7f86-eb5a-4f18-ad92-e9458e662f11\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/$1\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test14<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_7efb7f86-eb5a-4f18-ad92-e9458e662f11--\u000d\u000a--batch_2fde0b03-37f2-4762-8da0-3be4099eb0e5--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_2fde0b03-37f2-4762-8da0-3be4099eb0e5"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt new file mode 100644 index 000000000..ead5a85a9 --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_2349f3d7-e7fd-4ee1-b2ce-a6fda9025269\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_0cc34b20-bba5-4e5a-9287-a40a9ea428b1\u000d\u000a\u000d\u000a--changesetresponse_0cc34b20-bba5-4e5a-9287-a40a9ea428b1\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Categories(1037)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Categories(1037)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1037)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1037)\/Products\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1037<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_0cc34b20-bba5-4e5a-9287-a40a9ea428b1\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products(1038)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products(1038)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1038)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1038)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1038)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1038)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1038<\/d:ProductID><d:ProductName>Test14<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1037<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_0cc34b20-bba5-4e5a-9287-a40a9ea428b1--\u000d\u000a--batchresponse_2349f3d7-e7fd-4ee1-b2ce-a6fda9025269--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4055"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_2349f3d7-e7fd-4ee1-b2ce-a6fda9025269"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt new file mode 100644 index 000000000..c623cccc7 --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt new file mode 100644 index 000000000..284e3c3a9 --- /dev/null +++ b/MockData/BatchTypedTests.InsertSingleEntityWithSingleAssociationSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products(1038)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1038)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1038)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Categories(1037)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1037)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1037)\/Products\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1037<\/d:CategoryID><d:CategoryName>Test13<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1038)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1038)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1038<\/d:ProductID><d:ProductName>Test14<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1037<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2785"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService143\/Products?$filter=ProductName%20eq%20%27Test14%27&$expand=Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.1.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.1.txt new file mode 100644 index 000000000..13024fdd5 --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_3ce9418b-f2f0-4879-8a3a-b468614e98ec\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_1d61bb48-c139-4cf8-b175-7c5edbf9d588\u000d\u000a\u000d\u000a--changeset_1d61bb48-c139-4cf8-b175-7c5edbf9d588\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test12<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_1d61bb48-c139-4cf8-b175-7c5edbf9d588--\u000d\u000a--batch_3ce9418b-f2f0-4879-8a3a-b468614e98ec--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_3ce9418b-f2f0-4879-8a3a-b468614e98ec"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.10.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.10.txt new file mode 100644 index 000000000..09e290641 --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.10.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1e95bed6-22d1-4f94-8743-0ddaa631bab7\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_41c7545b-aa1a-4c2b-bf84-91910f2c662e\u000d\u000a\u000d\u000a--changesetresponse_41c7545b-aa1a-4c2b-bf84-91910f2c662e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_41c7545b-aa1a-4c2b-bf84-91910f2c662e--\u000d\u000a--batchresponse_1e95bed6-22d1-4f94-8743-0ddaa631bab7--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["508"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1e95bed6-22d1-4f94-8743-0ddaa631bab7"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.11.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.11.txt new file mode 100644 index 000000000..148ece5ec --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.11.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.12.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.12.txt new file mode 100644 index 000000000..ae11ea691 --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.12.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.2.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.2.txt new file mode 100644 index 000000000..2fe7c3990 --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_79c0ad6c-287e-496f-8d59-5ccb227d4175\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_8652f584-d8ee-4ae8-a842-d0e0c6e3cb30\u000d\u000a\u000d\u000a--changesetresponse_8652f584-d8ee-4ae8-a842-d0e0c6e3cb30\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_8652f584-d8ee-4ae8-a842-d0e0c6e3cb30--\u000d\u000a--batchresponse_79c0ad6c-287e-496f-8d59-5ccb227d4175--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["761"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_79c0ad6c-287e-496f-8d59-5ccb227d4175"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.3.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.3.txt new file mode 100644 index 000000000..148ece5ec --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.4.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.4.txt new file mode 100644 index 000000000..2e1ee283e --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1036)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1036)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1036)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1036)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1036<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.5.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.5.txt new file mode 100644 index 000000000..e0ef3e8ad --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_250e915f-cf91-4015-828a-4edd072c601e\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_104becc8-b19b-4a7a-827e-26a494a73275\u000d\u000a\u000d\u000a--changeset_104becc8-b19b-4a7a-827e-26a494a73275\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_104becc8-b19b-4a7a-827e-26a494a73275--\u000d\u000a--batch_250e915f-cf91-4015-828a-4edd072c601e--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_250e915f-cf91-4015-828a-4edd072c601e"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.6.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.6.txt new file mode 100644 index 000000000..a0f9fd341 --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_9e8f7f58-0f16-4353-baa7-a770a468bd6f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_d281ea97-4340-46b4-b5ce-4a2fdd1382bd\u000d\u000a\u000d\u000a--changesetresponse_d281ea97-4340-46b4-b5ce-4a2fdd1382bd\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_d281ea97-4340-46b4-b5ce-4a2fdd1382bd--\u000d\u000a--batchresponse_9e8f7f58-0f16-4353-baa7-a770a468bd6f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["562"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_9e8f7f58-0f16-4353-baa7-a770a468bd6f"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.7.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.7.txt new file mode 100644 index 000000000..148ece5ec --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.8.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.8.txt new file mode 100644 index 000000000..4f828cb1b --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1036)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1036)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1036)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1036)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1036<\/d:ProductID><d:ProductName>Test12<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products?$filter=ProductName%20eq%20%27Test12%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.9.txt b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.9.txt new file mode 100644 index 000000000..0156ea97a --- /dev/null +++ b/MockData/BatchTypedTests.InsertUpdateDeleteSeparateBatches.9.txt @@ -0,0 +1 @@ +{"Content":"--batch_fa050990-fff3-4a72-8e0f-b4e36686b435\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_19808608-0403-4144-b3be-9bfecc348ec4\u000d\u000a\u000d\u000a--changeset_19808608-0403-4144-b3be-9bfecc348ec4\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/Products(1036) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_19808608-0403-4144-b3be-9bfecc348ec4--\u000d\u000a--batch_fa050990-fff3-4a72-8e0f-b4e36686b435--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_fa050990-fff3-4a72-8e0f-b4e36686b435"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService142\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.1.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.1.txt new file mode 100644 index 000000000..07ad25f70 --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_b73a518d-8226-4d88-9c96-7d1c05f03049\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_dc3b3945-8c79-4c7e-b591-282f8557a2cf\u000d\u000a\u000d\u000a--changeset_dc3b3945-8c79-4c7e-b591-282f8557a2cf\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_dc3b3945-8c79-4c7e-b591-282f8557a2cf--\u000d\u000a--batch_b73a518d-8226-4d88-9c96-7d1c05f03049--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_b73a518d-8226-4d88-9c96-7d1c05f03049"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.2.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.2.txt new file mode 100644 index 000000000..92e22e8db --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_033b0161-abbb-4d3e-9d8a-2bd8d6fc2276\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_11983179-e575-402b-bd35-7a79b323ad1d\u000d\u000a\u000d\u000a--changesetresponse_11983179-e575-402b-bd35-7a79b323ad1d\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1035)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1035)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1035)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1035)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1035<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_11983179-e575-402b-bd35-7a79b323ad1d--\u000d\u000a--batchresponse_033b0161-abbb-4d3e-9d8a-2bd8d6fc2276--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_033b0161-abbb-4d3e-9d8a-2bd8d6fc2276"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.3.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.3.txt new file mode 100644 index 000000000..98777d3aa --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":"--batch_dcfba60a-71c9-470d-9277-150d8633175c\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_3563884b-31ea-4acc-a4da-3adb62ccf6e9\u000d\u000a\u000d\u000a--changeset_3563884b-31ea-4acc-a4da-3adb62ccf6e9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_3563884b-31ea-4acc-a4da-3adb62ccf6e9--\u000d\u000a--batch_dcfba60a-71c9-470d-9277-150d8633175c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_dcfba60a-71c9-470d-9277-150d8633175c\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_149275a0-4862-4f01-9fa3-6653aae585a0\u000d\u000a\u000d\u000a--changeset_149275a0-4862-4f01-9fa3-6653aae585a0\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035) HTTP\/1.1\u000d\u000aContent-ID: 3\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">23<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_149275a0-4862-4f01-9fa3-6653aae585a0--\u000d\u000a--batch_dcfba60a-71c9-470d-9277-150d8633175c\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_dcfba60a-71c9-470d-9277-150d8633175c--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_dcfba60a-71c9-470d-9277-150d8633175c"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.4.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.4.txt new file mode 100644 index 000000000..95f50b1b4 --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_d40835da-fa7b-480a-833e-c7d24ea96571\u000d\u000a\u000d\u000a--changesetresponse_d40835da-fa7b-480a-833e-c7d24ea96571\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_d40835da-fa7b-480a-833e-c7d24ea96571--\u000d\u000a--batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1035)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1035)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1035)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1035)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1035<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_410a10f7-b1a1-4225-83a5-2ebbd2be3dce\u000d\u000a\u000d\u000a--changesetresponse_410a10f7-b1a1-4225-83a5-2ebbd2be3dce\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 3\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_410a10f7-b1a1-4225-83a5-2ebbd2be3dce--\u000d\u000a--batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1035)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1035)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1035)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1035)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1035<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5616"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1fce1bfd-d45d-403f-b5dd-fb0b2b75412f"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.5.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.5.txt new file mode 100644 index 000000000..4e5c8dddf --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.6.txt b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.6.txt new file mode 100644 index 000000000..094444b27 --- /dev/null +++ b/MockData/BatchTypedTests.MultipleUpdatesSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products(1035)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1035)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1035)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1035)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1035)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1035<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">23.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService141\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.PartialFailures.1.txt b/MockData/BatchTypedTests.PartialFailures.1.txt new file mode 100644 index 000000000..0c1c3be03 --- /dev/null +++ b/MockData/BatchTypedTests.PartialFailures.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_aea4ef96-0226-475b-a50a-a2ed91af544f\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_4f663d87-ba93-4b4a-a2ba-b11a7e2b5d6d\u000d\u000a\u000d\u000a--changeset_4f663d87-ba93-4b4a-a2ba-b11a7e2b5d6d\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4f663d87-ba93-4b4a-a2ba-b11a7e2b5d6d\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <d:SupplierID m:type=\"Edm.Int32\">65535<\/d:SupplierID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_4f663d87-ba93-4b4a-a2ba-b11a7e2b5d6d--\u000d\u000a--batch_aea4ef96-0226-475b-a50a-a2ed91af544f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_aea4ef96-0226-475b-a50a-a2ed91af544f"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.PartialFailures.2.txt b/MockData/BatchTypedTests.PartialFailures.2.txt new file mode 100644 index 000000000..46e576bc9 --- /dev/null +++ b/MockData/BatchTypedTests.PartialFailures.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_39086e94-2d9e-487a-bd87-be368fb221a8\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_e6ca1149-1fd8-4f1c-ab01-95ddb6b27483\u000d\u000a\u000d\u000a--changesetresponse_e6ca1149-1fd8-4f1c-ab01-95ddb6b27483\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 500 Internal Server Error\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/xml;charset=utf-8\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">An error occurred while processing this request.<\/m:message><m:innererror><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Infrastructure.DbUpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Internal.InternalContext.SaveChanges() \u000a at NorthwindModel.NorthwindContext.SaveChanges() in F:\\Projects\\Git\\Simple.OData.Client\\Simple.OData.NorthwindModel\\NorthwindContext.cs:line 54 \u000a at System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges() \u000a at System.Data.Services.DataService`1.BatchDataService.HandleBatchContent(Stream responseStream)<\/m:stacktrace><m:internalexception><m:message>An error occurred while updating the entries. See the inner exception for details.<\/m:message><m:type>System.Data.Entity.Core.UpdateException<\/m:type><m:stacktrace> at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() \u000a at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction) \u000a at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) \u000a at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction) \u000a at System.Data.Entity.Internal.InternalContext.SaveChanges()<\/m:stacktrace><m:internalexception><m:message>The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.Products_dbo.Suppliers_SupplierID\". The conflict occurred in database \"NorthwindModel.NorthwindContext\", table \"dbo.Suppliers\", column 'SupplierID'. \u000aThe statement has been terminated.<\/m:message><m:type>System.Data.SqlClient.SqlException<\/m:type><m:stacktrace> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) \u000a at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) \u000a at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) \u000a at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) \u000a at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) \u000a at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() \u000a at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) \u000a at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues) \u000a at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()<\/m:stacktrace><\/m:internalexception><\/m:internalexception><\/m:innererror><\/m:error>\u000d\u000a--changesetresponse_e6ca1149-1fd8-4f1c-ab01-95ddb6b27483--\u000d\u000a--batchresponse_39086e94-2d9e-487a-bd87-be368fb221a8--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["5038"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_39086e94-2d9e-487a-bd87-be368fb221a8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService136\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.1.txt b/MockData/BatchTypedTests.Success.1.txt new file mode 100644 index 000000000..379b7a2d7 --- /dev/null +++ b/MockData/BatchTypedTests.Success.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_0bfe5679-9581-4114-b44a-c7bea1f9bc93\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_79e31e09-eb4d-40bf-82f7-3f043f383931\u000d\u000a\u000d\u000a--changeset_79e31e09-eb4d-40bf-82f7-3f043f383931\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_79e31e09-eb4d-40bf-82f7-3f043f383931\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_79e31e09-eb4d-40bf-82f7-3f043f383931--\u000d\u000a--batch_0bfe5679-9581-4114-b44a-c7bea1f9bc93--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_0bfe5679-9581-4114-b44a-c7bea1f9bc93"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.2.txt b/MockData/BatchTypedTests.Success.2.txt new file mode 100644 index 000000000..c22f8bc41 --- /dev/null +++ b/MockData/BatchTypedTests.Success.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_ebce0395-0bd3-4cbb-984c-3fe4ac3f52af\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_2b05946f-20a0-4716-9fa1-af1ee481af15\u000d\u000a\u000d\u000a--changesetresponse_2b05946f-20a0-4716-9fa1-af1ee481af15\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1028)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1028)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_2b05946f-20a0-4716-9fa1-af1ee481af15\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1029)\u000d\u000aDataServiceId: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1029)\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_2b05946f-20a0-4716-9fa1-af1ee481af15--\u000d\u000a--batchresponse_ebce0395-0bd3-4cbb-984c-3fe4ac3f52af--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["1254"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_ebce0395-0bd3-4cbb-984c-3fe4ac3f52af"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.3.txt b/MockData/BatchTypedTests.Success.3.txt new file mode 100644 index 000000000..1d61f96b1 --- /dev/null +++ b/MockData/BatchTypedTests.Success.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.4.txt b/MockData/BatchTypedTests.Success.4.txt new file mode 100644 index 000000000..d66aa98ad --- /dev/null +++ b/MockData/BatchTypedTests.Success.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1028)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1028)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1028)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1028)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1028)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1028<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.5.txt b/MockData/BatchTypedTests.Success.5.txt new file mode 100644 index 000000000..df7aeac52 --- /dev/null +++ b/MockData/BatchTypedTests.Success.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products?$filter=ProductName%20eq%20%27Test2%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.Success.6.txt b/MockData/BatchTypedTests.Success.6.txt new file mode 100644 index 000000000..96325cc0d --- /dev/null +++ b/MockData/BatchTypedTests.Success.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products(1029)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1029)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1029)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1029)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1029)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1029<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService137\/Products?$filter=ProductName%20eq%20%27Test2%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.1.txt b/MockData/BatchTypedTests.SuccessWithResults.1.txt new file mode 100644 index 000000000..42a2c742d --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_e395f286-3000-45dd-b1e6-837cab4f7a40\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_fe55dbff-ee7c-49bd-8118-a9f5206a4fac\u000d\u000a\u000d\u000a--changeset_fe55dbff-ee7c-49bd-8118-a9f5206a4fac\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_fe55dbff-ee7c-49bd-8118-a9f5206a4fac\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products HTTP\/1.1\u000d\u000aContent-ID: 2\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_fe55dbff-ee7c-49bd-8118-a9f5206a4fac--\u000d\u000a--batch_e395f286-3000-45dd-b1e6-837cab4f7a40--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_e395f286-3000-45dd-b1e6-837cab4f7a40"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.2.txt b/MockData/BatchTypedTests.SuccessWithResults.2.txt new file mode 100644 index 000000000..0b264b4dd --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_4e72bd18-93ec-447d-8ba5-40dc86a9373f\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_4c5f8c1f-58bb-4817-8de6-a1dd21a5deab\u000d\u000a\u000d\u000a--changesetresponse_4c5f8c1f-58bb-4817-8de6-a1dd21a5deab\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1031)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1031)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1031)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1031)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1031)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1031)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1031<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_4c5f8c1f-58bb-4817-8de6-a1dd21a5deab\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 2\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1032)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1032)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1032)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1032)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1032)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1032)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1032<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_4c5f8c1f-58bb-4817-8de6-a1dd21a5deab--\u000d\u000a--batchresponse_4e72bd18-93ec-447d-8ba5-40dc86a9373f--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4646"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_4e72bd18-93ec-447d-8ba5-40dc86a9373f"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.3.txt b/MockData/BatchTypedTests.SuccessWithResults.3.txt new file mode 100644 index 000000000..68b31ab58 --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.4.txt b/MockData/BatchTypedTests.SuccessWithResults.4.txt new file mode 100644 index 000000000..2155fe4cf --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1031)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1031)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1031)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1031)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1031)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1031<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.5.txt b/MockData/BatchTypedTests.SuccessWithResults.5.txt new file mode 100644 index 000000000..dd849537a --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products?$filter=ProductName%20eq%20%27Test2%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.SuccessWithResults.6.txt b/MockData/BatchTypedTests.SuccessWithResults.6.txt new file mode 100644 index 000000000..9997cf02a --- /dev/null +++ b/MockData/BatchTypedTests.SuccessWithResults.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:30Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products(1032)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1032)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1032)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1032)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1032)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1032<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">20.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService139\/Products?$filter=ProductName%20eq%20%27Test2%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.1.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.1.txt new file mode 100644 index 000000000..c1722aa42 --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_f3fe2e40-5bad-40d7-8b7f-0615f5bf06fd\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_d8cf84ce-928e-472a-aab1-11c18c5733c3\u000d\u000a\u000d\u000a--changeset_d8cf84ce-928e-472a-aab1-11c18c5733c3\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test11<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_d8cf84ce-928e-472a-aab1-11c18c5733c3--\u000d\u000a--batch_f3fe2e40-5bad-40d7-8b7f-0615f5bf06fd--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_f3fe2e40-5bad-40d7-8b7f-0615f5bf06fd"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.2.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.2.txt new file mode 100644 index 000000000..d07eb95ea --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_dcaa0116-f203-4068-95ef-ed707beb91e9\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_4040696d-5fab-459b-b96c-a7c38f329fc9\u000d\u000a\u000d\u000a--changesetresponse_4040696d-5fab-459b-b96c-a7c38f329fc9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aDataServiceVersion: 3.0;\u000d\u000aContent-Type: application\/atom+xml;type=entry;charset=utf-8\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-content\u000d\u000aLocation: http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030)\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1030)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1030)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1030)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1030)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1030<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>\u000d\u000a--changesetresponse_4040696d-5fab-459b-b96c-a7c38f329fc9--\u000d\u000a--batchresponse_dcaa0116-f203-4068-95ef-ed707beb91e9--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["2458"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_dcaa0116-f203-4068-95ef-ed707beb91e9"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.3.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.3.txt new file mode 100644 index 000000000..9de8d96af --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.4.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.4.txt new file mode 100644 index 000000000..5bc2e59c4 --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1030)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1030)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1030)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1030)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1030<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.5.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.5.txt new file mode 100644 index 000000000..252593831 --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.5.txt @@ -0,0 +1 @@ +{"Content":"--batch_32d95a37-72aa-4901-9440-02c9c1be0a99\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_07dba09e-d915-45b0-8485-4000c47b1b3e\u000d\u000a\u000d\u000a--changeset_07dba09e-d915-45b0-8485-4000c47b1b3e\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPATCH http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030) HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-no-content\u000d\u000aContent-Type: application\/atom+xml;type=entry\u000d\u000a\u000d\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">22<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>\u000d\u000a--changeset_07dba09e-d915-45b0-8485-4000c47b1b3e--\u000d\u000a--batch_32d95a37-72aa-4901-9440-02c9c1be0a99\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_32d95a37-72aa-4901-9440-02c9c1be0a99\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_b3c9efb9-808d-419f-a3b4-d49408b65704\u000d\u000a\u000d\u000a--changeset_b3c9efb9-808d-419f-a3b4-d49408b65704\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aDELETE http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030) HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--changeset_b3c9efb9-808d-419f-a3b4-d49408b65704--\u000d\u000a--batch_32d95a37-72aa-4901-9440-02c9c1be0a99\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_32d95a37-72aa-4901-9440-02c9c1be0a99--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_32d95a37-72aa-4901-9440-02c9c1be0a99"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/$batch"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.6.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.6.txt new file mode 100644 index 000000000..13a5a019c --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.6.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_2562dea4-a820-4374-b88b-6fc224063e79\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_6b33967c-3f94-48e9-9793-340e151ac611\u000d\u000a\u000d\u000a--changesetresponse_6b33967c-3f94-48e9-9793-340e151ac611\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aContent-ID: 1\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aPreference-Applied: return-no-content\u000d\u000aDataServiceVersion: 3.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_6b33967c-3f94-48e9-9793-340e151ac611--\u000d\u000a--batchresponse_2562dea4-a820-4374-b88b-6fc224063e79\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products(1030)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1030)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1030)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1030)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1030)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1030<\/d:ProductID><d:ProductName>Test11<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>\u000d\u000a--batchresponse_2562dea4-a820-4374-b88b-6fc224063e79\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_8c36fd32-2a42-4146-9263-0545e3b38b58\u000d\u000a\u000d\u000a--changesetresponse_8c36fd32-2a42-4146-9263-0545e3b38b58\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 204 No Content\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000aDataServiceVersion: 1.0;\u000d\u000a\u000d\u000a\u000d\u000a--changesetresponse_8c36fd32-2a42-4146-9263-0545e3b38b58--\u000d\u000a--batchresponse_2562dea4-a820-4374-b88b-6fc224063e79\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\u000a<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>\u000d\u000a--batchresponse_2562dea4-a820-4374-b88b-6fc224063e79--\u000d\u000a","ContentHeaders":[{"Key":"Content-Length","Value":["4122"]},{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_2562dea4-a820-4374-b88b-6fc224063e79"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/$batch","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":202} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.7.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.7.txt new file mode 100644 index 000000000..9de8d96af --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27"} \ No newline at end of file diff --git a/MockData/BatchTypedTests.UpdateDeleteSingleBatch.8.txt b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.8.txt new file mode 100644 index 000000000..a3e657613 --- /dev/null +++ b/MockData/BatchTypedTests.UpdateDeleteSingleBatch.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService138\/Products?$filter=ProductName%20eq%20%27Test11%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:29 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.1.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.1.txt new file mode 100644 index 000000000..44f474c27 --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService242\/PassThroughDateTime?dateTime=datetime%272013-01-01T12%3A13%3A14.789Z%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.2.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.2.txt new file mode 100644 index 000000000..ee26365ec --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithDateTimeParameter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughDateTime xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.DateTime\">2013-01-01T12:13:14.789Z<\/d:PassThroughDateTime>","ContentHeaders":[{"Key":"Content-Length","Value":["268"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService242\/PassThroughDateTime?dateTime=datetime%272013-01-01T12%3A13%3A14.789Z%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.1.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.1.txt new file mode 100644 index 000000000..14cf68f4a --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService252\/PassThroughGuid?guid=guid%277d8f1758-00d4-4c53-a2e3-8fca73ebb92c%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.2.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.2.txt new file mode 100644 index 000000000..701859293 --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithGuidParameter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughGuid xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Guid\">7d8f1758-00d4-4c53-a2e3-8fca73ebb92c<\/d:PassThroughGuid>","ContentHeaders":[{"Key":"Content-Length","Value":["268"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService252\/PassThroughGuid?guid=guid%277d8f1758-00d4-4c53-a2e3-8fca73ebb92c%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.1.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.1.txt new file mode 100644 index 000000000..300d9dc79 --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService250\/PassThroughLong?number=1L"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.2.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.2.txt new file mode 100644 index 000000000..bee9652f2 --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithLongParameter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughLong xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Int64\">1<\/d:PassThroughLong>","ContentHeaders":[{"Key":"Content-Length","Value":["234"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService250\/PassThroughLong?number=1L","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.1.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.1.txt new file mode 100644 index 000000000..3cfb5466f --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService232\/ParseInt?number=%271%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.2.txt b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.2.txt new file mode 100644 index 000000000..75284bf84 --- /dev/null +++ b/MockData/ClientReadOnlyTests.ExecuteScalarFunctionWithStringParameter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ParseInt xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Int32\">1<\/d:ParseInt>","ContentHeaders":[{"Key":"Content-Length","Value":["220"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService232\/ParseInt?number=%271%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.1.txt b/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.1.txt new file mode 100644 index 000000000..d599260e8 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService239\/Transport(1)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.2.txt b/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.2.txt new file mode 100644 index 000000000..3c2c711ff --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindBaseClassEntryDynamicFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService239\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService239\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService239\/Transport(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.1.txt b/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.1.txt new file mode 100644 index 000000000..8d48548b5 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService246\/Transport(1)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.2.txt b/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.2.txt new file mode 100644 index 000000000..2c41e1c76 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindBaseClassEntryTypedFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService246\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService246\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService246\/Transport(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.1.txt b/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.1.txt new file mode 100644 index 000000000..51c7da561 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService254\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.2.txt b/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.2.txt new file mode 100644 index 000000000..1c75a5eed --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindDerivedClassEntryDynamicFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService254\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService254\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService254\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService254\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.1.txt b/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.1.txt new file mode 100644 index 000000000..75dac019c --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService241\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.2.txt b/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.2.txt new file mode 100644 index 000000000..d6a80587e --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindDerivedClassEntryTypedFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService241\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService241\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService241\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService241\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntries.1.txt b/MockData/ClientReadOnlyTests.FindEntries.1.txt new file mode 100644 index 000000000..3847ff7dd --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntries.2.txt b/MockData/ClientReadOnlyTests.FindEntries.2.txt new file mode 100644 index 000000000..97065430a --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["33240"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService253\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesFilterAll.1.txt b/MockData/ClientReadOnlyTests.FindEntriesFilterAll.1.txt new file mode 100644 index 000000000..19f218100 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesFilterAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders?$filter=Order_Details\/all(d:d\/Quantity%20gt%2050)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesFilterAll.2.txt b/MockData/ClientReadOnlyTests.FindEntriesFilterAll.2.txt new file mode 100644 index 000000000..dd516baca --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesFilterAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10000)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10000)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10000)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10000)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10000)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10000)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10000<\/d:OrderID><d:CustomerID>FRANS<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:ShipName>Franchi S.p.A.<\/d:ShipName><d:ShipAddress>Via Monte Bianco 34<\/d:ShipAddress><d:ShipCity>Torino<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>10100<\/d:ShipPostalCode><d:ShipCountry>Italy<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-10-05T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-06-07T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-05-15T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">4.45<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11160"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService244\/Orders?$filter=Order_Details\/all(d:d\/Quantity%20gt%2050)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesFilterAny.1.txt b/MockData/ClientReadOnlyTests.FindEntriesFilterAny.1.txt new file mode 100644 index 000000000..db7464adc --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesFilterAny.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders?$filter=Order_Details\/any(d:d\/Quantity%20gt%2050)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesFilterAny.2.txt b/MockData/ClientReadOnlyTests.FindEntriesFilterAny.2.txt new file mode 100644 index 000000000..2f888a3d6 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesFilterAny.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9386"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService240\/Orders?$filter=Order_Details\/any(d:d\/Quantity%20gt%2050)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesNonExisting.1.txt b/MockData/ClientReadOnlyTests.FindEntriesNonExisting.1.txt new file mode 100644 index 000000000..20a7cd140 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService243\/Products?$filter=ProductID%20eq%20-1"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesNonExisting.2.txt b/MockData/ClientReadOnlyTests.FindEntriesNonExisting.2.txt new file mode 100644 index 000000000..ed06598df --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService243\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService243\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService243\/Products?$filter=ProductID%20eq%20-1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesSelect.1.txt b/MockData/ClientReadOnlyTests.FindEntriesSelect.1.txt new file mode 100644 index 000000000..b1bc851af --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesSelect.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products?$select=ProductName"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntriesSelect.2.txt b/MockData/ClientReadOnlyTests.FindEntriesSelect.2.txt new file mode 100644 index 000000000..79a4fd1df --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntriesSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10750"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService235\/Products?$select=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntry.1.txt b/MockData/ClientReadOnlyTests.FindEntry.1.txt new file mode 100644 index 000000000..15db87c04 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService238\/Products?$filter=ProductName%20eq%20'Chai'"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntry.2.txt b/MockData/ClientReadOnlyTests.FindEntry.2.txt new file mode 100644 index 000000000..47e1c9346 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService238\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService238\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService238\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService238\/Products?$filter=ProductName%20eq%20'Chai'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.1.txt b/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.1.txt new file mode 100644 index 000000000..8d76b75b6 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService248\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.2.txt b/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.2.txt new file mode 100644 index 000000000..ee4b8cfe6 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntryExistingDynamicFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService248\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService248\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService248\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService248\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.1.txt b/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.1.txt new file mode 100644 index 000000000..20c9e2994 --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService251\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.2.txt b/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.2.txt new file mode 100644 index 000000000..a06672e5f --- /dev/null +++ b/MockData/ClientReadOnlyTests.FindEntryExistingTypedFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService251\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService251\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService251\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService251\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryExisting.1.txt b/MockData/ClientReadOnlyTests.GetEntryExisting.1.txt new file mode 100644 index 000000000..485de8904 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService237\/Products(1)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryExisting.2.txt b/MockData/ClientReadOnlyTests.GetEntryExisting.2.txt new file mode 100644 index 000000000..76e439566 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService237\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService237\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1770"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService237\/Products(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.1.txt b/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.1.txt new file mode 100644 index 000000000..f18f1b992 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService249\/Order_Details(OrderID=10248,ProductID=11)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.2.txt b/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.2.txt new file mode 100644 index 000000000..aa29b73a1 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryExistingCompoundKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService249\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService249\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1404"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService249\/Order_Details(OrderID=10248,ProductID=11)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryNonExisting.1.txt b/MockData/ClientReadOnlyTests.GetEntryNonExisting.1.txt new file mode 100644 index 000000000..c1b6e94be --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService245\/Products(-1)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryNonExisting.2.txt b/MockData/ClientReadOnlyTests.GetEntryNonExisting.2.txt new file mode 100644 index 000000000..bca29e9d1 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Products'.<\/m:message><\/m:error>","ContentHeaders":[{"Key":"Content-Length","Value":["226"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService245\/Products(-1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":404} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.1.txt b/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.1.txt new file mode 100644 index 000000000..6979d1f53 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService233\/Products(-1)"} \ No newline at end of file diff --git a/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.2.txt b/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.2.txt new file mode 100644 index 000000000..4c0e234c2 --- /dev/null +++ b/MockData/ClientReadOnlyTests.GetEntryNonExistingIgnoreException.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Products'.<\/m:message><\/m:error>","ContentHeaders":[{"Key":"Content-Length","Value":["226"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService233\/Products(-1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":404} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.1.txt b/MockData/ClientReadWriteTests.DeleteEntry.1.txt new file mode 100644 index 000000000..fb5f85f3a --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test3<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.2.txt b/MockData/ClientReadWriteTests.DeleteEntry.2.txt new file mode 100644 index 000000000..8e0231a3d --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products(1067)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1067)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1067)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1067)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1067)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1067<\/d:ProductID><d:ProductName>Test3<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products(1067)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.3.txt b/MockData/ClientReadWriteTests.DeleteEntry.3.txt new file mode 100644 index 000000000..1e2254b75 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products?$filter=ProductName%20eq%20'Test3'"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.4.txt b/MockData/ClientReadWriteTests.DeleteEntry.4.txt new file mode 100644 index 000000000..b601c884c --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products(1067)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1067)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1067)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1067)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1067)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1067<\/d:ProductID><d:ProductName>Test3<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products?$filter=ProductName%20eq%20'Test3'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.5.txt b/MockData/ClientReadWriteTests.DeleteEntry.5.txt new file mode 100644 index 000000000..fbcbc0f03 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products(1067)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.6.txt b/MockData/ClientReadWriteTests.DeleteEntry.6.txt new file mode 100644 index 000000000..2d778da45 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products(1067)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.7.txt b/MockData/ClientReadWriteTests.DeleteEntry.7.txt new file mode 100644 index 000000000..1e2254b75 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products?$filter=ProductName%20eq%20'Test3'"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntry.8.txt b/MockData/ClientReadWriteTests.DeleteEntry.8.txt new file mode 100644 index 000000000..37aa955f3 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService162\/Products?$filter=ProductName%20eq%20'Test3'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.1.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.1.txt new file mode 100644 index 000000000..b13377cda --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test3<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.2.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.2.txt new file mode 100644 index 000000000..b134aa5ef --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport(1066)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1066)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1066<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test3<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport(1066)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.3.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.3.txt new file mode 100644 index 000000000..879b72b8f --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport?$filter=TransportID%20eq%201066"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.4.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.4.txt new file mode 100644 index 000000000..4b0db82b2 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport(1066)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1066)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1066<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test3<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1107"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport?$filter=TransportID%20eq%201066","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.5.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.5.txt new file mode 100644 index 000000000..46d1bc81f --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport(1066)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.6.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.6.txt new file mode 100644 index 000000000..c245be5c3 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport(1066)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.7.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.7.txt new file mode 100644 index 000000000..879b72b8f --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport?$filter=TransportID%20eq%201066"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollection.8.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.8.txt new file mode 100644 index 000000000..37224afeb --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollection.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["550"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService161\/Transport?$filter=TransportID%20eq%201066","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.1.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.1.txt new file mode 100644 index 000000000..0228027cc --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test3<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.2.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.2.txt new file mode 100644 index 000000000..1ddcaf207 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport(1071)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1071)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1071<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test3<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport(1071)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.3.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.3.txt new file mode 100644 index 000000000..5f0d3876d --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport?$filter=TransportID%20eq%201071"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.4.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.4.txt new file mode 100644 index 000000000..dab144f61 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport(1071)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1071)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1071<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test3<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1107"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport?$filter=TransportID%20eq%201071","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.5.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.5.txt new file mode 100644 index 000000000..dca4062f8 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport(1071)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.6.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.6.txt new file mode 100644 index 000000000..c5384ea26 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport(1071)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.7.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.7.txt new file mode 100644 index 000000000..5f0d3876d --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport?$filter=TransportID%20eq%201071"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.8.txt b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.8.txt new file mode 100644 index 000000000..8ad2834a5 --- /dev/null +++ b/MockData/ClientReadWriteTests.DeleteEntrySubCollectionWithAnnotations.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["550"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService168\/Transport?$filter=TransportID%20eq%201071","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntryNoResult.1.txt b/MockData/ClientReadWriteTests.InsertEntryNoResult.1.txt new file mode 100644 index 000000000..444d83e63 --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntryNoResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService166\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService166\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntryNoResult.2.txt b/MockData/ClientReadWriteTests.InsertEntryNoResult.2.txt new file mode 100644 index 000000000..da422bc73 --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntryNoResult.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService166\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"DataServiceId","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService166\/Products(1069)"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService166\/Products(1069)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntrySubcollection.1.txt b/MockData/ClientReadWriteTests.InsertEntrySubcollection.1.txt new file mode 100644 index 000000000..68d41926b --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntrySubcollection.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/Transport"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntrySubcollection.2.txt b/MockData/ClientReadWriteTests.InsertEntrySubcollection.2.txt new file mode 100644 index 000000000..303b3f6de --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntrySubcollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/Transport(1068)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1068)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1068<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService163\/Transport(1068)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntryWithResult.1.txt b/MockData/ClientReadWriteTests.InsertEntryWithResult.1.txt new file mode 100644 index 000000000..2c3ad4728 --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntryWithResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.InsertEntryWithResult.2.txt b/MockData/ClientReadWriteTests.InsertEntryWithResult.2.txt new file mode 100644 index 000000000..e53882fc9 --- /dev/null +++ b/MockData/ClientReadWriteTests.InsertEntryWithResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/Products(1065)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1065)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1065)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1065)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1065<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService160\/Products(1065)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.1.txt b/MockData/ClientReadWriteTests.LinkEntry.1.txt new file mode 100644 index 000000000..30cadf617 --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Categories"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.2.txt b/MockData/ClientReadWriteTests.LinkEntry.2.txt new file mode 100644 index 000000000..91b33c9ec --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Categories(1073)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1073)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1073)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1073<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Categories(1073)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.3.txt b/MockData/ClientReadWriteTests.LinkEntry.3.txt new file mode 100644 index 000000000..f1381b48f --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["752"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.4.txt b/MockData/ClientReadWriteTests.LinkEntry.4.txt new file mode 100644 index 000000000..753d7955d --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products(1074)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1074)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1074)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1074)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1074)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1074<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1742"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products(1074)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.5.txt b/MockData/ClientReadWriteTests.LinkEntry.5.txt new file mode 100644 index 000000000..834972d57 --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Categories(1073)<\/uri>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/xml"]},{"Key":"Content-Length","Value":["200"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products(1074)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.6.txt b/MockData/ClientReadWriteTests.LinkEntry.6.txt new file mode 100644 index 000000000..2b31db7ce --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products(1074)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.7.txt b/MockData/ClientReadWriteTests.LinkEntry.7.txt new file mode 100644 index 000000000..907e05f80 --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products?$filter=ProductName%20eq%20'Test5'"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.LinkEntry.8.txt b/MockData/ClientReadWriteTests.LinkEntry.8.txt new file mode 100644 index 000000000..2c418e8f2 --- /dev/null +++ b/MockData/ClientReadWriteTests.LinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products(1074)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1074)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1074)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1074)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1074)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1074<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1073<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1987"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService170\/Products?$filter=ProductName%20eq%20'Test5'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.1.txt b/MockData/ClientReadWriteTests.UnlinkEntry.1.txt new file mode 100644 index 000000000..6bfbcd7e7 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test6<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Categories"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.10.txt b/MockData/ClientReadWriteTests.UnlinkEntry.10.txt new file mode 100644 index 000000000..57fa9c864 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1064)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1064)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1064)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1064)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1064<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1984"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products?$filter=ProductName%20eq%20'Test7'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.2.txt b/MockData/ClientReadWriteTests.UnlinkEntry.2.txt new file mode 100644 index 000000000..ab9db8b54 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Categories(1063)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1063)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1063)\/Products\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1063<\/d:CategoryID><d:CategoryName>Test6<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Categories(1063)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.3.txt b/MockData/ClientReadWriteTests.UnlinkEntry.3.txt new file mode 100644 index 000000000..48556448c --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test7<\/d:ProductName>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1063<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["812"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.4.txt b/MockData/ClientReadWriteTests.UnlinkEntry.4.txt new file mode 100644 index 000000000..46e54239d --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1064)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1064)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1064)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1064)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1064<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1063<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1764"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.5.txt b/MockData/ClientReadWriteTests.UnlinkEntry.5.txt new file mode 100644 index 000000000..424741f09 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products?$filter=ProductName%20eq%20'Test7'"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.6.txt b/MockData/ClientReadWriteTests.UnlinkEntry.6.txt new file mode 100644 index 000000000..7356a0e69 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1064)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1064)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1064)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1064)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1064<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1063<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1987"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products?$filter=ProductName%20eq%20'Test7'","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.7.txt b/MockData/ClientReadWriteTests.UnlinkEntry.7.txt new file mode 100644 index 000000000..54925e5f9 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.8.txt b/MockData/ClientReadWriteTests.UnlinkEntry.8.txt new file mode 100644 index 000000000..ab1809f19 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products(1064)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UnlinkEntry.9.txt b/MockData/ClientReadWriteTests.UnlinkEntry.9.txt new file mode 100644 index 000000000..424741f09 --- /dev/null +++ b/MockData/ClientReadWriteTests.UnlinkEntry.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService159\/Products?$filter=ProductName%20eq%20'Test7'"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryNoResult.1.txt b/MockData/ClientReadWriteTests.UpdateEntryNoResult.1.txt new file mode 100644 index 000000000..0e2c42966 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryNoResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Chai<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/Products(1)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryNoResult.2.txt b/MockData/ClientReadWriteTests.UpdateEntryNoResult.2.txt new file mode 100644 index 000000000..6666fe8fe --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryNoResult.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/Products(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryNoResult.3.txt b/MockData/ClientReadWriteTests.UpdateEntryNoResult.3.txt new file mode 100644 index 000000000..99e02df73 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryNoResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/Products(1)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryNoResult.4.txt b/MockData/ClientReadWriteTests.UpdateEntryNoResult.4.txt new file mode 100644 index 000000000..8ee90556d --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryNoResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1770"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService164\/Products(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.1.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.1.txt new file mode 100644 index 000000000..79c90656f --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.2.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.2.txt new file mode 100644 index 000000000..a48a4d69c --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1070)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1070<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.3.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.3.txt new file mode 100644 index 000000000..50625b793 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test2<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.4.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.4.txt new file mode 100644 index 000000000..ac372df47 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1070)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1070<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.5.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.5.txt new file mode 100644 index 000000000..e14a1622e --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollection.6.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.6.txt new file mode 100644 index 000000000..c6b66ae36 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollection.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1070)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1070<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["876"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService167\/Transport(1070)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.1.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.1.txt new file mode 100644 index 000000000..4129c8757 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.2.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.2.txt new file mode 100644 index 000000000..bea2f47a7 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1072)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1072<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.3.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.3.txt new file mode 100644 index 000000000..7a7f1be9e --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test2<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.4.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.4.txt new file mode 100644 index 000000000..71fef8247 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1072)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1072<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.5.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.5.txt new file mode 100644 index 000000000..6429d0e06 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.6.txt b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.6.txt new file mode 100644 index 000000000..b02aefc1c --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntrySubcollectionWithAnnotations.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1072)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1072<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["876"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService169\/Transport(1072)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryWithResult.1.txt b/MockData/ClientReadWriteTests.UpdateEntryWithResult.1.txt new file mode 100644 index 000000000..1acc43834 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryWithResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService171\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:33Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Chai<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService171\/Products(1)"} \ No newline at end of file diff --git a/MockData/ClientReadWriteTests.UpdateEntryWithResult.2.txt b/MockData/ClientReadWriteTests.UpdateEntryWithResult.2.txt new file mode 100644 index 000000000..bef352865 --- /dev/null +++ b/MockData/ClientReadWriteTests.UpdateEntryWithResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService171\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService171\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1850"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService171\/Products(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.1.txt b/MockData/DeleteDynamicTests.DeleteByFilter.1.txt new file mode 100644 index 000000000..5295c4289 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.2.txt b/MockData/DeleteDynamicTests.DeleteByFilter.2.txt new file mode 100644 index 000000000..56883c90b --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products(1018)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1018)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1018)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1018)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1018)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1018<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products(1018)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.3.txt b/MockData/DeleteDynamicTests.DeleteByFilter.3.txt new file mode 100644 index 000000000..9a28b28c7 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.4.txt b/MockData/DeleteDynamicTests.DeleteByFilter.4.txt new file mode 100644 index 000000000..9b0d282f0 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products(1018)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1018)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1018)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1018)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1018)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1018<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1982"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.5.txt b/MockData/DeleteDynamicTests.DeleteByFilter.5.txt new file mode 100644 index 000000000..d84a4ce0c --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products(1018)"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.6.txt b/MockData/DeleteDynamicTests.DeleteByFilter.6.txt new file mode 100644 index 000000000..b7cb46038 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products(1018)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.7.txt b/MockData/DeleteDynamicTests.DeleteByFilter.7.txt new file mode 100644 index 000000000..9a28b28c7 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByFilter.8.txt b/MockData/DeleteDynamicTests.DeleteByFilter.8.txt new file mode 100644 index 000000000..87673c710 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["544"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService74\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.1.txt b/MockData/DeleteDynamicTests.DeleteByKey.1.txt new file mode 100644 index 000000000..335e16192 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.2.txt b/MockData/DeleteDynamicTests.DeleteByKey.2.txt new file mode 100644 index 000000000..a32c40e17 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products(1017)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1017)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1017)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1017)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1017)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1017<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products(1017)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.3.txt b/MockData/DeleteDynamicTests.DeleteByKey.3.txt new file mode 100644 index 000000000..ad41a2302 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products(1017)"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.4.txt b/MockData/DeleteDynamicTests.DeleteByKey.4.txt new file mode 100644 index 000000000..abee1352d --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products(1017)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.5.txt b/MockData/DeleteDynamicTests.DeleteByKey.5.txt new file mode 100644 index 000000000..0d6c3526b --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByKey.6.txt b/MockData/DeleteDynamicTests.DeleteByKey.6.txt new file mode 100644 index 000000000..18f62d00f --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["544"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService73\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.1.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.1.txt new file mode 100644 index 000000000..6fece9ffc --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.2.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.2.txt new file mode 100644 index 000000000..bf449ff09 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products(1020)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1020)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1020)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1020)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1020)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1020<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products(1020)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.3.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.3.txt new file mode 100644 index 000000000..9e6ffa08a --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products(1020)"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.4.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.4.txt new file mode 100644 index 000000000..4172007cb --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products(1020)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.5.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.5.txt new file mode 100644 index 000000000..b79f20f3c --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteByObjectAsKey.6.txt b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.6.txt new file mode 100644 index 000000000..65fb87133 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["544"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService76\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.1.txt b/MockData/DeleteDynamicTests.DeleteDerived.1.txt new file mode 100644 index 000000000..4efc961c8 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["742"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.2.txt b/MockData/DeleteDynamicTests.DeleteDerived.2.txt new file mode 100644 index 000000000..82fe48cfe --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport(1019)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1019)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1019<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["952"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport(1019)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.3.txt b/MockData/DeleteDynamicTests.DeleteDerived.3.txt new file mode 100644 index 000000000..691a39eda --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport(1019)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.4.txt b/MockData/DeleteDynamicTests.DeleteDerived.4.txt new file mode 100644 index 000000000..ce1145347 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport(1019)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.5.txt b/MockData/DeleteDynamicTests.DeleteDerived.5.txt new file mode 100644 index 000000000..698d92e82 --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteDynamicTests.DeleteDerived.6.txt b/MockData/DeleteDynamicTests.DeleteDerived.6.txt new file mode 100644 index 000000000..5b4bb79fa --- /dev/null +++ b/MockData/DeleteDynamicTests.DeleteDerived.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["598"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService75\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.1.txt b/MockData/DeleteTests.DeleteByFilter.1.txt new file mode 100644 index 000000000..23198b91a --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.2.txt b/MockData/DeleteTests.DeleteByFilter.2.txt new file mode 100644 index 000000000..0e6554ece --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products(1110)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1110)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1110)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1110)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1110)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1110<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products(1110)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.3.txt b/MockData/DeleteTests.DeleteByFilter.3.txt new file mode 100644 index 000000000..11f69dd30 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.4.txt b/MockData/DeleteTests.DeleteByFilter.4.txt new file mode 100644 index 000000000..84ff088f7 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products(1110)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1110)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1110)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1110)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1110)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1110<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.5.txt b/MockData/DeleteTests.DeleteByFilter.5.txt new file mode 100644 index 000000000..856b35c78 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products(1110)"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.6.txt b/MockData/DeleteTests.DeleteByFilter.6.txt new file mode 100644 index 000000000..baec164c4 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products(1110)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.7.txt b/MockData/DeleteTests.DeleteByFilter.7.txt new file mode 100644 index 000000000..11f69dd30 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilter.8.txt b/MockData/DeleteTests.DeleteByFilter.8.txt new file mode 100644 index 000000000..16a82ccf7 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService265\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.1.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.1.txt new file mode 100644 index 000000000..32e18f2ad --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.2.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.2.txt new file mode 100644 index 000000000..03dfa6962 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products(1107)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1107)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1107)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1107)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1107)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1107<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products(1107)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.3.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.3.txt new file mode 100644 index 000000000..a80a07b81 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.4.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.4.txt new file mode 100644 index 000000000..867e3eb40 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products(1107)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1107)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1107)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1107)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1107)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1107<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.5.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.5.txt new file mode 100644 index 000000000..1f40e72e9 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products(1107)"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.6.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.6.txt new file mode 100644 index 000000000..216b06105 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products(1107)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.7.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.7.txt new file mode 100644 index 000000000..a80a07b81 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByFilterFromCommand.8.txt b/MockData/DeleteTests.DeleteByFilterFromCommand.8.txt new file mode 100644 index 000000000..3c0a3cec7 --- /dev/null +++ b/MockData/DeleteTests.DeleteByFilterFromCommand.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService262\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.1.txt b/MockData/DeleteTests.DeleteByKey.1.txt new file mode 100644 index 000000000..4b00f25d0 --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.2.txt b/MockData/DeleteTests.DeleteByKey.2.txt new file mode 100644 index 000000000..3b9af1bd6 --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1109)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1109)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1109)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1109)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1109<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.3.txt b/MockData/DeleteTests.DeleteByKey.3.txt new file mode 100644 index 000000000..9e4001649 --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.4.txt b/MockData/DeleteTests.DeleteByKey.4.txt new file mode 100644 index 000000000..5bf15ebc2 --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.5.txt b/MockData/DeleteTests.DeleteByKey.5.txt new file mode 100644 index 000000000..d117992ea --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByKey.6.txt b/MockData/DeleteTests.DeleteByKey.6.txt new file mode 100644 index 000000000..27991bfe7 --- /dev/null +++ b/MockData/DeleteTests.DeleteByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.1.txt b/MockData/DeleteTests.DeleteByObjectAsKey.1.txt new file mode 100644 index 000000000..e7a42d896 --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.2.txt b/MockData/DeleteTests.DeleteByObjectAsKey.2.txt new file mode 100644 index 000000000..da06882bc --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products(1111)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1111)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1111)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1111)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1111)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1111<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products(1111)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.3.txt b/MockData/DeleteTests.DeleteByObjectAsKey.3.txt new file mode 100644 index 000000000..222ab4db6 --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products(1111)"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.4.txt b/MockData/DeleteTests.DeleteByObjectAsKey.4.txt new file mode 100644 index 000000000..b32425943 --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products(1111)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.5.txt b/MockData/DeleteTests.DeleteByObjectAsKey.5.txt new file mode 100644 index 000000000..1849d6ebe --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteByObjectAsKey.6.txt b/MockData/DeleteTests.DeleteByObjectAsKey.6.txt new file mode 100644 index 000000000..bbb777e28 --- /dev/null +++ b/MockData/DeleteTests.DeleteByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService266\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.1.txt b/MockData/DeleteTests.DeleteDerived.1.txt new file mode 100644 index 000000000..188800182 --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.2.txt b/MockData/DeleteTests.DeleteDerived.2.txt new file mode 100644 index 000000000..e1fc996b4 --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport(1108)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1108)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1108<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport(1108)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.3.txt b/MockData/DeleteTests.DeleteDerived.3.txt new file mode 100644 index 000000000..9663e5abe --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport(1108)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.4.txt b/MockData/DeleteTests.DeleteDerived.4.txt new file mode 100644 index 000000000..89530ebaf --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport(1108)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.5.txt b/MockData/DeleteTests.DeleteDerived.5.txt new file mode 100644 index 000000000..b587cc6d0 --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTests.DeleteDerived.6.txt b/MockData/DeleteTests.DeleteDerived.6.txt new file mode 100644 index 000000000..ebb6acff1 --- /dev/null +++ b/MockData/DeleteTests.DeleteDerived.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:39Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["600"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService263\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.1.txt b/MockData/DeleteTypedTests.DeleteByFilter.1.txt new file mode 100644 index 000000000..c48052341 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:42Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.2.txt b/MockData/DeleteTypedTests.DeleteByFilter.2.txt new file mode 100644 index 000000000..651226caa --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products(1153)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1153)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1153)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1153)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1153)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1153<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products(1153)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.3.txt b/MockData/DeleteTypedTests.DeleteByFilter.3.txt new file mode 100644 index 000000000..9005ead75 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.4.txt b/MockData/DeleteTypedTests.DeleteByFilter.4.txt new file mode 100644 index 000000000..fa0563b4b --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products(1153)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1153)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1153)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1153)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1153)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:42Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1153<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.5.txt b/MockData/DeleteTypedTests.DeleteByFilter.5.txt new file mode 100644 index 000000000..b2acedcb9 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products(1153)"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.6.txt b/MockData/DeleteTypedTests.DeleteByFilter.6.txt new file mode 100644 index 000000000..86b45332d --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products(1153)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.7.txt b/MockData/DeleteTypedTests.DeleteByFilter.7.txt new file mode 100644 index 000000000..9005ead75 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByFilter.8.txt b/MockData/DeleteTypedTests.DeleteByFilter.8.txt new file mode 100644 index 000000000..3cb0609bd --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:42Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService295\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.1.txt b/MockData/DeleteTypedTests.DeleteByKey.1.txt new file mode 100644 index 000000000..0ee8d36b3 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.2.txt b/MockData/DeleteTypedTests.DeleteByKey.2.txt new file mode 100644 index 000000000..3d916524c --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products(1155)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1155)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1155)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1155)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1155)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1155<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products(1155)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.3.txt b/MockData/DeleteTypedTests.DeleteByKey.3.txt new file mode 100644 index 000000000..9353cc5d7 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products(1155)"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.4.txt b/MockData/DeleteTypedTests.DeleteByKey.4.txt new file mode 100644 index 000000000..6a7525b06 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products(1155)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.5.txt b/MockData/DeleteTypedTests.DeleteByKey.5.txt new file mode 100644 index 000000000..08a4b2cb3 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByKey.6.txt b/MockData/DeleteTypedTests.DeleteByKey.6.txt new file mode 100644 index 000000000..26f775932 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService297\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.1.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.1.txt new file mode 100644 index 000000000..ed6e7ea85 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.2.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.2.txt new file mode 100644 index 000000000..ff2ebd9e0 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products(1154)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1154)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1154)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1154)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1154)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1154<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products(1154)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.3.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.3.txt new file mode 100644 index 000000000..5f9b0200b --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products(1154)"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.4.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.4.txt new file mode 100644 index 000000000..a37d1837e --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products(1154)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.5.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.5.txt new file mode 100644 index 000000000..279e4089f --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteByObjectAsKey.6.txt b/MockData/DeleteTypedTests.DeleteByObjectAsKey.6.txt new file mode 100644 index 000000000..0791959e2 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["546"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService296\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.1.txt b/MockData/DeleteTypedTests.DeleteDerived.1.txt new file mode 100644 index 000000000..868cbfce6 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <d:TransportID m:type=\"Edm.Int32\">0<\/d:TransportID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["802"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.2.txt b/MockData/DeleteTypedTests.DeleteDerived.2.txt new file mode 100644 index 000000000..925d5ee86 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport(1156)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1156)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1156<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport(1156)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.3.txt b/MockData/DeleteTypedTests.DeleteDerived.3.txt new file mode 100644 index 000000000..128cba2bc --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport(1156)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.4.txt b/MockData/DeleteTypedTests.DeleteDerived.4.txt new file mode 100644 index 000000000..7bc0af54d --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport(1156)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.5.txt b/MockData/DeleteTypedTests.DeleteDerived.5.txt new file mode 100644 index 000000000..71fea9e75 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/DeleteTypedTests.DeleteDerived.6.txt b/MockData/DeleteTypedTests.DeleteDerived.6.txt new file mode 100644 index 000000000..4934a9719 --- /dev/null +++ b/MockData/DeleteTypedTests.DeleteDerived.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["600"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService298\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.AllDerivedClassEntries.1.txt b/MockData/FindDynamicTests.AllDerivedClassEntries.1.txt new file mode 100644 index 000000000..0e9cdc8aa --- /dev/null +++ b/MockData/FindDynamicTests.AllDerivedClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService36\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.AllDerivedClassEntries.2.txt b/MockData/FindDynamicTests.AllDerivedClassEntries.2.txt new file mode 100644 index 000000000..09fbaa781 --- /dev/null +++ b/MockData/FindDynamicTests.AllDerivedClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService36\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService36\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService36\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1142"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService36\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.1.txt b/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..0b13182b1 --- /dev/null +++ b/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService20\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.2.txt b/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..8050e20e7 --- /dev/null +++ b/MockData/FindDynamicTests.AllDerivedClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService20\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService20\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService20\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1142"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService20\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntries.1.txt b/MockData/FindDynamicTests.BaseClassEntries.1.txt new file mode 100644 index 000000000..6a1d8be56 --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/Transport"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntries.2.txt b/MockData/FindDynamicTests.BaseClassEntries.2.txt new file mode 100644 index 000000000..bdf28a17a --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1678"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService47\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.1.txt b/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..1d52978e2 --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/Transport"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.2.txt b/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..6e4b88010 --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1678"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService46\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntryByKey.1.txt b/MockData/FindDynamicTests.BaseClassEntryByKey.1.txt new file mode 100644 index 000000000..1f21f8271 --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService19\/Transport(1)"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.BaseClassEntryByKey.2.txt b/MockData/FindDynamicTests.BaseClassEntryByKey.2.txt new file mode 100644 index 000000000..39917e725 --- /dev/null +++ b/MockData/FindDynamicTests.BaseClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService19\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService19\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["867"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService19\/Transport(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastInstanceToEntityType.1.txt b/MockData/FindDynamicTests.CastInstanceToEntityType.1.txt new file mode 100644 index 000000000..99f56eaea --- /dev/null +++ b/MockData/FindDynamicTests.CastInstanceToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastInstanceToEntityType.2.txt b/MockData/FindDynamicTests.CastInstanceToEntityType.2.txt new file mode 100644 index 000000000..e5d63e6d4 --- /dev/null +++ b/MockData/FindDynamicTests.CastInstanceToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(2)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(2)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(2)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(2)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">2<\/d:EmployeeID><d:FirstName>Andrew<\/d:FirstName><d:LastName>Fuller<\/d:LastName><d:Title>Vice President, Sales<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1942-02-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["14141"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService42\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastPropertyToEntityType.1.txt b/MockData/FindDynamicTests.CastPropertyToEntityType.1.txt new file mode 100644 index 000000000..d5d113002 --- /dev/null +++ b/MockData/FindDynamicTests.CastPropertyToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees?$filter=cast%28Superior%2C%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastPropertyToEntityType.2.txt b/MockData/FindDynamicTests.CastPropertyToEntityType.2.txt new file mode 100644 index 000000000..80fe113c6 --- /dev/null +++ b/MockData/FindDynamicTests.CastPropertyToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12633"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService23\/Employees?$filter=cast%28Superior%2C%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastToPrimitiveType.1.txt b/MockData/FindDynamicTests.CastToPrimitiveType.1.txt new file mode 100644 index 000000000..3760f8316 --- /dev/null +++ b/MockData/FindDynamicTests.CastToPrimitiveType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/Products?$filter=CategoryID%20eq%201"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CastToPrimitiveType.2.txt b/MockData/FindDynamicTests.CastToPrimitiveType.2.txt new file mode 100644 index 000000000..5e98d3a6c --- /dev/null +++ b/MockData/FindDynamicTests.CastToPrimitiveType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3469"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService31\/Products?$filter=CategoryID%20eq%201","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombineAll.1.txt b/MockData/FindDynamicTests.CombineAll.1.txt new file mode 100644 index 000000000..bb519942e --- /dev/null +++ b/MockData/FindDynamicTests.CombineAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombineAll.2.txt b/MockData/FindDynamicTests.CombineAll.2.txt new file mode 100644 index 000000000..d882948fb --- /dev/null +++ b/MockData/FindDynamicTests.CombineAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombineAllReverse.1.txt b/MockData/FindDynamicTests.CombineAllReverse.1.txt new file mode 100644 index 000000000..7e9a5c6fc --- /dev/null +++ b/MockData/FindDynamicTests.CombineAllReverse.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombineAllReverse.2.txt b/MockData/FindDynamicTests.CombineAllReverse.2.txt new file mode 100644 index 000000000..9f670ad9b --- /dev/null +++ b/MockData/FindDynamicTests.CombineAllReverse.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService30\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombinedConditions.1.txt b/MockData/FindDynamicTests.CombinedConditions.1.txt new file mode 100644 index 000000000..45368b0c8 --- /dev/null +++ b/MockData/FindDynamicTests.CombinedConditions.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A21.187979%2B02%3A00%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombinedConditions.2.txt b/MockData/FindDynamicTests.CombinedConditions.2.txt new file mode 100644 index 000000000..15732ead5 --- /dev/null +++ b/MockData/FindDynamicTests.CombinedConditions.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2084"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A21.187979%2B02%3A00%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.1.txt b/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.1.txt new file mode 100644 index 000000000..45368b0c8 --- /dev/null +++ b/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A21.187979%2B02%3A00%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.2.txt b/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.2.txt new file mode 100644 index 000000000..15732ead5 --- /dev/null +++ b/MockData/FindDynamicTests.CombinedConditionsWithMultipleFilters.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2084"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService39\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A21.187979%2B02%3A00%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.Count.1.txt b/MockData/FindDynamicTests.Count.1.txt new file mode 100644 index 000000000..85ccbc5e9 --- /dev/null +++ b/MockData/FindDynamicTests.Count.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService29\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.Count.2.txt b/MockData/FindDynamicTests.Count.2.txt new file mode 100644 index 000000000..d9bbde233 --- /dev/null +++ b/MockData/FindDynamicTests.Count.2.txt @@ -0,0 +1 @@ +{"Content":"1","ContentHeaders":[{"Key":"Content-Length","Value":["1"]},{"Key":"Content-Type","Value":["text\/plain; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService29\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntry.1.txt b/MockData/FindDynamicTests.DerivedClassEntry.1.txt new file mode 100644 index 000000000..fd1e16c60 --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService24\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntry.2.txt b/MockData/FindDynamicTests.DerivedClassEntry.2.txt new file mode 100644 index 000000000..6996d0fe6 --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService24\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService24\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService24\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1142"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService24\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.1.txt b/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.1.txt new file mode 100644 index 000000000..7cd62f352 --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.2.txt b/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.2.txt new file mode 100644 index 000000000..9d3a51784 --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntryBaseAndDerivedFields.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:18Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1139"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntryByKey.1.txt b/MockData/FindDynamicTests.DerivedClassEntryByKey.1.txt new file mode 100644 index 000000000..84bd692cc --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/Transport(1)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.DerivedClassEntryByKey.2.txt b/MockData/FindDynamicTests.DerivedClassEntryByKey.2.txt new file mode 100644 index 000000000..2b3305647 --- /dev/null +++ b/MockData/FindDynamicTests.DerivedClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["860"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/Transport(1)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandMany.1.txt b/MockData/FindDynamicTests.ExpandMany.1.txt new file mode 100644 index 000000000..216c71488 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandMany.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandMany.2.txt b/MockData/FindDynamicTests.ExpandMany.2.txt new file mode 100644 index 000000000..701a9727c --- /dev/null +++ b/MockData/FindDynamicTests.ExpandMany.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4568"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService40\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.1.txt b/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.1.txt new file mode 100644 index 000000000..d33ae5661 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products?$expand=Category\/Products\/Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.2.txt b/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.2.txt new file mode 100644 index 000000000..f57a25951 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandMultipleLevelsWithCollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["252078"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService43\/Products?$expand=Category\/Products\/Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandOne.1.txt b/MockData/FindDynamicTests.ExpandOne.1.txt new file mode 100644 index 000000000..84de0ee75 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products?$expand=Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandOne.2.txt b/MockData/FindDynamicTests.ExpandOne.2.txt new file mode 100644 index 000000000..f6f65c848 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51284"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService38\/Products?$expand=Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandSecondLevel.1.txt b/MockData/FindDynamicTests.ExpandSecondLevel.1.txt new file mode 100644 index 000000000..b125623e6 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandSecondLevel.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products?$expand=Category\/Products&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandSecondLevel.2.txt b/MockData/FindDynamicTests.ExpandSecondLevel.2.txt new file mode 100644 index 000000000..7e13b5b7c --- /dev/null +++ b/MockData/FindDynamicTests.ExpandSecondLevel.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["182397"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService37\/Products?$expand=Category\/Products&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandWithSelect.1.txt b/MockData/FindDynamicTests.ExpandWithSelect.1.txt new file mode 100644 index 000000000..a21791a20 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandWithSelect.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products?$expand=Category\/Products&$select=ProductName,Category\/CategoryName&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ExpandWithSelect.2.txt b/MockData/FindDynamicTests.ExpandWithSelect.2.txt new file mode 100644 index 000000000..b357207d8 --- /dev/null +++ b/MockData/FindDynamicTests.ExpandWithSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Grains\/Cereals<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["25242"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService25\/Products?$expand=Category\/Products&$select=ProductName,Category\/CategoryName&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.FilterAll.1.txt b/MockData/FindDynamicTests.FilterAll.1.txt new file mode 100644 index 000000000..908633125 --- /dev/null +++ b/MockData/FindDynamicTests.FilterAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders?$filter=Order_Details%2Fall%28x1%3Ax1%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.FilterAll.2.txt b/MockData/FindDynamicTests.FilterAll.2.txt new file mode 100644 index 000000000..8e9937669 --- /dev/null +++ b/MockData/FindDynamicTests.FilterAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10000)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10000)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10000)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10000)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10000)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10000)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10000<\/d:OrderID><d:CustomerID>FRANS<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:ShipName>Franchi S.p.A.<\/d:ShipName><d:ShipAddress>Via Monte Bianco 34<\/d:ShipAddress><d:ShipCity>Torino<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>10100<\/d:ShipPostalCode><d:ShipCountry>Italy<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-10-05T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-06-07T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-05-15T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">4.45<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11152"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService15\/Orders?$filter=Order_Details%2Fall%28x1%3Ax1%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.FilterAny.1.txt b/MockData/FindDynamicTests.FilterAny.1.txt new file mode 100644 index 000000000..f249a1ae1 --- /dev/null +++ b/MockData/FindDynamicTests.FilterAny.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders?$filter=Order_Details%2Fany%28x2%3Ax2%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.FilterAny.2.txt b/MockData/FindDynamicTests.FilterAny.2.txt new file mode 100644 index 000000000..0227839e9 --- /dev/null +++ b/MockData/FindDynamicTests.FilterAny.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9379"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService35\/Orders?$filter=Order_Details%2Fany%28x2%3Ax2%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.Get.1.txt b/MockData/FindDynamicTests.Get.1.txt new file mode 100644 index 000000000..cab6440b2 --- /dev/null +++ b/MockData/FindDynamicTests.Get.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/Categories(1)"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.Get.2.txt b/MockData/FindDynamicTests.Get.2.txt new file mode 100644 index 000000000..e97a7532c --- /dev/null +++ b/MockData/FindDynamicTests.Get.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1104"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.GetNonExisting.1.txt b/MockData/FindDynamicTests.GetNonExisting.1.txt new file mode 100644 index 000000000..9ef4cf6ee --- /dev/null +++ b/MockData/FindDynamicTests.GetNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService34\/Categories(-1)"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.GetNonExisting.2.txt b/MockData/FindDynamicTests.GetNonExisting.2.txt new file mode 100644 index 000000000..8d6e25a02 --- /dev/null +++ b/MockData/FindDynamicTests.GetNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Categories'.<\/m:message><\/m:error>","ContentHeaders":[{"Key":"Content-Length","Value":["228"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService34\/Categories(-1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":404} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ImplicitCastToType.1.txt b/MockData/FindDynamicTests.ImplicitCastToType.1.txt new file mode 100644 index 000000000..eb45ac377 --- /dev/null +++ b/MockData/FindDynamicTests.ImplicitCastToType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ImplicitCastToType.2.txt b/MockData/FindDynamicTests.ImplicitCastToType.2.txt new file mode 100644 index 000000000..8ce1094f8 --- /dev/null +++ b/MockData/FindDynamicTests.ImplicitCastToType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.1.txt b/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.1.txt new file mode 100644 index 000000000..8798100c1 --- /dev/null +++ b/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/Products?$filter=ProductName%20eq%20%27XYZ%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.2.txt b/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.2.txt new file mode 100644 index 000000000..eaf61f06e --- /dev/null +++ b/MockData/FindDynamicTests.ImplicitCastToTypeNullResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><author><name \/><\/author><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["544"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/Products?$filter=ProductName%20eq%20%27XYZ%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.IsOfAssociation.1.txt b/MockData/FindDynamicTests.IsOfAssociation.1.txt new file mode 100644 index 000000000..2f2ae93c0 --- /dev/null +++ b/MockData/FindDynamicTests.IsOfAssociation.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees?$filter=isof%28Superior%2C%27NorthwindModel.Employee%27%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.IsOfAssociation.2.txt b/MockData/FindDynamicTests.IsOfAssociation.2.txt new file mode 100644 index 000000000..096d3cec8 --- /dev/null +++ b/MockData/FindDynamicTests.IsOfAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12633"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService41\/Employees?$filter=isof%28Superior%2C%27NorthwindModel.Employee%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.IsOfDerivedClassEntry.1.txt b/MockData/FindDynamicTests.IsOfDerivedClassEntry.1.txt new file mode 100644 index 000000000..1301feb52 --- /dev/null +++ b/MockData/FindDynamicTests.IsOfDerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService16\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.IsOfDerivedClassEntry.2.txt b/MockData/FindDynamicTests.IsOfDerivedClassEntry.2.txt new file mode 100644 index 000000000..ccdce5fb7 --- /dev/null +++ b/MockData/FindDynamicTests.IsOfDerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService16\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService16\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService16\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1097"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService16\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.LengthOfStringEqual.1.txt b/MockData/FindDynamicTests.LengthOfStringEqual.1.txt new file mode 100644 index 000000000..1c2832dee --- /dev/null +++ b/MockData/FindDynamicTests.LengthOfStringEqual.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/Products?$filter=length%28ProductName%29%20eq%204"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.LengthOfStringEqual.2.txt b/MockData/FindDynamicTests.LengthOfStringEqual.2.txt new file mode 100644 index 000000000..fdb21f3f2 --- /dev/null +++ b/MockData/FindDynamicTests.LengthOfStringEqual.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3470"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService32\/Products?$filter=length%28ProductName%29%20eq%204","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToMultiple.1.txt b/MockData/FindDynamicTests.NavigateToMultiple.1.txt new file mode 100644 index 000000000..d2cd72370 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Categories(2)\/Products"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToMultiple.2.txt b/MockData/FindDynamicTests.NavigateToMultiple.2.txt new file mode 100644 index 000000000..eee05850d --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10963"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService48\/Categories(2)\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToRecursive.1.txt b/MockData/FindDynamicTests.NavigateToRecursive.1.txt new file mode 100644 index 000000000..ba4d6cb10 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToRecursive.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToRecursive.2.txt b/MockData/FindDynamicTests.NavigateToRecursive.2.txt new file mode 100644 index 000000000..a0cbc89eb --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToRecursive.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1801"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.1.txt b/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.1.txt new file mode 100644 index 000000000..e31d53f79 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.2.txt b/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.2.txt new file mode 100644 index 000000000..b6e4eb1a4 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToRecursiveSingleClause.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1799"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToSingle.1.txt b/MockData/FindDynamicTests.NavigateToSingle.1.txt new file mode 100644 index 000000000..d9264e6e9 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService33\/Products(2)\/Category"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.NavigateToSingle.2.txt b/MockData/FindDynamicTests.NavigateToSingle.2.txt new file mode 100644 index 000000000..1621002b7 --- /dev/null +++ b/MockData/FindDynamicTests.NavigateToSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService33\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService33\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1104"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService33\/Products(2)\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderByExpanded.1.txt b/MockData/FindDynamicTests.OrderByExpanded.1.txt new file mode 100644 index 000000000..7e380a937 --- /dev/null +++ b/MockData/FindDynamicTests.OrderByExpanded.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products?$expand=Category&$orderby=Category\/CategoryName"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderByExpanded.2.txt b/MockData/FindDynamicTests.OrderByExpanded.2.txt new file mode 100644 index 000000000..b09f2ba85 --- /dev/null +++ b/MockData/FindDynamicTests.OrderByExpanded.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51284"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService22\/Products?$expand=Category&$orderby=Category\/CategoryName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderByMultiple.1.txt b/MockData/FindDynamicTests.OrderByMultiple.1.txt new file mode 100644 index 000000000..c8202a09b --- /dev/null +++ b/MockData/FindDynamicTests.OrderByMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService44\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderByMultiple.2.txt b/MockData/FindDynamicTests.OrderByMultiple.2.txt new file mode 100644 index 000000000..c6edd8da0 --- /dev/null +++ b/MockData/FindDynamicTests.OrderByMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService44\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService44\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService44\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService44\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderBySingle.1.txt b/MockData/FindDynamicTests.OrderBySingle.1.txt new file mode 100644 index 000000000..99882223d --- /dev/null +++ b/MockData/FindDynamicTests.OrderBySingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductName"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.OrderBySingle.2.txt b/MockData/FindDynamicTests.OrderBySingle.2.txt new file mode 100644 index 000000000..f1078388d --- /dev/null +++ b/MockData/FindDynamicTests.OrderBySingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:18Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1990"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:18 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SelectMultiple.1.txt b/MockData/FindDynamicTests.SelectMultiple.1.txt new file mode 100644 index 000000000..0169c62b3 --- /dev/null +++ b/MockData/FindDynamicTests.SelectMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SelectMultiple.2.txt b/MockData/FindDynamicTests.SelectMultiple.2.txt new file mode 100644 index 000000000..122abf937 --- /dev/null +++ b/MockData/FindDynamicTests.SelectMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:18Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1013"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:17 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SelectSingle.1.txt b/MockData/FindDynamicTests.SelectSingle.1.txt new file mode 100644 index 000000000..09b19f629 --- /dev/null +++ b/MockData/FindDynamicTests.SelectSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService27\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductName"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SelectSingle.2.txt b/MockData/FindDynamicTests.SelectSingle.2.txt new file mode 100644 index 000000000..ccf91a17c --- /dev/null +++ b/MockData/FindDynamicTests.SelectSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService27\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService27\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService27\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["969"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService27\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SingleCondition.1.txt b/MockData/FindDynamicTests.SingleCondition.1.txt new file mode 100644 index 000000000..74f237ccc --- /dev/null +++ b/MockData/FindDynamicTests.SingleCondition.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SingleCondition.2.txt b/MockData/FindDynamicTests.SingleCondition.2.txt new file mode 100644 index 000000000..0da42411e --- /dev/null +++ b/MockData/FindDynamicTests.SingleCondition.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:18Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1990"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:17 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SingleConditionWithVariable.1.txt b/MockData/FindDynamicTests.SingleConditionWithVariable.1.txt new file mode 100644 index 000000000..cb2c8ffbd --- /dev/null +++ b/MockData/FindDynamicTests.SingleConditionWithVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SingleConditionWithVariable.2.txt b/MockData/FindDynamicTests.SingleConditionWithVariable.2.txt new file mode 100644 index 000000000..c58b6e845 --- /dev/null +++ b/MockData/FindDynamicTests.SingleConditionWithVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:17Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:17Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1990"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:17 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringContains.1.txt b/MockData/FindDynamicTests.StringContains.1.txt new file mode 100644 index 000000000..504ea88e4 --- /dev/null +++ b/MockData/FindDynamicTests.StringContains.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringContains.2.txt b/MockData/FindDynamicTests.StringContains.2.txt new file mode 100644 index 000000000..7fb5fd95c --- /dev/null +++ b/MockData/FindDynamicTests.StringContains.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:18Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:18Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1990"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:17 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringContainsWithLocalVariable.1.txt b/MockData/FindDynamicTests.StringContainsWithLocalVariable.1.txt new file mode 100644 index 000000000..4a7d76aeb --- /dev/null +++ b/MockData/FindDynamicTests.StringContainsWithLocalVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService45\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringContainsWithLocalVariable.2.txt b/MockData/FindDynamicTests.StringContainsWithLocalVariable.2.txt new file mode 100644 index 000000000..83b1ffe27 --- /dev/null +++ b/MockData/FindDynamicTests.StringContainsWithLocalVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService45\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService45\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:21Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService45\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:21Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService45\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringNotContains.1.txt b/MockData/FindDynamicTests.StringNotContains.1.txt new file mode 100644 index 000000000..59115cc86 --- /dev/null +++ b/MockData/FindDynamicTests.StringNotContains.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products?$filter=not%20substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringNotContains.2.txt b/MockData/FindDynamicTests.StringNotContains.2.txt new file mode 100644 index 000000000..120d847fe --- /dev/null +++ b/MockData/FindDynamicTests.StringNotContains.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["31741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService28\/Products?$filter=not%20substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringStartsWith.1.txt b/MockData/FindDynamicTests.StringStartsWith.1.txt new file mode 100644 index 000000000..14cecb618 --- /dev/null +++ b/MockData/FindDynamicTests.StringStartsWith.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products?$filter=startswith%28ProductName%2C%27Ch%27%29"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.StringStartsWith.2.txt b/MockData/FindDynamicTests.StringStartsWith.2.txt new file mode 100644 index 000000000..42f02936f --- /dev/null +++ b/MockData/FindDynamicTests.StringStartsWith.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:20Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:20Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["6441"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService26\/Products?$filter=startswith%28ProductName%2C%27Ch%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.1.txt b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.1.txt new file mode 100644 index 000000000..70d843cc2 --- /dev/null +++ b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.2.txt b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.2.txt new file mode 100644 index 000000000..556e11256 --- /dev/null +++ b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqual.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3469"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService17\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt new file mode 100644 index 000000000..78cf5303e --- /dev/null +++ b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt new file mode 100644 index 000000000..b162962e2 --- /dev/null +++ b/MockData/FindDynamicTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3469"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService18\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindDynamicTests.TopOne.1.txt b/MockData/FindDynamicTests.TopOne.1.txt new file mode 100644 index 000000000..e4509e918 --- /dev/null +++ b/MockData/FindDynamicTests.TopOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService21\/Products?$filter=ProductName%20eq%20%27Chai%27&$top=1"} \ No newline at end of file diff --git a/MockData/FindDynamicTests.TopOne.2.txt b/MockData/FindDynamicTests.TopOne.2.txt new file mode 100644 index 000000000..7a470d280 --- /dev/null +++ b/MockData/FindDynamicTests.TopOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService21\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService21\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:19Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService21\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:19Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService21\/Products?$filter=ProductName%20eq%20%27Chai%27&$top=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:19 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.AllDerivedClassEntries.1.txt b/MockData/FindTests.AllDerivedClassEntries.1.txt new file mode 100644 index 000000000..f266df59e --- /dev/null +++ b/MockData/FindTests.AllDerivedClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService192\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTests.AllDerivedClassEntries.2.txt b/MockData/FindTests.AllDerivedClassEntries.2.txt new file mode 100644 index 000000000..2ceee200e --- /dev/null +++ b/MockData/FindTests.AllDerivedClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService192\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService192\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService192\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService192\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.1.txt b/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..494a73511 --- /dev/null +++ b/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService200\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.2.txt b/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..d955c5ae4 --- /dev/null +++ b/MockData/FindTests.AllDerivedClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService200\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService200\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService200\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService200\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntries.1.txt b/MockData/FindTests.BaseClassEntries.1.txt new file mode 100644 index 000000000..072d9c18e --- /dev/null +++ b/MockData/FindTests.BaseClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/Transport"} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntries.2.txt b/MockData/FindTests.BaseClassEntries.2.txt new file mode 100644 index 000000000..baf599c8f --- /dev/null +++ b/MockData/FindTests.BaseClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1682"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService187\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntriesWithAnnotations.1.txt b/MockData/FindTests.BaseClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..c022167a9 --- /dev/null +++ b/MockData/FindTests.BaseClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/Transport"} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntriesWithAnnotations.2.txt b/MockData/FindTests.BaseClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..44b61b244 --- /dev/null +++ b/MockData/FindTests.BaseClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1682"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService216\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntryByKey.1.txt b/MockData/FindTests.BaseClassEntryByKey.1.txt new file mode 100644 index 000000000..744cbbc88 --- /dev/null +++ b/MockData/FindTests.BaseClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService213\/Transport(1)"} \ No newline at end of file diff --git a/MockData/FindTests.BaseClassEntryByKey.2.txt b/MockData/FindTests.BaseClassEntryByKey.2.txt new file mode 100644 index 000000000..56181791b --- /dev/null +++ b/MockData/FindTests.BaseClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService213\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService213\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService213\/Transport(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.CastInstanceToEntityType.1.txt b/MockData/FindTests.CastInstanceToEntityType.1.txt new file mode 100644 index 000000000..2d080e4f4 --- /dev/null +++ b/MockData/FindTests.CastInstanceToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindTests.CastInstanceToEntityType.2.txt b/MockData/FindTests.CastInstanceToEntityType.2.txt new file mode 100644 index 000000000..4a4b12fd9 --- /dev/null +++ b/MockData/FindTests.CastInstanceToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(2)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(2)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(2)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(2)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">2<\/d:EmployeeID><d:FirstName>Andrew<\/d:FirstName><d:LastName>Fuller<\/d:LastName><d:Title>Vice President, Sales<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1942-02-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["14152"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService177\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.CastPropertyToEntityType.1.txt b/MockData/FindTests.CastPropertyToEntityType.1.txt new file mode 100644 index 000000000..fb47ae0f4 --- /dev/null +++ b/MockData/FindTests.CastPropertyToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees?$filter=cast%28Superior%2C%20%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindTests.CastPropertyToEntityType.2.txt b/MockData/FindTests.CastPropertyToEntityType.2.txt new file mode 100644 index 000000000..9105706b7 --- /dev/null +++ b/MockData/FindTests.CastPropertyToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12643"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService209\/Employees?$filter=cast%28Superior%2C%20%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.CastToPrimitiveType.1.txt b/MockData/FindTests.CastToPrimitiveType.1.txt new file mode 100644 index 000000000..1bdad10b8 --- /dev/null +++ b/MockData/FindTests.CastToPrimitiveType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService210\/Products?$filter=ProductID%20eq%20cast%281L%2C%20%27Edm.Int32%27%29"} \ No newline at end of file diff --git a/MockData/FindTests.CastToPrimitiveType.2.txt b/MockData/FindTests.CastToPrimitiveType.2.txt new file mode 100644 index 000000000..99ec57023 --- /dev/null +++ b/MockData/FindTests.CastToPrimitiveType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService210\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService210\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService210\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService210\/Products?$filter=ProductID%20eq%20cast%281L%2C%20%27Edm.Int32%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.CombineAll.1.txt b/MockData/FindTests.CombineAll.1.txt new file mode 100644 index 000000000..3b2bf7b63 --- /dev/null +++ b/MockData/FindTests.CombineAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.CombineAll.2.txt b/MockData/FindTests.CombineAll.2.txt new file mode 100644 index 000000000..653f2a150 --- /dev/null +++ b/MockData/FindTests.CombineAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1873"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService174\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.CombineAllReverse.1.txt b/MockData/FindTests.CombineAllReverse.1.txt new file mode 100644 index 000000000..03142cc51 --- /dev/null +++ b/MockData/FindTests.CombineAllReverse.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.CombineAllReverse.2.txt b/MockData/FindTests.CombineAllReverse.2.txt new file mode 100644 index 000000000..58e3a5a30 --- /dev/null +++ b/MockData/FindTests.CombineAllReverse.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1873"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService199\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.Count.1.txt b/MockData/FindTests.Count.1.txt new file mode 100644 index 000000000..712dd96b7 --- /dev/null +++ b/MockData/FindTests.Count.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService175\/Products\/$count"} \ No newline at end of file diff --git a/MockData/FindTests.Count.2.txt b/MockData/FindTests.Count.2.txt new file mode 100644 index 000000000..2f8b4951a --- /dev/null +++ b/MockData/FindTests.Count.2.txt @@ -0,0 +1 @@ +{"Content":"22","ContentHeaders":[{"Key":"Content-Length","Value":["2"]},{"Key":"Content-Type","Value":["text\/plain; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService175\/Products\/$count","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntry.1.txt b/MockData/FindTests.DerivedClassEntry.1.txt new file mode 100644 index 000000000..980cc628f --- /dev/null +++ b/MockData/FindTests.DerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService207\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntry.2.txt b/MockData/FindTests.DerivedClassEntry.2.txt new file mode 100644 index 000000000..01543e98b --- /dev/null +++ b/MockData/FindTests.DerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService207\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService207\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService207\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService207\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.1.txt b/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.1.txt new file mode 100644 index 000000000..49c040f21 --- /dev/null +++ b/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService179\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.2.txt b/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.2.txt new file mode 100644 index 000000000..f441cc5c3 --- /dev/null +++ b/MockData/FindTests.DerivedClassEntryBaseAndDerivedFields.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService179\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService179\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService179\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService179\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntryByKey.1.txt b/MockData/FindTests.DerivedClassEntryByKey.1.txt new file mode 100644 index 000000000..b2c420f82 --- /dev/null +++ b/MockData/FindTests.DerivedClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService181\/Transport(1)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTests.DerivedClassEntryByKey.2.txt b/MockData/FindTests.DerivedClassEntryByKey.2.txt new file mode 100644 index 000000000..822c1a45e --- /dev/null +++ b/MockData/FindTests.DerivedClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService181\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService181\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["864"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService181\/Transport(1)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMany.1.txt b/MockData/FindTests.ExpandMany.1.txt new file mode 100644 index 000000000..6aa24a66d --- /dev/null +++ b/MockData/FindTests.ExpandMany.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMany.2.txt b/MockData/FindTests.ExpandMany.2.txt new file mode 100644 index 000000000..15094e0f2 --- /dev/null +++ b/MockData/FindTests.ExpandMany.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4575"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService206\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMultipleLevelsWithCollection.1.txt b/MockData/FindTests.ExpandMultipleLevelsWithCollection.1.txt new file mode 100644 index 000000000..27c95c28f --- /dev/null +++ b/MockData/FindTests.ExpandMultipleLevelsWithCollection.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products?$expand=Category\/Products\/Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMultipleLevelsWithCollection.2.txt b/MockData/FindTests.ExpandMultipleLevelsWithCollection.2.txt new file mode 100644 index 000000000..ada774d7e --- /dev/null +++ b/MockData/FindTests.ExpandMultipleLevelsWithCollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["252317"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService196\/Products?$expand=Category\/Products\/Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.1.txt b/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.1.txt new file mode 100644 index 000000000..c77e44f58 --- /dev/null +++ b/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products?$expand=Category\/Products\/Category&$select=Category\/Products\/Category\/CategoryName&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.2.txt b/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.2.txt new file mode 100644 index 000000000..c841288fc --- /dev/null +++ b/MockData/FindTests.ExpandMultipleLevelsWithCollectionAndSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Grains\/Cereals<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["118988"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService202\/Products?$expand=Category\/Products\/Category&$select=Category\/Products\/Category\/CategoryName&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandOne.1.txt b/MockData/FindTests.ExpandOne.1.txt new file mode 100644 index 000000000..802aa0fd8 --- /dev/null +++ b/MockData/FindTests.ExpandOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products?$expand=Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandOne.2.txt b/MockData/FindTests.ExpandOne.2.txt new file mode 100644 index 000000000..e3614ee6b --- /dev/null +++ b/MockData/FindTests.ExpandOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51331"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService184\/Products?$expand=Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandSecondLevel.1.txt b/MockData/FindTests.ExpandSecondLevel.1.txt new file mode 100644 index 000000000..e0470149c --- /dev/null +++ b/MockData/FindTests.ExpandSecondLevel.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products?$expand=Category\/Products&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandSecondLevel.2.txt b/MockData/FindTests.ExpandSecondLevel.2.txt new file mode 100644 index 000000000..892dd6114 --- /dev/null +++ b/MockData/FindTests.ExpandSecondLevel.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["182552"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService189\/Products?$expand=Category\/Products&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.ExpandWithSelect.1.txt b/MockData/FindTests.ExpandWithSelect.1.txt new file mode 100644 index 000000000..43c470255 --- /dev/null +++ b/MockData/FindTests.ExpandWithSelect.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products?$expand=Category\/Products&$select=ProductName,Category\/CategoryName&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTests.ExpandWithSelect.2.txt b/MockData/FindTests.ExpandWithSelect.2.txt new file mode 100644 index 000000000..48075b376 --- /dev/null +++ b/MockData/FindTests.ExpandWithSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Grains\/Cereals<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["25288"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService178\/Products?$expand=Category\/Products&$select=ProductName,Category\/CategoryName&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.Filter.1.txt b/MockData/FindTests.Filter.1.txt new file mode 100644 index 000000000..274893609 --- /dev/null +++ b/MockData/FindTests.Filter.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTests.Filter.2.txt b/MockData/FindTests.Filter.2.txt new file mode 100644 index 000000000..2a55b83fd --- /dev/null +++ b/MockData/FindTests.Filter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.FilterAll.1.txt b/MockData/FindTests.FilterAll.1.txt new file mode 100644 index 000000000..3d45798d6 --- /dev/null +++ b/MockData/FindTests.FilterAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders?$filter=Order_Details%2Fall%28d%3Ad%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindTests.FilterAll.2.txt b/MockData/FindTests.FilterAll.2.txt new file mode 100644 index 000000000..0f303a4ca --- /dev/null +++ b/MockData/FindTests.FilterAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10000)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10000)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10000)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10000)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10000)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10000)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10000<\/d:OrderID><d:CustomerID>FRANS<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:ShipName>Franchi S.p.A.<\/d:ShipName><d:ShipAddress>Via Monte Bianco 34<\/d:ShipAddress><d:ShipCity>Torino<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>10100<\/d:ShipPostalCode><d:ShipCountry>Italy<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-10-05T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-06-07T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-05-15T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">4.45<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11160"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService203\/Orders?$filter=Order_Details%2Fall%28d%3Ad%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.FilterAny.1.txt b/MockData/FindTests.FilterAny.1.txt new file mode 100644 index 000000000..49e745932 --- /dev/null +++ b/MockData/FindTests.FilterAny.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders?$filter=Order_Details%2Fany%28d%3Ad%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindTests.FilterAny.2.txt b/MockData/FindTests.FilterAny.2.txt new file mode 100644 index 000000000..21c819833 --- /dev/null +++ b/MockData/FindTests.FilterAny.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9386"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService185\/Orders?$filter=Order_Details%2Fany%28d%3Ad%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.FilterCount.1.txt b/MockData/FindTests.FilterCount.1.txt new file mode 100644 index 000000000..c6cc082b8 --- /dev/null +++ b/MockData/FindTests.FilterCount.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService188\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTests.FilterCount.2.txt b/MockData/FindTests.FilterCount.2.txt new file mode 100644 index 000000000..1be22ab15 --- /dev/null +++ b/MockData/FindTests.FilterCount.2.txt @@ -0,0 +1 @@ +{"Content":"1","ContentHeaders":[{"Key":"Content-Length","Value":["1"]},{"Key":"Content-Type","Value":["text\/plain; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService188\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.FilterStringExpression.1.txt b/MockData/FindTests.FilterStringExpression.1.txt new file mode 100644 index 000000000..3a698ccf6 --- /dev/null +++ b/MockData/FindTests.FilterStringExpression.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService205\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindTests.FilterStringExpression.2.txt b/MockData/FindTests.FilterStringExpression.2.txt new file mode 100644 index 000000000..71889dd37 --- /dev/null +++ b/MockData/FindTests.FilterStringExpression.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService205\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService205\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService205\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService205\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.Get.1.txt b/MockData/FindTests.Get.1.txt new file mode 100644 index 000000000..09fe40df6 --- /dev/null +++ b/MockData/FindTests.Get.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)"} \ No newline at end of file diff --git a/MockData/FindTests.Get.2.txt b/MockData/FindTests.Get.2.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/FindTests.Get.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.GetNonExisting.1.txt b/MockData/FindTests.GetNonExisting.1.txt new file mode 100644 index 000000000..b0e0d4121 --- /dev/null +++ b/MockData/FindTests.GetNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService197\/Categories(-1)"} \ No newline at end of file diff --git a/MockData/FindTests.GetNonExisting.2.txt b/MockData/FindTests.GetNonExisting.2.txt new file mode 100644 index 000000000..b09d697ae --- /dev/null +++ b/MockData/FindTests.GetNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Categories'.<\/m:message><\/m:error>","ContentHeaders":[{"Key":"Content-Length","Value":["228"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService197\/Categories(-1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":404} \ No newline at end of file diff --git a/MockData/FindTests.IsOfAssociation.1.txt b/MockData/FindTests.IsOfAssociation.1.txt new file mode 100644 index 000000000..813647213 --- /dev/null +++ b/MockData/FindTests.IsOfAssociation.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees?$filter=isof%28Superior%2C%20%27NorthwindModel.Employee%27%29"} \ No newline at end of file diff --git a/MockData/FindTests.IsOfAssociation.2.txt b/MockData/FindTests.IsOfAssociation.2.txt new file mode 100644 index 000000000..0a19f278e --- /dev/null +++ b/MockData/FindTests.IsOfAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12643"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService186\/Employees?$filter=isof%28Superior%2C%20%27NorthwindModel.Employee%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.IsOfDerivedClassEntry.1.txt b/MockData/FindTests.IsOfDerivedClassEntry.1.txt new file mode 100644 index 000000000..16b23cb2a --- /dev/null +++ b/MockData/FindTests.IsOfDerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService195\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29"} \ No newline at end of file diff --git a/MockData/FindTests.IsOfDerivedClassEntry.2.txt b/MockData/FindTests.IsOfDerivedClassEntry.2.txt new file mode 100644 index 000000000..5e10e4c72 --- /dev/null +++ b/MockData/FindTests.IsOfDerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService195\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService195\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService195\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1100"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService195\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToMultiple.1.txt b/MockData/FindTests.NavigateToMultiple.1.txt new file mode 100644 index 000000000..e7bb42304 --- /dev/null +++ b/MockData/FindTests.NavigateToMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Categories(2)\/Products"} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToMultiple.2.txt b/MockData/FindTests.NavigateToMultiple.2.txt new file mode 100644 index 000000000..cf15b540c --- /dev/null +++ b/MockData/FindTests.NavigateToMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10972"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService201\/Categories(2)\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToRecursive.1.txt b/MockData/FindTests.NavigateToRecursive.1.txt new file mode 100644 index 000000000..7f2647c21 --- /dev/null +++ b/MockData/FindTests.NavigateToRecursive.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService211\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToRecursive.2.txt b/MockData/FindTests.NavigateToRecursive.2.txt new file mode 100644 index 000000000..a3e1e12c0 --- /dev/null +++ b/MockData/FindTests.NavigateToRecursive.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService211\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService211\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1803"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService211\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToRecursiveSingleClause.1.txt b/MockData/FindTests.NavigateToRecursiveSingleClause.1.txt new file mode 100644 index 000000000..9b70cd7dc --- /dev/null +++ b/MockData/FindTests.NavigateToRecursiveSingleClause.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService208\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToRecursiveSingleClause.2.txt b/MockData/FindTests.NavigateToRecursiveSingleClause.2.txt new file mode 100644 index 000000000..388df2212 --- /dev/null +++ b/MockData/FindTests.NavigateToRecursiveSingleClause.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService208\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService208\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1803"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService208\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToSingle.1.txt b/MockData/FindTests.NavigateToSingle.1.txt new file mode 100644 index 000000000..ddb9d9ea8 --- /dev/null +++ b/MockData/FindTests.NavigateToSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService215\/Products(2)\/Category"} \ No newline at end of file diff --git a/MockData/FindTests.NavigateToSingle.2.txt b/MockData/FindTests.NavigateToSingle.2.txt new file mode 100644 index 000000000..50507f848 --- /dev/null +++ b/MockData/FindTests.NavigateToSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService215\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService215\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService215\/Products(2)\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.OrderBy.1.txt b/MockData/FindTests.OrderBy.1.txt new file mode 100644 index 000000000..fa9f452ef --- /dev/null +++ b/MockData/FindTests.OrderBy.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products?$orderby=ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.OrderBy.2.txt b/MockData/FindTests.OrderBy.2.txt new file mode 100644 index 000000000..4f3ee3e53 --- /dev/null +++ b/MockData/FindTests.OrderBy.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["33240"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService194\/Products?$orderby=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.OrderByDescending.1.txt b/MockData/FindTests.OrderByDescending.1.txt new file mode 100644 index 000000000..f02b96239 --- /dev/null +++ b/MockData/FindTests.OrderByDescending.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products?$orderby=ProductName%20desc"} \ No newline at end of file diff --git a/MockData/FindTests.OrderByDescending.2.txt b/MockData/FindTests.OrderByDescending.2.txt new file mode 100644 index 000000000..938635125 --- /dev/null +++ b/MockData/FindTests.OrderByDescending.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["33240"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService217\/Products?$orderby=ProductName%20desc","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.OrderByExpanded.1.txt b/MockData/FindTests.OrderByExpanded.1.txt new file mode 100644 index 000000000..a7cf562bf --- /dev/null +++ b/MockData/FindTests.OrderByExpanded.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products?$expand=Category&$orderby=Category\/CategoryName"} \ No newline at end of file diff --git a/MockData/FindTests.OrderByExpanded.2.txt b/MockData/FindTests.OrderByExpanded.2.txt new file mode 100644 index 000000000..d984dfb8c --- /dev/null +++ b/MockData/FindTests.OrderByExpanded.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51331"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService180\/Products?$expand=Category&$orderby=Category\/CategoryName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SelectMultiple.1.txt b/MockData/FindTests.SelectMultiple.1.txt new file mode 100644 index 000000000..05e57999b --- /dev/null +++ b/MockData/FindTests.SelectMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products?$select=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.SelectMultiple.2.txt b/MockData/FindTests.SelectMultiple.2.txt new file mode 100644 index 000000000..07423434d --- /dev/null +++ b/MockData/FindTests.SelectMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11797"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService182\/Products?$select=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SelectMultipleSingleString.1.txt b/MockData/FindTests.SelectMultipleSingleString.1.txt new file mode 100644 index 000000000..99505aac8 --- /dev/null +++ b/MockData/FindTests.SelectMultipleSingleString.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products?$select=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.SelectMultipleSingleString.2.txt b/MockData/FindTests.SelectMultipleSingleString.2.txt new file mode 100644 index 000000000..54c622d54 --- /dev/null +++ b/MockData/FindTests.SelectMultipleSingleString.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11797"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService193\/Products?$select=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SelectSingle.1.txt b/MockData/FindTests.SelectSingle.1.txt new file mode 100644 index 000000000..a10d39e54 --- /dev/null +++ b/MockData/FindTests.SelectSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products?$select=ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.SelectSingle.2.txt b/MockData/FindTests.SelectSingle.2.txt new file mode 100644 index 000000000..66253091b --- /dev/null +++ b/MockData/FindTests.SelectSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10750"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService212\/Products?$select=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SelectSingleHomogenize.1.txt b/MockData/FindTests.SelectSingleHomogenize.1.txt new file mode 100644 index 000000000..0a4afafa9 --- /dev/null +++ b/MockData/FindTests.SelectSingleHomogenize.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products?$select=ProductName"} \ No newline at end of file diff --git a/MockData/FindTests.SelectSingleHomogenize.2.txt b/MockData/FindTests.SelectSingleHomogenize.2.txt new file mode 100644 index 000000000..92f274f5a --- /dev/null +++ b/MockData/FindTests.SelectSingleHomogenize.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10750"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService198\/Products?$select=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SkipOne.1.txt b/MockData/FindTests.SkipOne.1.txt new file mode 100644 index 000000000..490f53711 --- /dev/null +++ b/MockData/FindTests.SkipOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products?$skip=1"} \ No newline at end of file diff --git a/MockData/FindTests.SkipOne.2.txt b/MockData/FindTests.SkipOne.2.txt new file mode 100644 index 000000000..74762710d --- /dev/null +++ b/MockData/FindTests.SkipOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["31764"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService190\/Products?$skip=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.SkipOneTopOne.1.txt b/MockData/FindTests.SkipOneTopOne.1.txt new file mode 100644 index 000000000..d05d604a8 --- /dev/null +++ b/MockData/FindTests.SkipOneTopOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService191\/Products?$skip=1&$top=1"} \ No newline at end of file diff --git a/MockData/FindTests.SkipOneTopOne.2.txt b/MockData/FindTests.SkipOneTopOne.2.txt new file mode 100644 index 000000000..bc6b3683d --- /dev/null +++ b/MockData/FindTests.SkipOneTopOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService191\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService191\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService191\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1998"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService191\/Products?$skip=1&$top=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.TopOne.1.txt b/MockData/FindTests.TopOne.1.txt new file mode 100644 index 000000000..2f0c7ba25 --- /dev/null +++ b/MockData/FindTests.TopOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService183\/Products?$top=1"} \ No newline at end of file diff --git a/MockData/FindTests.TopOne.2.txt b/MockData/FindTests.TopOne.2.txt new file mode 100644 index 000000000..7fbbe8f3b --- /dev/null +++ b/MockData/FindTests.TopOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService183\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService183\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService183\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService183\/Products?$top=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTests.TotalCount.1.txt b/MockData/FindTests.TotalCount.1.txt new file mode 100644 index 000000000..3fe50a1fa --- /dev/null +++ b/MockData/FindTests.TotalCount.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products?$inlinecount=allpages"} \ No newline at end of file diff --git a/MockData/FindTests.TotalCount.2.txt b/MockData/FindTests.TotalCount.2.txt new file mode 100644 index 000000000..0b71e504d --- /dev/null +++ b/MockData/FindTests.TotalCount.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:count>22<\/m:count><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:34Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:34Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["33261"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService204\/Products?$inlinecount=allpages","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:33 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.AllDerivedClassEntries.1.txt b/MockData/FindTypedTests.AllDerivedClassEntries.1.txt new file mode 100644 index 000000000..1d654739f --- /dev/null +++ b/MockData/FindTypedTests.AllDerivedClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService88\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTypedTests.AllDerivedClassEntries.2.txt b/MockData/FindTypedTests.AllDerivedClassEntries.2.txt new file mode 100644 index 000000000..f9b19ae2d --- /dev/null +++ b/MockData/FindTypedTests.AllDerivedClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService88\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService88\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService88\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1142"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService88\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.1.txt b/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..20a8ff863 --- /dev/null +++ b/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService124\/Transport\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.2.txt b/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..027555fa2 --- /dev/null +++ b/MockData/FindTypedTests.AllDerivedClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService124\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService124\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService124\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService124\/Transport\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntries.1.txt b/MockData/FindTypedTests.BaseClassEntries.1.txt new file mode 100644 index 000000000..a9945e81b --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/Transport"} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntries.2.txt b/MockData/FindTypedTests.BaseClassEntries.2.txt new file mode 100644 index 000000000..2bc70f6a2 --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1682"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService106\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.1.txt b/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.1.txt new file mode 100644 index 000000000..9cb7d051a --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/Transport"} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.2.txt b/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.2.txt new file mode 100644 index 000000000..17091c0e4 --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntriesWithAnnotations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/Transport(2)<\/id><category term=\"NorthwindModel.Truck\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(2)\/NorthwindModel.Truck\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">2<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">2<\/d:TransportType><d:TruckNumber>123456<\/d:TruckNumber><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1682"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService122\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntryByKey.1.txt b/MockData/FindTypedTests.BaseClassEntryByKey.1.txt new file mode 100644 index 000000000..f2ee07dac --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService77\/Transport(1)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.BaseClassEntryByKey.2.txt b/MockData/FindTypedTests.BaseClassEntryByKey.2.txt new file mode 100644 index 000000000..1600b558b --- /dev/null +++ b/MockData/FindTypedTests.BaseClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService77\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService77\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["867"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService77\/Transport(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastInstanceToEntityType.1.txt b/MockData/FindTypedTests.CastInstanceToEntityType.1.txt new file mode 100644 index 000000000..1dac9c186 --- /dev/null +++ b/MockData/FindTypedTests.CastInstanceToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastInstanceToEntityType.2.txt b/MockData/FindTypedTests.CastInstanceToEntityType.2.txt new file mode 100644 index 000000000..0a8a8b43d --- /dev/null +++ b/MockData/FindTypedTests.CastInstanceToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(2)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(2)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(2)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(2)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">2<\/d:EmployeeID><d:FirstName>Andrew<\/d:FirstName><d:LastName>Fuller<\/d:LastName><d:Title>Vice President, Sales<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1942-02-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["14152"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService118\/Employees?$filter=cast%28%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastPropertyToEntityType.1.txt b/MockData/FindTypedTests.CastPropertyToEntityType.1.txt new file mode 100644 index 000000000..889ea8d19 --- /dev/null +++ b/MockData/FindTypedTests.CastPropertyToEntityType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees?$filter=cast%28Superior%2C%27NorthwindModel.Employee%27%29%20ne%20null"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastPropertyToEntityType.2.txt b/MockData/FindTypedTests.CastPropertyToEntityType.2.txt new file mode 100644 index 000000000..90abd807f --- /dev/null +++ b/MockData/FindTypedTests.CastPropertyToEntityType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12633"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService91\/Employees?$filter=cast%28Superior%2C%27NorthwindModel.Employee%27%29%20ne%20null","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastToPrimitiveType.1.txt b/MockData/FindTypedTests.CastToPrimitiveType.1.txt new file mode 100644 index 000000000..f3cba4429 --- /dev/null +++ b/MockData/FindTypedTests.CastToPrimitiveType.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/Products?$filter=CategoryID%20eq%201"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CastToPrimitiveType.2.txt b/MockData/FindTypedTests.CastToPrimitiveType.2.txt new file mode 100644 index 000000000..6ca4eaa9f --- /dev/null +++ b/MockData/FindTypedTests.CastToPrimitiveType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3473"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService133\/Products?$filter=CategoryID%20eq%201","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombineAll.1.txt b/MockData/FindTypedTests.CombineAll.1.txt new file mode 100644 index 000000000..e57915642 --- /dev/null +++ b/MockData/FindTypedTests.CombineAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombineAll.2.txt b/MockData/FindTypedTests.CombineAll.2.txt new file mode 100644 index 000000000..c8844eae0 --- /dev/null +++ b/MockData/FindTypedTests.CombineAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1873"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService126\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombineAllReverse.1.txt b/MockData/FindTypedTests.CombineAllReverse.1.txt new file mode 100644 index 000000000..bf1f6b4d4 --- /dev/null +++ b/MockData/FindTypedTests.CombineAllReverse.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombineAllReverse.2.txt b/MockData/FindTypedTests.CombineAllReverse.2.txt new file mode 100644 index 000000000..947984a71 --- /dev/null +++ b/MockData/FindTypedTests.CombineAllReverse.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\" \/><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1869"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService97\/Products?$skip=2&$top=1&$expand=Category&$select=Category&$orderby=ProductName,UnitPrice%20desc","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombinedConditions.1.txt b/MockData/FindTypedTests.CombinedConditions.1.txt new file mode 100644 index 000000000..adbc8d6a8 --- /dev/null +++ b/MockData/FindTypedTests.CombinedConditions.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A28.8647376%2B02%3A00%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombinedConditions.2.txt b/MockData/FindTypedTests.CombinedConditions.2.txt new file mode 100644 index 000000000..2820e3170 --- /dev/null +++ b/MockData/FindTypedTests.CombinedConditions.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2087"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A28.8647376%2B02%3A00%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.1.txt b/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.1.txt new file mode 100644 index 000000000..adbc8d6a8 --- /dev/null +++ b/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A28.8647376%2B02%3A00%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.2.txt b/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.2.txt new file mode 100644 index 000000000..2820e3170 --- /dev/null +++ b/MockData/FindTypedTests.CombinedConditionsWithMultipleFilters.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["2087"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService129\/Employees?$filter=FirstName%20eq%20%27Nancy%27%20and%20HireDate%20lt%20datetime%272018-05-20T20%3A27%3A28.8647376%2B02%3A00%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.Count.1.txt b/MockData/FindTypedTests.Count.1.txt new file mode 100644 index 000000000..52cf3e207 --- /dev/null +++ b/MockData/FindTypedTests.Count.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService81\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.Count.2.txt b/MockData/FindTypedTests.Count.2.txt new file mode 100644 index 000000000..c8a39775f --- /dev/null +++ b/MockData/FindTypedTests.Count.2.txt @@ -0,0 +1 @@ +{"Content":"1","ContentHeaders":[{"Key":"Content-Length","Value":["1"]},{"Key":"Content-Type","Value":["text\/plain; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService81\/Products\/$count?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntry.1.txt b/MockData/FindTypedTests.DerivedClassEntry.1.txt new file mode 100644 index 000000000..9dbf7aa0f --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService101\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntry.2.txt b/MockData/FindTypedTests.DerivedClassEntry.2.txt new file mode 100644 index 000000000..4631c42d3 --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService101\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService101\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService101\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService101\/Transport\/NorthwindModel.Ship?$filter=ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.1.txt b/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.1.txt new file mode 100644 index 000000000..140b1f14e --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService115\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.2.txt b/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.2.txt new file mode 100644 index 000000000..a733a156e --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntryBaseAndDerivedFields.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService115\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService115\/Transport\/NorthwindModel.Ship<\/id><title type=\"text\">NorthwindModel.Ship<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"NorthwindModel.Ship\" href=\"NorthwindModel.Ship\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService115\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1145"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService115\/Transport\/NorthwindModel.Ship?$filter=TransportID%20eq%201%20and%20ShipName%20eq%20%27Titanic%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntryByKey.1.txt b/MockData/FindTypedTests.DerivedClassEntryByKey.1.txt new file mode 100644 index 000000000..26687fac3 --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntryByKey.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService102\/Transport(1)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/FindTypedTests.DerivedClassEntryByKey.2.txt b/MockData/FindTypedTests.DerivedClassEntryByKey.2.txt new file mode 100644 index 000000000..c83629b1a --- /dev/null +++ b/MockData/FindTypedTests.DerivedClassEntryByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService102\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService102\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["864"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService102\/Transport(1)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsArray.1.txt b/MockData/FindTypedTests.ExpandManyAsArray.1.txt new file mode 100644 index 000000000..65535eff7 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsArray.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsArray.2.txt b/MockData/FindTypedTests.ExpandManyAsArray.2.txt new file mode 100644 index 000000000..f007f0f36 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsArray.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4574"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService100\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsHashSet.1.txt b/MockData/FindTypedTests.ExpandManyAsHashSet.1.txt new file mode 100644 index 000000000..cd6d14184 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsHashSet.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsHashSet.2.txt b/MockData/FindTypedTests.ExpandManyAsHashSet.2.txt new file mode 100644 index 000000000..b6222d014 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsHashSet.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4574"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService127\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsICollection.1.txt b/MockData/FindTypedTests.ExpandManyAsICollection.1.txt new file mode 100644 index 000000000..c2be92a98 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsICollection.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsICollection.2.txt b/MockData/FindTypedTests.ExpandManyAsICollection.2.txt new file mode 100644 index 000000000..c64cf7e01 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsICollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4574"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService114\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsIList.1.txt b/MockData/FindTypedTests.ExpandManyAsIList.1.txt new file mode 100644 index 000000000..fe8b78b02 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsIList.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsIList.2.txt b/MockData/FindTypedTests.ExpandManyAsIList.2.txt new file mode 100644 index 000000000..aa488e348 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsIList.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4574"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService123\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsList.1.txt b/MockData/FindTypedTests.ExpandManyAsList.1.txt new file mode 100644 index 000000000..d229a4fb5 --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsList.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandManyAsList.2.txt b/MockData/FindTypedTests.ExpandManyAsList.2.txt new file mode 100644 index 000000000..da33e766e --- /dev/null +++ b/MockData/FindTypedTests.ExpandManyAsList.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4574"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService130\/Categories?$filter=CategoryName%20eq%20%27Beverages%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.1.txt b/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.1.txt new file mode 100644 index 000000000..b494cec47 --- /dev/null +++ b/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products?$expand=Category\/Products\/Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.2.txt b/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.2.txt new file mode 100644 index 000000000..0cb0e75ea --- /dev/null +++ b/MockData/FindTypedTests.ExpandMultipleLevelsWithCollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["252314"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService110\/Products?$expand=Category\/Products\/Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandOne.1.txt b/MockData/FindTypedTests.ExpandOne.1.txt new file mode 100644 index 000000000..bac957290 --- /dev/null +++ b/MockData/FindTypedTests.ExpandOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products?$expand=Category&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandOne.2.txt b/MockData/FindTypedTests.ExpandOne.2.txt new file mode 100644 index 000000000..c89975131 --- /dev/null +++ b/MockData/FindTypedTests.ExpandOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51330"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService113\/Products?$expand=Category&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandSecondLevel.1.txt b/MockData/FindTypedTests.ExpandSecondLevel.1.txt new file mode 100644 index 000000000..e7a7b6bd9 --- /dev/null +++ b/MockData/FindTypedTests.ExpandSecondLevel.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products?$expand=Category\/Products&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandSecondLevel.2.txt b/MockData/FindTypedTests.ExpandSecondLevel.2.txt new file mode 100644 index 000000000..a96f3a7f3 --- /dev/null +++ b/MockData/FindTypedTests.ExpandSecondLevel.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(1)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(7)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(7)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(6)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(6)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(8)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(8)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(5)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(5)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(3)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(3)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(4)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(4)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(2)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["182549"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService132\/Products?$expand=Category\/Products&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandWithSelect.1.txt b/MockData/FindTypedTests.ExpandWithSelect.1.txt new file mode 100644 index 000000000..c5d84cdc3 --- /dev/null +++ b/MockData/FindTypedTests.ExpandWithSelect.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products?$expand=Category&$select=ProductName,Category\/CategoryName&$orderby=ProductID"} \ No newline at end of file diff --git a/MockData/FindTypedTests.ExpandWithSelect.2.txt b/MockData/FindTypedTests.ExpandWithSelect.2.txt new file mode 100644 index 000000000..a11279daf --- /dev/null +++ b/MockData/FindTypedTests.ExpandWithSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Beverages<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chang<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Aniseed Syrup<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mishi Kobe Niku<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Ikura<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Cabrales<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Konbu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Produce<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Tofu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Genen Shouyu<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Pavlova<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Meat\/Poultry<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Alice Mutton<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Seafood<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Boston Crab Meat<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Grains\/Cereals<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Confections<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Zaanse koeken<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Dairy Products<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryName>Condiments<\/d:CategoryName><\/m:properties><\/content><\/entry><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["25288"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService116\/Products?$expand=Category&$select=ProductName,Category\/CategoryName&$orderby=ProductID","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.FilterAll.1.txt b/MockData/FindTypedTests.FilterAll.1.txt new file mode 100644 index 000000000..e43f54f09 --- /dev/null +++ b/MockData/FindTypedTests.FilterAll.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders?$filter=Order_Details%2Fall%28x4%3Ax4%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.FilterAll.2.txt b/MockData/FindTypedTests.FilterAll.2.txt new file mode 100644 index 000000000..3888e25ce --- /dev/null +++ b/MockData/FindTypedTests.FilterAll.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10000)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10000)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10000)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10000)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10000)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10000)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10000<\/d:OrderID><d:CustomerID>FRANS<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:ShipName>Franchi S.p.A.<\/d:ShipName><d:ShipAddress>Via Monte Bianco 34<\/d:ShipAddress><d:ShipCity>Torino<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>10100<\/d:ShipPostalCode><d:ShipCountry>Italy<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-10-05T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-06-07T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-05-15T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">4.45<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["11160"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService121\/Orders?$filter=Order_Details%2Fall%28x4%3Ax4%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.FilterAny.1.txt b/MockData/FindTypedTests.FilterAny.1.txt new file mode 100644 index 000000000..80d87a9f9 --- /dev/null +++ b/MockData/FindTypedTests.FilterAny.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders?$filter=Order_Details%2Fany%28x3%3Ax3%2FQuantity%20gt%2050%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.FilterAny.2.txt b/MockData/FindTypedTests.FilterAny.2.txt new file mode 100644 index 000000000..4bd6b845a --- /dev/null +++ b/MockData/FindTypedTests.FilterAny.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders<\/id><title type=\"text\">Orders<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Orders\" href=\"Orders\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders(10021)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10021)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10021)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10021)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10021)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:CustomerID>ERNSH<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:ShipName>Ernst Handel<\/d:ShipName><d:ShipAddress>Kirchgasse 6<\/d:ShipAddress><d:ShipCity>Graz<\/d:ShipCity><d:ShipRegion m:null=\"true\" \/><d:ShipPostalCode>8010<\/d:ShipPostalCode><d:ShipCountry>Austria<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-06-14T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-07-12T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-07-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">75.17<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders(10065)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10065)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10065)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10065)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10065)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10065)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1991-08-28T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1991-09-25T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1991-09-03T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">45.03<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders(10199)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10199)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10199)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10199)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10199)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10199)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1992-03-27T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1992-04-10T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">50.19<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders(10847)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10847)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10847)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10847)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10847)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10847)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:CustomerID>SAVEA<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:ShipName>Save-a-lot Markets<\/d:ShipName><d:ShipAddress>187 Suffolk Ln.<\/d:ShipAddress><d:ShipCity>Boise<\/d:ShipCity><d:ShipRegion>ID<\/d:ShipRegion><d:ShipPostalCode>83720<\/d:ShipPostalCode><d:ShipCountry>USA<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1993-12-16T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1993-12-30T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-01-04T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">487.57<\/d:Freight><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders(10918)<\/id><category term=\"NorthwindModel.Order\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Order\" href=\"Orders(10918)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Customer\" type=\"application\/atom+xml;type=entry\" title=\"Customer\" href=\"Orders(10918)\/Customer\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Employee\" type=\"application\/atom+xml;type=entry\" title=\"Employee\" href=\"Orders(10918)\/Employee\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order_Details\" type=\"application\/atom+xml;type=feed\" title=\"Order_Details\" href=\"Orders(10918)\/Order_Details\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Shipper\" type=\"application\/atom+xml;type=entry\" title=\"Shipper\" href=\"Orders(10918)\/Shipper\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:CustomerID>BOTTM<\/d:CustomerID><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:ShipName>Bottom-Dollar Markets<\/d:ShipName><d:ShipAddress>23 Tsawassen Blvd.<\/d:ShipAddress><d:ShipCity>Tsawassen<\/d:ShipCity><d:ShipRegion>BC<\/d:ShipRegion><d:ShipPostalCode>T2F 8M4<\/d:ShipPostalCode><d:ShipCountry>Canada<\/d:ShipCountry><d:ShipVia m:type=\"Edm.Int32\">3<\/d:ShipVia><d:OrderDate m:type=\"Edm.DateTime\">1994-01-24T00:00:00<\/d:OrderDate><d:RequiredDate m:type=\"Edm.DateTime\">1994-02-21T00:00:00<\/d:RequiredDate><d:ShippedDate m:type=\"Edm.DateTime\">1994-02-02T00:00:00<\/d:ShippedDate><d:Freight m:type=\"Edm.Decimal\">48.83<\/d:Freight><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9379"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService98\/Orders?$filter=Order_Details%2Fany%28x3%3Ax3%2FQuantity%20gt%2050%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.Get.1.txt b/MockData/FindTypedTests.Get.1.txt new file mode 100644 index 000000000..548ba3031 --- /dev/null +++ b/MockData/FindTypedTests.Get.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService82\/Categories(1)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.Get.2.txt b/MockData/FindTypedTests.Get.2.txt new file mode 100644 index 000000000..b4149d1c2 --- /dev/null +++ b/MockData/FindTypedTests.Get.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService82\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService82\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1104"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService82\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.GetNonExisting.1.txt b/MockData/FindTypedTests.GetNonExisting.1.txt new file mode 100644 index 000000000..978d1f615 --- /dev/null +++ b/MockData/FindTypedTests.GetNonExisting.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService120\/Categories(-1)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.GetNonExisting.2.txt b/MockData/FindTypedTests.GetNonExisting.2.txt new file mode 100644 index 000000000..26bfaadb3 --- /dev/null +++ b/MockData/FindTypedTests.GetNonExisting.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><m:error xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><m:code \/><m:message xml:lang=\"en-US\">Resource not found for the segment 'Categories'.<\/m:message><\/m:error>","ContentHeaders":[{"Key":"Content-Length","Value":["228"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService120\/Categories(-1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":404} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.1.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.1.txt new file mode 100644 index 000000000..3f4840761 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:26Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["940"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.2.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.2.txt new file mode 100644 index 000000000..214788502 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1021)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1021)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1021)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1021<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1740"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.3.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.3.txt new file mode 100644 index 000000000..7ac703e81 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:26Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["940"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.4.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.4.txt new file mode 100644 index 000000000..982162918 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.4.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.5.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.5.txt new file mode 100644 index 000000000..84c0e9f50 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.6.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.6.txt new file mode 100644 index 000000000..c5fc83e78 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.7.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.7.txt new file mode 100644 index 000000000..93ebfedea --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IgnoredUnmappedColumn.8.txt b/MockData/FindTypedTests.IgnoredUnmappedColumn.8.txt new file mode 100644 index 000000000..70ddffee3 --- /dev/null +++ b/MockData/FindTypedTests.IgnoredUnmappedColumn.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1021)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1021)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1021)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1021)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1021<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1755"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService99\/Products(1021)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.IsOfAssociation.1.txt b/MockData/FindTypedTests.IsOfAssociation.1.txt new file mode 100644 index 000000000..182f52581 --- /dev/null +++ b/MockData/FindTypedTests.IsOfAssociation.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees?$filter=isof%28Superior%2C%27NorthwindModel.Employee%27%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IsOfAssociation.2.txt b/MockData/FindTypedTests.IsOfAssociation.2.txt new file mode 100644 index 000000000..e4a2cffe1 --- /dev/null +++ b/MockData/FindTypedTests.IsOfAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees<\/id><title type=\"text\">Employees<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Employees\" href=\"Employees\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(1)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1<\/d:EmployeeID><d:FirstName>Nancy<\/d:FirstName><d:LastName>Davolio<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1948-12-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-03-29T00:00:00<\/d:HireDate><d:Address>507 - 20th Ave. E. Apt. 2A<\/d:Address><d:City>Seattle<\/d:City><d:Region>WA<\/d:Region><d:PostalCode>98122<\/d:PostalCode><d:Country>USA<\/d:Country><d:HomePhone>(206) 555-9857<\/d:HomePhone><d:Extension>5467<\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes>Notes<\/d:Notes><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(4)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(4)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(4)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(4)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">4<\/d:EmployeeID><d:FirstName>Margaret<\/d:FirstName><d:LastName>Peacock<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1937-09-19T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-03-30T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(5)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(5)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(5)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(5)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">5<\/d:EmployeeID><d:FirstName>Steven<\/d:FirstName><d:LastName>Buchanan<\/d:LastName><d:Title>Sales Manager<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1955-03-04T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(6)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(6)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(6)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(6)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">6<\/d:EmployeeID><d:FirstName>Michael<\/d:FirstName><d:LastName>Suyama<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-07-02T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-09-13T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(7)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(7)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(7)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(7)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">7<\/d:EmployeeID><d:FirstName>Robert<\/d:FirstName><d:LastName>King<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-05-29T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1992-11-29T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">5<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(13)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(13)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(13)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(13)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">13<\/d:EmployeeID><d:FirstName>Justin<\/d:FirstName><d:LastName>Brid<\/d:LastName><d:Title>Marketing Director<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1962-10-08T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-01T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees(14)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(14)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(14)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(14)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">14<\/d:EmployeeID><d:FirstName>Xavier<\/d:FirstName><d:LastName>Martin<\/d:LastName><d:Title>Marketing Associate<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1960-11-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1994-01-15T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">13<\/d:ReportsTo><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["12633"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService78\/Employees?$filter=isof%28Superior%2C%27NorthwindModel.Employee%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.IsOfDerivedClassEntry.1.txt b/MockData/FindTypedTests.IsOfDerivedClassEntry.1.txt new file mode 100644 index 000000000..3771b7b47 --- /dev/null +++ b/MockData/FindTypedTests.IsOfDerivedClassEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService109\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.IsOfDerivedClassEntry.2.txt b/MockData/FindTypedTests.IsOfDerivedClassEntry.2.txt new file mode 100644 index 000000000..38e352367 --- /dev/null +++ b/MockData/FindTypedTests.IsOfDerivedClassEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService109\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService109\/Transport<\/id><title type=\"text\">Transport<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Transport\" href=\"Transport\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService109\/Transport(1)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Transport\" href=\"Transport(1)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">1<\/d:TransportType><d:ShipName>Titanic<\/d:ShipName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1100"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService109\/Transport?$filter=isof%28%27NorthwindModel.Ship%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.LengthOfStringEqual.1.txt b/MockData/FindTypedTests.LengthOfStringEqual.1.txt new file mode 100644 index 000000000..288281c9f --- /dev/null +++ b/MockData/FindTypedTests.LengthOfStringEqual.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/Products?$filter=length%28ProductName%29%20eq%204"} \ No newline at end of file diff --git a/MockData/FindTypedTests.LengthOfStringEqual.2.txt b/MockData/FindTypedTests.LengthOfStringEqual.2.txt new file mode 100644 index 000000000..3ea8db27e --- /dev/null +++ b/MockData/FindTypedTests.LengthOfStringEqual.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3470"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService96\/Products?$filter=length%28ProductName%29%20eq%204","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.MappedColumn.1.txt b/MockData/FindTypedTests.MappedColumn.1.txt new file mode 100644 index 000000000..1d1c2d082 --- /dev/null +++ b/MockData/FindTypedTests.MappedColumn.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName>EnglishTest<\/d:EnglishName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["953"]}],"Method":"POST","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.MappedColumn.2.txt b/MockData/FindTypedTests.MappedColumn.2.txt new file mode 100644 index 000000000..da2d6785f --- /dev/null +++ b/MockData/FindTypedTests.MappedColumn.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"DataServiceId","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products(1022)"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products(1022)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/FindTypedTests.MappedColumn.3.txt b/MockData/FindTypedTests.MappedColumn.3.txt new file mode 100644 index 000000000..ca082307d --- /dev/null +++ b/MockData/FindTypedTests.MappedColumn.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products?$filter=ProductName%20eq%20%27Test1%27&$select=ProductID,ProductName,EnglishName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.MappedColumn.4.txt b/MockData/FindTypedTests.MappedColumn.4.txt new file mode 100644 index 000000000..8ccc34c20 --- /dev/null +++ b/MockData/FindTypedTests.MappedColumn.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products(1022)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1022)\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1022<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName>EnglishTest<\/d:EnglishName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1071"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService134\/Products?$filter=ProductName%20eq%20%27Test1%27&$select=ProductID,ProductName,EnglishName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.1.txt b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.1.txt new file mode 100644 index 000000000..9a15057c4 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.2.txt b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.2.txt new file mode 100644 index 000000000..b5c5c3031 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details<\/id><title type=\"text\">Order_Details<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Order_Details\" href=\"Order_Details\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10021,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10021,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10065,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10065,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.60<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">55<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10199,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10199,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">66<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=42)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">9.80<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">10<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=72)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">24.30<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">5<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10847,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10847,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">80<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10918,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10918,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9394"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.3.txt b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.3.txt new file mode 100644 index 000000000..9a15057c4 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.4.txt b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.4.txt new file mode 100644 index 000000000..b5c5c3031 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverCaseInsensitive.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details<\/id><title type=\"text\">Order_Details<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Order_Details\" href=\"Order_Details\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10021,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10021,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10065,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10065,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.60<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">55<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10199,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10199,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">66<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=42)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">9.80<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">10<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=72)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">24.30<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">5<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10847,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10847,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">80<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10918,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10918,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9394"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverNotStrict.1.txt b/MockData/FindTypedTests.NameMatchResolverNotStrict.1.txt new file mode 100644 index 000000000..9a15057c4 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverNotStrict.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverNotStrict.2.txt b/MockData/FindTypedTests.NameMatchResolverNotStrict.2.txt new file mode 100644 index 000000000..b5c5c3031 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverNotStrict.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details<\/id><title type=\"text\">Order_Details<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Order_Details\" href=\"Order_Details\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10021,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10021,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10065,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10065,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.60<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">55<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10199,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10199,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">66<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=42)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">9.80<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">10<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=72)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">24.30<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">5<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10847,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10847,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">80<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10918,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10918,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9394"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverNotStrict.3.txt b/MockData/FindTypedTests.NameMatchResolverNotStrict.3.txt new file mode 100644 index 000000000..9a15057c4 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverNotStrict.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverNotStrict.4.txt b/MockData/FindTypedTests.NameMatchResolverNotStrict.4.txt new file mode 100644 index 000000000..b5c5c3031 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverNotStrict.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details<\/id><title type=\"text\">Order_Details<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Order_Details\" href=\"Order_Details\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10021,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10021,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10065,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10065,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.60<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">55<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10199,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10199,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">66<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=42)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">9.80<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">10<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10248,ProductID=72)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">24.30<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">5<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10847,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10847,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">80<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details(OrderID=10918,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10918,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9394"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService94\/Order_Details","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverStrict.1.txt b/MockData/FindTypedTests.NameMatchResolverStrict.1.txt new file mode 100644 index 000000000..31803431e --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverStrict.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NameMatchResolverStrict.2.txt b/MockData/FindTypedTests.NameMatchResolverStrict.2.txt new file mode 100644 index 000000000..b46360a72 --- /dev/null +++ b/MockData/FindTypedTests.NameMatchResolverStrict.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details<\/id><title type=\"text\">Order_Details<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Order_Details\" href=\"Order_Details\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10021,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10021,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10021,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10021<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10065,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10065,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10065,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10065<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.60<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">55<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10199,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10199,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10199,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10199<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">12.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">66<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10248,ProductID=11)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=11)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">12<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10248,ProductID=42)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=42)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">9.80<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">10<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10248,ProductID=72)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10248,ProductID=72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10248,ProductID=72)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10248<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">24.30<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">5<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10847,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10847,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10847,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10847<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">80<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.2<\/d:Discount><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details(OrderID=10918,ProductID=1)<\/id><category term=\"NorthwindModel.OrderDetail\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"OrderDetail\" href=\"Order_Details(OrderID=10918,ProductID=1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Order\" type=\"application\/atom+xml;type=entry\" title=\"Order\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Order\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Product\" type=\"application\/atom+xml;type=entry\" title=\"Product\" href=\"Order_Details(OrderID=10918,ProductID=1)\/Product\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:OrderID m:type=\"Edm.Int32\">10918<\/d:OrderID><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:Quantity m:type=\"Edm.Int32\">60<\/d:Quantity><d:Discount m:type=\"Edm.Single\">0.25<\/d:Discount><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["9394"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService90\/Order_Details","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToMultiple.1.txt b/MockData/FindTypedTests.NavigateToMultiple.1.txt new file mode 100644 index 000000000..bc536837c --- /dev/null +++ b/MockData/FindTypedTests.NavigateToMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Categories(2)\/Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToMultiple.2.txt b/MockData/FindTypedTests.NavigateToMultiple.2.txt new file mode 100644 index 000000000..1bead61fd --- /dev/null +++ b/MockData/FindTypedTests.NavigateToMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Categories(2)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["10972"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService128\/Categories(2)\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursive.1.txt b/MockData/FindTypedTests.NavigateToRecursive.1.txt new file mode 100644 index 000000000..de5c6cf62 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursive.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService107\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursive.2.txt b/MockData/FindTypedTests.NavigateToRecursive.2.txt new file mode 100644 index 000000000..0ee7d3cd8 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursive.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService107\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService107\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1803"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService107\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursiveByExpression.1.txt b/MockData/FindTypedTests.NavigateToRecursiveByExpression.1.txt new file mode 100644 index 000000000..b3f68acef --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursiveByExpression.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService80\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursiveByExpression.2.txt b/MockData/FindTypedTests.NavigateToRecursiveByExpression.2.txt new file mode 100644 index 000000000..aa97768c1 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursiveByExpression.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService80\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService80\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1801"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService80\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursiveSingleClause.1.txt b/MockData/FindTypedTests.NavigateToRecursiveSingleClause.1.txt new file mode 100644 index 000000000..5e55f7ba4 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursiveSingleClause.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService93\/Employees(14)\/Superior\/Superior\/Subordinates(3)"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToRecursiveSingleClause.2.txt b/MockData/FindTypedTests.NavigateToRecursiveSingleClause.2.txt new file mode 100644 index 000000000..4dc7b226b --- /dev/null +++ b/MockData/FindTypedTests.NavigateToRecursiveSingleClause.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService93\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService93\/Employees(3)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(3)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(3)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(3)\/Superior\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">3<\/d:EmployeeID><d:FirstName>Janet<\/d:FirstName><d:LastName>Leverling<\/d:LastName><d:Title>Sales Representative<\/d:Title><d:BirthDate m:type=\"Edm.DateTime\">1963-08-30T00:00:00<\/d:BirthDate><d:HireDate m:type=\"Edm.DateTime\">1991-02-27T00:00:00<\/d:HireDate><d:Address><\/d:Address><d:City><\/d:City><d:Region m:null=\"true\" \/><d:PostalCode><\/d:PostalCode><d:Country><\/d:Country><d:HomePhone><\/d:HomePhone><d:Extension><\/d:Extension><d:Photo m:type=\"Edm.Binary\">AQID<\/d:Photo><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\">2<\/d:ReportsTo><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1801"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService93\/Employees(14)\/Superior\/Superior\/Subordinates(3)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToSingle.1.txt b/MockData/FindTypedTests.NavigateToSingle.1.txt new file mode 100644 index 000000000..01f3dcc63 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService104\/Products(2)\/Category"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToSingle.2.txt b/MockData/FindTypedTests.NavigateToSingle.2.txt new file mode 100644 index 000000000..fd9c42adb --- /dev/null +++ b/MockData/FindTypedTests.NavigateToSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService104\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService104\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService104\/Products(2)\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToSingleByExpression.1.txt b/MockData/FindTypedTests.NavigateToSingleByExpression.1.txt new file mode 100644 index 000000000..3b05be9e5 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToSingleByExpression.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService83\/Products(2)\/Category"} \ No newline at end of file diff --git a/MockData/FindTypedTests.NavigateToSingleByExpression.2.txt b/MockData/FindTypedTests.NavigateToSingleByExpression.2.txt new file mode 100644 index 000000000..563b0db47 --- /dev/null +++ b/MockData/FindTypedTests.NavigateToSingleByExpression.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService83\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService83\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1104"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService83\/Products(2)\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderByExpanded.1.txt b/MockData/FindTypedTests.OrderByExpanded.1.txt new file mode 100644 index 000000000..672ff4afe --- /dev/null +++ b/MockData/FindTypedTests.OrderByExpanded.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products?$expand=Category&$orderby=Category\/CategoryName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderByExpanded.2.txt b/MockData/FindTypedTests.OrderByExpanded.2.txt new file mode 100644 index 000000000..471aeb201 --- /dev/null +++ b/MockData/FindTypedTests.OrderByExpanded.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(2)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(2)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:CategoryName>Condiments<\/d:CategoryName><d:Description>Sweet and savory sauces, relishes, spreads, and seasonings<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(3)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(3)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:CategoryName>Confections<\/d:CategoryName><d:Description>Desserts, candies, sweetbreads<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(4)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(4)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:CategoryName>Dairy Products<\/d:CategoryName><d:Description>Cheeses<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(5)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(5)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:CategoryName>Grains\/Cereals<\/d:CategoryName><d:Description>Breads, crackers, pasta, and cereal<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(6)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(6)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:CategoryName>Meat\/Poultry<\/d:CategoryName><d:Description>Prepared meats<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(7)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(7)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:CategoryName>Produce<\/d:CategoryName><d:Description>Dried fruit and bean curd<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\"><m:inline><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Categories(8)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(8)\/Products\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:CategoryName>Seafood<\/d:CategoryName><d:Description>Seaweed and fish<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry><\/m:inline><\/link><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["51330"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService105\/Products?$expand=Category&$orderby=Category\/CategoryName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderByMultiple.1.txt b/MockData/FindTypedTests.OrderByMultiple.1.txt new file mode 100644 index 000000000..191dd0100 --- /dev/null +++ b/MockData/FindTypedTests.OrderByMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService85\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderByMultiple.2.txt b/MockData/FindTypedTests.OrderByMultiple.2.txt new file mode 100644 index 000000000..4619c11bc --- /dev/null +++ b/MockData/FindTypedTests.OrderByMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService85\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService85\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService85\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService85\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderBySingle.1.txt b/MockData/FindTypedTests.OrderBySingle.1.txt new file mode 100644 index 000000000..54d99ccb8 --- /dev/null +++ b/MockData/FindTypedTests.OrderBySingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService112\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.OrderBySingle.2.txt b/MockData/FindTypedTests.OrderBySingle.2.txt new file mode 100644 index 000000000..0fa1100b0 --- /dev/null +++ b/MockData/FindTypedTests.OrderBySingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService112\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService112\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService112\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1996"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService112\/Products?$filter=ProductName%20eq%20%27Chai%27&$orderby=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.RemappedColumn.1.txt b/MockData/FindTypedTests.RemappedColumn.1.txt new file mode 100644 index 000000000..0d988b812 --- /dev/null +++ b/MockData/FindTypedTests.RemappedColumn.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-07-17T13:57:54Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName>EnglishTest<\/d:EnglishName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["951"]}],"Method":"POST","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products"} \ No newline at end of file diff --git a/MockData/FindTypedTests.RemappedColumn.2.txt b/MockData/FindTypedTests.RemappedColumn.2.txt new file mode 100644 index 000000000..a87fb111c --- /dev/null +++ b/MockData/FindTypedTests.RemappedColumn.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"DataServiceId","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1001)"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Tue, 17 Jul 2018 13:57:55 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/FindTypedTests.RemappedColumn.3.txt b/MockData/FindTypedTests.RemappedColumn.3.txt new file mode 100644 index 000000000..65bc4008f --- /dev/null +++ b/MockData/FindTypedTests.RemappedColumn.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test1%27&$select=ProductID,ProductName,EnglishName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.RemappedColumn.4.txt b/MockData/FindTypedTests.RemappedColumn.4.txt new file mode 100644 index 000000000..2c9d77927 --- /dev/null +++ b/MockData/FindTypedTests.RemappedColumn.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-07-17T13:57:57Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1001)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1001)\" \/><title \/><updated>2018-07-17T13:57:57Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1001<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName>EnglishTest<\/d:EnglishName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1065"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test1%27&$select=ProductID,ProductName,EnglishName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Tue, 17 Jul 2018 13:57:57 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SelectMultiple.1.txt b/MockData/FindTypedTests.SelectMultiple.1.txt new file mode 100644 index 000000000..62444ee41 --- /dev/null +++ b/MockData/FindTypedTests.SelectMultiple.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService95\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductID,ProductName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SelectMultiple.2.txt b/MockData/FindTypedTests.SelectMultiple.2.txt new file mode 100644 index 000000000..991823952 --- /dev/null +++ b/MockData/FindTypedTests.SelectMultiple.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService95\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService95\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService95\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1016"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService95\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductID,ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SelectSingle.1.txt b/MockData/FindTypedTests.SelectSingle.1.txt new file mode 100644 index 000000000..f044cb377 --- /dev/null +++ b/MockData/FindTypedTests.SelectSingle.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService119\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductName"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SelectSingle.2.txt b/MockData/FindTypedTests.SelectSingle.2.txt new file mode 100644 index 000000000..96dafba00 --- /dev/null +++ b/MockData/FindTypedTests.SelectSingle.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService119\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService119\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService119\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductName>Chai<\/d:ProductName><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["972"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService119\/Products?$filter=ProductName%20eq%20%27Chai%27&$select=ProductName","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SingleCondition.1.txt b/MockData/FindTypedTests.SingleCondition.1.txt new file mode 100644 index 000000000..087b3da87 --- /dev/null +++ b/MockData/FindTypedTests.SingleCondition.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService111\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SingleCondition.2.txt b/MockData/FindTypedTests.SingleCondition.2.txt new file mode 100644 index 000000000..743c1a1c8 --- /dev/null +++ b/MockData/FindTypedTests.SingleCondition.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService111\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService111\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService111\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1996"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService111\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SingleConditionWithLocalVariable.1.txt b/MockData/FindTypedTests.SingleConditionWithLocalVariable.1.txt new file mode 100644 index 000000000..b10bac7f7 --- /dev/null +++ b/MockData/FindTypedTests.SingleConditionWithLocalVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService103\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SingleConditionWithLocalVariable.2.txt b/MockData/FindTypedTests.SingleConditionWithLocalVariable.2.txt new file mode 100644 index 000000000..9795a2d06 --- /dev/null +++ b/MockData/FindTypedTests.SingleConditionWithLocalVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService103\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService103\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService103\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1996"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService103\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContains.1.txt b/MockData/FindTypedTests.StringContains.1.txt new file mode 100644 index 000000000..28dc4f469 --- /dev/null +++ b/MockData/FindTypedTests.StringContains.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService117\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContains.2.txt b/MockData/FindTypedTests.StringContains.2.txt new file mode 100644 index 000000000..4cacc7c6a --- /dev/null +++ b/MockData/FindTypedTests.StringContains.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService117\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService117\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService117\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1996"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService117\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContainsWithArrayVariable.1.txt b/MockData/FindTypedTests.StringContainsWithArrayVariable.1.txt new file mode 100644 index 000000000..2d6842b96 --- /dev/null +++ b/MockData/FindTypedTests.StringContainsWithArrayVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService86\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContainsWithArrayVariable.2.txt b/MockData/FindTypedTests.StringContainsWithArrayVariable.2.txt new file mode 100644 index 000000000..149f5e35d --- /dev/null +++ b/MockData/FindTypedTests.StringContainsWithArrayVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService86\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService86\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService86\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService86\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContainsWithLocalVariable.1.txt b/MockData/FindTypedTests.StringContainsWithLocalVariable.1.txt new file mode 100644 index 000000000..08a1d0a7b --- /dev/null +++ b/MockData/FindTypedTests.StringContainsWithLocalVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService84\/Products?$filter=substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringContainsWithLocalVariable.2.txt b/MockData/FindTypedTests.StringContainsWithLocalVariable.2.txt new file mode 100644 index 000000000..605f7017f --- /dev/null +++ b/MockData/FindTypedTests.StringContainsWithLocalVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService84\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService84\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService84\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService84\/Products?$filter=substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringNotContains.1.txt b/MockData/FindTypedTests.StringNotContains.1.txt new file mode 100644 index 000000000..6da506ff6 --- /dev/null +++ b/MockData/FindTypedTests.StringNotContains.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products?$filter=not%20substringof%28%27ai%27%2CProductName%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringNotContains.2.txt b/MockData/FindTypedTests.StringNotContains.2.txt new file mode 100644 index 000000000..6e1374dc8 --- /dev/null +++ b/MockData/FindTypedTests.StringNotContains.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:28Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(3)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(3)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(3)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(3)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(3)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">3<\/d:ProductID><d:ProductName>Aniseed Syrup<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 550 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">10.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">13<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">70<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(6)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(6)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(6)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(6)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(6)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">6<\/d:ProductID><d:ProductName>Grandma's Boysenberry Spread<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 8 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">25.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">120<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(7)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(7)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(7)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(7)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(7)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">7<\/d:ProductID><d:ProductName>Uncle Bob's Organic Dried Pears<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>12 - 1 lb pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">30.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">15<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(8)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(8)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(8)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(8)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(8)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">8<\/d:ProductID><d:ProductName>Northwoods Cranberry Sauce<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">3<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 - 12 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">40.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">6<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(9)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(9)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(9)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(9)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(9)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">9<\/d:ProductID><d:ProductName>Mishi Kobe Niku<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>18 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">97.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(10)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(10)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(10)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(10)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(10)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">10<\/d:ProductID><d:ProductName>Ikura<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">4<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>12 - 200 ml jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">31.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">31<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(11)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(11)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(11)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(11)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(11)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">11<\/d:ProductID><d:ProductName>Queso Cabrales<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>1 kg pkg.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">22<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">30<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(12)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(12)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(12)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(12)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(12)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">12<\/d:ProductID><d:ProductName>Queso Manchego La Pastora<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">5<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>10 - 500 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">38.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">86<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(13)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(13)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(13)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(13)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(13)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">13<\/d:ProductID><d:ProductName>Konbu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>2 kg box<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">6.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">24<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(14)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(14)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(14)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(14)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(14)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">14<\/d:ProductID><d:ProductName>Tofu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">7<\/d:CategoryID><d:QuantityPerUnit>40 - 100 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">23.25<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">35<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(15)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(15)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(15)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(15)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(15)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">15<\/d:ProductID><d:ProductName>Genen Shouyu<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">6<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>24 - 250 ml bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">15.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">5<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(16)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(16)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(16)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(16)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(16)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">16<\/d:ProductID><d:ProductName>Pavlova<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>32 - 500 g boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">17.45<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">29<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(17)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(17)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(17)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(17)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(17)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">17<\/d:ProductID><d:ProductName>Alice Mutton<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">7<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">6<\/d:CategoryID><d:QuantityPerUnit>20 - 1 kg tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">39.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(40)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(40)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(40)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(40)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(40)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">40<\/d:ProductID><d:ProductName>Boston Crab Meat<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">10<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">8<\/d:CategoryID><d:QuantityPerUnit>24 - 4 oz tins<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.40<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">123<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">30<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(42)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(42)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(42)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(42)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(42)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">42<\/d:ProductID><d:ProductName>Singaporean Hokkien Fried Mee<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">11<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">5<\/d:CategoryID><d:QuantityPerUnit>32 - 1 kg pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">14.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">26<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(47)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(47)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(47)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(47)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(47)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">47<\/d:ProductID><d:ProductName>Zaanse koeken<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">12<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">3<\/d:CategoryID><d:QuantityPerUnit>10 - 4 oz boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">9.50<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">36<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(72)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(72)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(72)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(72)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(72)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">72<\/d:ProductID><d:ProductName>Mozzarella di Giovanni<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">9<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">4<\/d:CategoryID><d:QuantityPerUnit>24 - 200 g pkgs.<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">34.80<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">14<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products(77)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(77)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(77)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(77)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(77)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:28Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">77<\/d:ProductID><d:ProductName>Original Frankfurter grüne Soße<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">8<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>12 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">13.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">32<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">15<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["31764"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService125\/Products?$filter=not%20substringof%28%27ai%27%2CProductName%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:27 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringStartsWith.1.txt b/MockData/FindTypedTests.StringStartsWith.1.txt new file mode 100644 index 000000000..d32bb08a9 --- /dev/null +++ b/MockData/FindTypedTests.StringStartsWith.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products?$filter=startswith%28ProductName%2C%27Ch%27%29"} \ No newline at end of file diff --git a/MockData/FindTypedTests.StringStartsWith.2.txt b/MockData/FindTypedTests.StringStartsWith.2.txt new file mode 100644 index 000000000..a0882cbfc --- /dev/null +++ b/MockData/FindTypedTests.StringStartsWith.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:26Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products(4)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(4)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(4)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(4)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(4)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">4<\/d:ProductID><d:ProductName>Chef Anton's Cajun Seasoning<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>48 - 6 oz jars<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">22.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">53<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products(5)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(5)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(5)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(5)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(5)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:26Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">5<\/d:ProductID><d:ProductName>Chef Anton's Gumbo Mix<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">2<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">2<\/d:CategoryID><d:QuantityPerUnit>36 boxes<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">21.35<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">0<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">0<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">true<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["6441"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService92\/Products?$filter=startswith%28ProductName%2C%27Ch%27%29","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:25 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.Subclass.1.txt b/MockData/FindTypedTests.Subclass.1.txt new file mode 100644 index 000000000..74229523c --- /dev/null +++ b/MockData/FindTypedTests.Subclass.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService108\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.Subclass.2.txt b/MockData/FindTypedTests.Subclass.2.txt new file mode 100644 index 000000000..7be2e1c8f --- /dev/null +++ b/MockData/FindTypedTests.Subclass.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService108\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService108\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:27Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService108\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:27Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1996"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService108\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:26 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.1.txt b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.1.txt new file mode 100644 index 000000000..56d93c9f1 --- /dev/null +++ b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.2.txt b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.2.txt new file mode 100644 index 000000000..3bb386c77 --- /dev/null +++ b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqual.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3469"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService87\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt new file mode 100644 index 000000000..c057da0b2 --- /dev/null +++ b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27"} \ No newline at end of file diff --git a/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt new file mode 100644 index 000000000..8f17689b0 --- /dev/null +++ b/MockData/FindTypedTests.SubstringWithPositionAndLengthEqualWithLocalVariable.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:29Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/Products(2)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(2)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(2)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(2)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(2)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:29Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">2<\/d:ProductID><d:ProductName>Chang<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>24 - 12 oz bottles<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">19.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">17<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">40<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">25<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3473"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService131\/Products?$filter=substring%28ProductName%2C1%2C2%29%20eq%20%27ha%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:28 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FindTypedTests.TopOne.1.txt b/MockData/FindTypedTests.TopOne.1.txt new file mode 100644 index 000000000..dcfd0b638 --- /dev/null +++ b/MockData/FindTypedTests.TopOne.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService79\/Products?$filter=ProductName%20eq%20%27Chai%27&$top=1"} \ No newline at end of file diff --git a/MockData/FindTypedTests.TopOne.2.txt b/MockData/FindTypedTests.TopOne.2.txt new file mode 100644 index 000000000..c197bb86e --- /dev/null +++ b/MockData/FindTypedTests.TopOne.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService79\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService79\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:25Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService79\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:25Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1993"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService79\/Products?$filter=ProductName%20eq%20%27Chai%27&$top=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:24 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexType.1.txt b/MockData/FunctionTests.FunctionWithComplexType.1.txt new file mode 100644 index 000000000..bcd4f7591 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexType.1.txt @@ -0,0 +1 @@ +{"Content":"{\u000d\u000a \"address\":{\u000d\u000a \"City\":\"Oslo\",\"Region\":\"Oslo\",\"PostalCode\":\"1234\",\"Country\":\"Norway\"\u000d\u000a }\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json"]},{"Key":"Content-Length","Value":["98"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/PassThroughAddress"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexType.2.txt b/MockData/FunctionTests.FunctionWithComplexType.2.txt new file mode 100644 index 000000000..d322c740d --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexType.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughAddress xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"NorthwindModel.Address\"><d:City>Oslo<\/d:City><d:Region>Oslo<\/d:Region><d:PostalCode>1234<\/d:PostalCode><d:Country>Norway<\/d:Country><\/d:PassThroughAddress>","ContentHeaders":[{"Key":"Content-Length","Value":["360"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/PassThroughAddress","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.1.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.1.txt new file mode 100644 index 000000000..6e2eaeb8a --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/ReturnAddressCollection?count=0"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.2.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.2.txt new file mode 100644 index 000000000..9043dbb4e --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionEmpty.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnAddressCollection xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" \/>","ContentHeaders":[{"Key":"Content-Length","Value":["200"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService14\/ReturnAddressCollection?count=0","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.1.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.1.txt new file mode 100644 index 000000000..9c61265a1 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/ReturnAddressCollection?count=3"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.2.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.2.txt new file mode 100644 index 000000000..9d53bf48d --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionMultipleElements.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnAddressCollection xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><element m:type=\"NorthwindModel.Address\"><City>Oslo<\/City><Region>Oslo<\/Region><PostalCode>1234<\/PostalCode><Country>Norway<\/Country><\/element><element m:type=\"NorthwindModel.Address\"><City>Oslo<\/City><Region>Oslo<\/Region><PostalCode>1234<\/PostalCode><Country>Norway<\/Country><\/element><element m:type=\"NorthwindModel.Address\"><City>Oslo<\/City><Region>Oslo<\/Region><PostalCode>1234<\/PostalCode><Country>Norway<\/Country><\/element><\/ReturnAddressCollection>","ContentHeaders":[{"Key":"Content-Length","Value":["653"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService10\/ReturnAddressCollection?count=3","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.1.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.1.txt new file mode 100644 index 000000000..f948afa3c --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/ReturnAddressCollection?count=1"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.2.txt b/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.2.txt new file mode 100644 index 000000000..338fc2751 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithComplexTypeCollectionSingleElement.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnAddressCollection xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><element m:type=\"NorthwindModel.Address\"><City>Oslo<\/City><Region>Oslo<\/Region><PostalCode>1234<\/PostalCode><Country>Norway<\/Country><\/element><\/ReturnAddressCollection>","ContentHeaders":[{"Key":"Content-Length","Value":["367"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService8\/ReturnAddressCollection?count=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithDateTime.1.txt b/MockData/FunctionTests.FunctionWithDateTime.1.txt new file mode 100644 index 000000000..33d39d5c1 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithDateTime.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/PassThroughDateTime?dateTime=datetime%272013-01-01T12%3A13%3A14%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithDateTime.2.txt b/MockData/FunctionTests.FunctionWithDateTime.2.txt new file mode 100644 index 000000000..6d2fcfa9e --- /dev/null +++ b/MockData/FunctionTests.FunctionWithDateTime.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughDateTime xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.DateTime\">2013-01-01T12:13:14<\/d:PassThroughDateTime>","ContentHeaders":[{"Key":"Content-Length","Value":["263"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService13\/PassThroughDateTime?dateTime=datetime%272013-01-01T12%3A13%3A14%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithGuid.1.txt b/MockData/FunctionTests.FunctionWithGuid.1.txt new file mode 100644 index 000000000..eeddb6535 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithGuid.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/PassThroughGuid?guid=guid%278da69ead-c2dc-4e1e-a588-ba9eb6aa7294%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithGuid.2.txt b/MockData/FunctionTests.FunctionWithGuid.2.txt new file mode 100644 index 000000000..92e6ee533 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithGuid.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughGuid xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Guid\">8da69ead-c2dc-4e1e-a588-ba9eb6aa7294<\/d:PassThroughGuid>","ContentHeaders":[{"Key":"Content-Length","Value":["268"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/PassThroughGuid?guid=guid%278da69ead-c2dc-4e1e-a588-ba9eb6aa7294%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.1.txt b/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.1.txt new file mode 100644 index 000000000..6cd01470c --- /dev/null +++ b/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/ReturnIntCollection?count=3"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.2.txt b/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.2.txt new file mode 100644 index 000000000..06572ab17 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithIntCollectionMultipleElements.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnIntCollection xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><element m:type=\"Edm.Int32\">1<\/element><element m:type=\"Edm.Int32\">2<\/element><element m:type=\"Edm.Int32\">3<\/element><\/ReturnIntCollection>","ContentHeaders":[{"Key":"Content-Length","Value":["333"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService9\/ReturnIntCollection?count=3","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.1.txt b/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.1.txt new file mode 100644 index 000000000..90d210caa --- /dev/null +++ b/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/ReturnIntCollection?count=1"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.2.txt b/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.2.txt new file mode 100644 index 000000000..7086a52c8 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithIntCollectionSingleElement.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnIntCollection xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><element m:type=\"Edm.Int32\">1<\/element><\/ReturnIntCollection>","ContentHeaders":[{"Key":"Content-Length","Value":["255"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService12\/ReturnIntCollection?count=1","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithLocalDateTime.1.txt b/MockData/FunctionTests.FunctionWithLocalDateTime.1.txt new file mode 100644 index 000000000..54408867c --- /dev/null +++ b/MockData/FunctionTests.FunctionWithLocalDateTime.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/PassThroughDateTime?dateTime=datetime%272018-05-20T20%3A30%3A40.6779345%2B02%3A00%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithLocalDateTime.2.txt b/MockData/FunctionTests.FunctionWithLocalDateTime.2.txt new file mode 100644 index 000000000..b4325163a --- /dev/null +++ b/MockData/FunctionTests.FunctionWithLocalDateTime.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughDateTime xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.DateTime\">2018-05-20T20:30:40.6779345+02:00<\/d:PassThroughDateTime>","ContentHeaders":[{"Key":"Content-Length","Value":["277"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/PassThroughDateTime?dateTime=datetime%272018-05-20T20%3A30%3A40.6779345%2B02%3A00%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:32:00 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithLong.1.txt b/MockData/FunctionTests.FunctionWithLong.1.txt new file mode 100644 index 000000000..042ba2aa4 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithLong.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/PassThroughLong?number=1L"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithLong.2.txt b/MockData/FunctionTests.FunctionWithLong.2.txt new file mode 100644 index 000000000..7500f915a --- /dev/null +++ b/MockData/FunctionTests.FunctionWithLong.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:PassThroughLong xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Int64\">1<\/d:PassThroughLong>","ContentHeaders":[{"Key":"Content-Length","Value":["234"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/PassThroughLong?number=1L","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:20 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithString.1.txt b/MockData/FunctionTests.FunctionWithString.1.txt new file mode 100644 index 000000000..34ded2697 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithString.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/ReturnString?text=%27abc%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithString.2.txt b/MockData/FunctionTests.FunctionWithString.2.txt new file mode 100644 index 000000000..1afe7159c --- /dev/null +++ b/MockData/FunctionTests.FunctionWithString.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ReturnString xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\">abc<\/d:ReturnString>","ContentHeaders":[{"Key":"Content-Length","Value":["211"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/ReturnString?text=%27abc%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithStringAsCollection.1.txt b/MockData/FunctionTests.FunctionWithStringAsCollection.1.txt new file mode 100644 index 000000000..9a4dcc8c3 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithStringAsCollection.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/ReturnString?text=%27abc%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithStringAsCollection.2.txt b/MockData/FunctionTests.FunctionWithStringAsCollection.2.txt new file mode 100644 index 000000000..72eb8fd93 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithStringAsCollection.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ReturnString xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\">abc<\/d:ReturnString>","ContentHeaders":[{"Key":"Content-Length","Value":["211"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/ReturnString?text=%27abc%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithStringToInt.1.txt b/MockData/FunctionTests.FunctionWithStringToInt.1.txt new file mode 100644 index 000000000..d806ca935 --- /dev/null +++ b/MockData/FunctionTests.FunctionWithStringToInt.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/ParseInt?number=%271%27"} \ No newline at end of file diff --git a/MockData/FunctionTests.FunctionWithStringToInt.2.txt b/MockData/FunctionTests.FunctionWithStringToInt.2.txt new file mode 100644 index 000000000..b21778e2a --- /dev/null +++ b/MockData/FunctionTests.FunctionWithStringToInt.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ParseInt xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" m:type=\"Edm.Int32\">1<\/d:ParseInt>","ContentHeaders":[{"Key":"Content-Length","Value":["220"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService11\/ParseInt?number=%271%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.1.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.1.txt new file mode 100644 index 000000000..39642b525 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.2.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.2.txt new file mode 100644 index 000000000..7ac4f5090 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null},{\"ID\":2,\"Title\":\"Inferno of Retribution\",\"Year\":2005,\"DueDate\":null},{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["269"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.3.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.3.txt new file mode 100644 index 000000000..d9195fa7b --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$skip=1&$top=1&$orderby=ID%20desc"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.4.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.4.txt new file mode 100644 index 000000000..6a60f9541 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.4.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["138"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$skip=1&$top=1&$orderby=ID%20desc","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.5.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.5.txt new file mode 100644 index 000000000..e878e2393 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$filter=ID%20gt%205&$skip=1&$top=1&$orderby=ID%20desc"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_dynamic.6.txt b/MockData/FunctionV4Tests.Get_product_placements_dynamic.6.txt new file mode 100644 index 000000000..81f9b2501 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_dynamic.6.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["75"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$filter=ID%20gt%205&$skip=1&$top=1&$orderby=ID%20desc","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.1.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.1.txt new file mode 100644 index 000000000..39642b525 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.2.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.2.txt new file mode 100644 index 000000000..7ac4f5090 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null},{\"ID\":2,\"Title\":\"Inferno of Retribution\",\"Year\":2005,\"DueDate\":null},{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["269"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.3.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.3.txt new file mode 100644 index 000000000..d9195fa7b --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$skip=1&$top=1&$orderby=ID%20desc"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.4.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.4.txt new file mode 100644 index 000000000..6a60f9541 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.4.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["138"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$skip=1&$top=1&$orderby=ID%20desc","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.5.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.5.txt new file mode 100644 index 000000000..e878e2393 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$filter=ID%20gt%205&$skip=1&$top=1&$orderby=ID%20desc"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_typed.6.txt b/MockData/FunctionV4Tests.Get_product_placements_typed.6.txt new file mode 100644 index 000000000..81f9b2501 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_typed.6.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["75"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$filter=ID%20gt%205&$skip=1&$top=1&$orderby=ID%20desc","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.1.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.1.txt new file mode 100644 index 000000000..39642b525 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.2.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.2.txt new file mode 100644 index 000000000..7ac4f5090 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null},{\"ID\":2,\"Title\":\"Inferno of Retribution\",\"Year\":2005,\"DueDate\":null},{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["269"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(4)\/Default.Placements()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.3.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.3.txt new file mode 100644 index 000000000..78abc5070 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$top=1&$orderby=ID%20desc&$skip=1"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.4.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.4.txt new file mode 100644 index 000000000..f593221b7 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.4.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":null}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["138"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$top=1&$orderby=ID%20desc&$skip=1","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.5.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.5.txt new file mode 100644 index 000000000..3b5e17800 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$top=1&$orderby=ID%20desc&$skip=1&$filter=ID%20gt%205"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_product_placements_untyped.6.txt b/MockData/FunctionV4Tests.Get_product_placements_untyped.6.txt new file mode 100644 index 000000000..d0b1ce7ec --- /dev/null +++ b/MockData/FunctionV4Tests.Get_product_placements_untyped.6.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Movies\",\"value\":[]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["75"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(5)\/Default.Placements()?$top=1&$orderby=ID%20desc&$skip=1&$filter=ID%20gt%205","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.1.txt new file mode 100644 index 000000000..0a7ebfce8 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.2.txt new file mode 100644 index 000000000..cac9b21cb --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":998.10569127933388}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["95"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.1.txt new file mode 100644 index 000000000..0a7ebfce8 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.2.txt new file mode 100644 index 000000000..2f9542aa8 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":986.45172872881017}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["95"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.1.txt new file mode 100644 index 000000000..8b978abf5 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.2.txt new file mode 100644 index 000000000..7062d5a35 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":998.10569127933388}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal; odata.streaming=true"]},{"Key":"Content-Length","Value":["95"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensive()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.1.txt new file mode 100644 index 000000000..0121db9d3 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.1.txt @@ -0,0 +1 @@ +{"Content":"--batch_ec84ccdd-b000-4227-ad68-7d22254e1c97\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/localhost\/functions\/Products\/Default.MostExpensive() HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_ec84ccdd-b000-4227-ad68-7d22254e1c97--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_ec84ccdd-b000-4227-ad68-7d22254e1c97"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/functions\/$batch"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.2.txt new file mode 100644 index 000000000..3b5beb14c --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensive_product_untyped_batch.2.txt @@ -0,0 +1 @@ +{"Content":"--batchresponse_1d6dffa7-bfc3-493f-b20a-9e71be65ecec\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aContent-Type: application\/json; odata.metadata=minimal; odata.streaming=true\u000d\u000aOData-Version: 4.0\u000d\u000a\u000d\u000a{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":998.10569127933388}\u000d\u000a--batchresponse_1d6dffa7-bfc3-493f-b20a-9e71be65ecec--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_1d6dffa7-bfc3-493f-b20a-9e71be65ecec"]},{"Key":"Content-Length","Value":["393"]}],"RequestUri":"http:\/\/localhost\/functions\/$batch","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.1.txt new file mode 100644 index 000000000..3bc4abe6a --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.2.txt new file mode 100644 index 000000000..8d86965a6 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["590"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.1.txt new file mode 100644 index 000000000..3bc4abe6a --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.2.txt new file mode 100644 index 000000000..8d86965a6 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["590"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.1.txt new file mode 100644 index 000000000..3bc4abe6a --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.2.txt new file mode 100644 index 000000000..8d86965a6 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_typed_array.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["590"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.1.txt new file mode 100644 index 000000000..3bc4abe6a --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.2.txt new file mode 100644 index 000000000..8d86965a6 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_most_expensives_products_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["590"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.MostExpensives()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.1.txt new file mode 100644 index 000000000..7613cadc0 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.2.txt new file mode 100644 index 000000000..cf1f08f05 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Int32\",\"value\":86}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["78"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.1.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.1.txt new file mode 100644 index 000000000..7613cadc0 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.2.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.2.txt new file mode 100644 index 000000000..cf1f08f05 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Int32\",\"value\":86}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["78"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.1.txt new file mode 100644 index 000000000..e6e356b5b --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.2.txt new file mode 100644 index 000000000..55adb929a --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_rank_of_the_product_price_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Int32\",\"value\":86}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal; odata.streaming=true"]},{"Key":"Content-Length","Value":["78"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.GetPriceRank()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.1.txt new file mode 100644 index 000000000..306eebe9c --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state=%27WA%27)"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.2.txt new file mode 100644 index 000000000..269768f09 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":9.728720970325508}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["94"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state=%27WA%27)","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.1.txt new file mode 100644 index 000000000..6490ce1c5 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.2.txt new file mode 100644 index 000000000..6b225e165 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":7.5}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["80"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.1.txt new file mode 100644 index 000000000..6490ce1c5 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.2.txt new file mode 100644 index 000000000..6b225e165 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":7.5}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["80"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.1.txt new file mode 100644 index 000000000..6490ce1c5 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.2.txt new file mode 100644 index 000000000..6b225e165 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_rate_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":7.5}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["80"]}],"RequestUri":"http:\/\/localhost\/functions\/GetSalesTaxRate(state=%27CA%27)","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_typed.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_typed.1.txt new file mode 100644 index 000000000..306eebe9c --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state=%27WA%27)"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_typed.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_typed.2.txt new file mode 100644 index 000000000..269768f09 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":9.728720970325508}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["94"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state=%27WA%27)","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.1.txt new file mode 100644 index 000000000..006e5efc0 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state='WA')"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.2.txt new file mode 100644 index 000000000..5c506e124 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_sales_tax_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Edm.Double\",\"value\":9.728720970325508}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal; odata.streaming=true"]},{"Key":"Content-Length","Value":["94"]}],"RequestUri":"http:\/\/localhost\/functions\/Products(33)\/Default.CalculateGeneralSalesTax(state='WA')","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.1.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.1.txt new file mode 100644 index 000000000..7c95bbc95 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.2.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.2.txt new file mode 100644 index 000000000..1809154bd --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_dynamic.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751},{\"Id\":97,\"Name\":\"Product 97\",\"Price\":955.24344125541086},{\"Id\":69,\"Name\":\"Product 69\",\"Price\":945.02950643423458},{\"Id\":47,\"Name\":\"Product 47\",\"Price\":943.72585273521292},{\"Id\":88,\"Name\":\"Product 88\",\"Price\":930.76064480969717},{\"Id\":49,\"Name\":\"Product 49\",\"Price\":928.01283063740141},{\"Id\":50,\"Name\":\"Product 50\",\"Price\":905.508950308668},{\"Id\":38,\"Name\":\"Product 38\",\"Price\":880.34248113648152}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["644"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.1.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.1.txt new file mode 100644 index 000000000..7c95bbc95 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.2.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.2.txt new file mode 100644 index 000000000..1809154bd --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751},{\"Id\":97,\"Name\":\"Product 97\",\"Price\":955.24344125541086},{\"Id\":69,\"Name\":\"Product 69\",\"Price\":945.02950643423458},{\"Id\":47,\"Name\":\"Product 47\",\"Price\":943.72585273521292},{\"Id\":88,\"Name\":\"Product 88\",\"Price\":930.76064480969717},{\"Id\":49,\"Name\":\"Product 49\",\"Price\":928.01283063740141},{\"Id\":50,\"Name\":\"Product 50\",\"Price\":905.508950308668},{\"Id\":38,\"Name\":\"Product 38\",\"Price\":880.34248113648152}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["644"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.1.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.1.txt new file mode 100644 index 000000000..7c95bbc95 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.2.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.2.txt new file mode 100644 index 000000000..1809154bd --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_typed_array.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751},{\"Id\":97,\"Name\":\"Product 97\",\"Price\":955.24344125541086},{\"Id\":69,\"Name\":\"Product 69\",\"Price\":945.02950643423458},{\"Id\":47,\"Name\":\"Product 47\",\"Price\":943.72585273521292},{\"Id\":88,\"Name\":\"Product 88\",\"Price\":930.76064480969717},{\"Id\":49,\"Name\":\"Product 49\",\"Price\":928.01283063740141},{\"Id\":50,\"Name\":\"Product 50\",\"Price\":905.508950308668},{\"Id\":38,\"Name\":\"Product 38\",\"Price\":880.34248113648152}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["644"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.1.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.1.txt new file mode 100644 index 000000000..7c95bbc95 --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()"} \ No newline at end of file diff --git a/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.2.txt b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.2.txt new file mode 100644 index 000000000..1809154bd --- /dev/null +++ b/MockData/FunctionV4Tests.Get_the_top_10_expensive_products_untyped.2.txt @@ -0,0 +1 @@ +{"Content":"{\"@odata.context\":\"http:\/\/localhost\/functions\/$metadata#Products\",\"value\":[{\"Id\":72,\"Name\":\"Product 72\",\"Price\":998.10569127933388},{\"Id\":28,\"Name\":\"Product 28\",\"Price\":971.32476371309008},{\"Id\":34,\"Name\":\"Product 34\",\"Price\":966.42206328288751},{\"Id\":97,\"Name\":\"Product 97\",\"Price\":955.24344125541086},{\"Id\":69,\"Name\":\"Product 69\",\"Price\":945.02950643423458},{\"Id\":47,\"Name\":\"Product 47\",\"Price\":943.72585273521292},{\"Id\":88,\"Name\":\"Product 88\",\"Price\":930.76064480969717},{\"Id\":49,\"Name\":\"Product 49\",\"Price\":928.01283063740141},{\"Id\":50,\"Name\":\"Product 50\",\"Price\":905.508950308668},{\"Id\":38,\"Name\":\"Product 38\",\"Price\":880.34248113648152}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["644"]}],"RequestUri":"http:\/\/localhost\/functions\/Products\/Default.Top10()","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.Insert.1.txt b/MockData/InsertDynamicTests.Insert.1.txt new file mode 100644 index 000000000..0c11d754c --- /dev/null +++ b/MockData/InsertDynamicTests.Insert.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.Insert.2.txt b/MockData/InsertDynamicTests.Insert.2.txt new file mode 100644 index 000000000..8e738d9d8 --- /dev/null +++ b/MockData/InsertDynamicTests.Insert.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/Products(1058)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1058)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1058)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1058)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1058)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1058<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService155\/Products(1058)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertAutogeneratedID.1.txt b/MockData/InsertDynamicTests.InsertAutogeneratedID.1.txt new file mode 100644 index 000000000..9f4258ed2 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertAutogeneratedID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertAutogeneratedID.2.txt b/MockData/InsertDynamicTests.InsertAutogeneratedID.2.txt new file mode 100644 index 000000000..6ebec134a --- /dev/null +++ b/MockData/InsertDynamicTests.InsertAutogeneratedID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/Products(1057)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1057)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1057)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1057)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1057)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1057<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService154\/Products(1057)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertExpando.1.txt b/MockData/InsertDynamicTests.InsertExpando.1.txt new file mode 100644 index 000000000..2fa772968 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertExpando.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test9<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertExpando.2.txt b/MockData/InsertDynamicTests.InsertExpando.2.txt new file mode 100644 index 000000000..67d964511 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertExpando.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/Products(1059)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1059)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1059)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1059)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1059)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1059<\/d:ProductID><d:ProductName>Test9<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService156\/Products(1059)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.1.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.1.txt new file mode 100644 index 000000000..be94b69c6 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test5<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.2.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.2.txt new file mode 100644 index 000000000..0d4c948f7 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories(1055)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1055)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1055)\/Products\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1055<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories(1055)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.3.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.3.txt new file mode 100644 index 000000000..50f35fc96 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories(1055)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:31Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test6<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1050"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.4.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.4.txt new file mode 100644 index 000000000..8981a86b7 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Products(1056)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1056)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1056)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1056)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1056)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1056<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1055<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Products(1056)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.5.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.5.txt new file mode 100644 index 000000000..17e64ccec --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.6.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.6.txt new file mode 100644 index 000000000..ad120dad8 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories(1055)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1055)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1055)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories(1055)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:31Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1055)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Products(1056)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1056)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1056)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1056)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1056)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1056<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1055<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1055<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService153\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.1.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.1.txt new file mode 100644 index 000000000..437a4110d --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.2.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.2.txt new file mode 100644 index 000000000..9d531c3dd --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories(1060)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1060)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1060)\/Products\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1060<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories(1060)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.3.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.3.txt new file mode 100644 index 000000000..c0a9326b5 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1060<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["870"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.4.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.4.txt new file mode 100644 index 000000000..f5c48efc0 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Products(1061)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1061)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1061)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1061)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1061)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1061<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1060<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Products(1061)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.5.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.5.txt new file mode 100644 index 000000000..4d868d6c6 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertProductWithCategoryByID.6.txt b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.6.txt new file mode 100644 index 000000000..07c65b270 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertProductWithCategoryByID.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories(1060)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1060)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1060)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories(1060)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:32Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1060)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Products(1061)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1061)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1061)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1061)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1061)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1061<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1060<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1060<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService157\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertShip.1.txt b/MockData/InsertDynamicTests.InsertShip.1.txt new file mode 100644 index 000000000..8c307681d --- /dev/null +++ b/MockData/InsertDynamicTests.InsertShip.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:32Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/Transport"} \ No newline at end of file diff --git a/MockData/InsertDynamicTests.InsertShip.2.txt b/MockData/InsertDynamicTests.InsertShip.2.txt new file mode 100644 index 000000000..d1639b2b9 --- /dev/null +++ b/MockData/InsertDynamicTests.InsertShip.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/Transport(1062)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1062)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:32Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1062<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:31 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService158\/Transport(1062)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.Insert.1.txt b/MockData/InsertTests.Insert.1.txt new file mode 100644 index 000000000..136ed2726 --- /dev/null +++ b/MockData/InsertTests.Insert.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.Insert.2.txt b/MockData/InsertTests.Insert.2.txt new file mode 100644 index 000000000..4c1897b64 --- /dev/null +++ b/MockData/InsertTests.Insert.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products(1101)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1101)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1101)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1101)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1101)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1101<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products(1101)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertAutogeneratedID.1.txt b/MockData/InsertTests.InsertAutogeneratedID.1.txt new file mode 100644 index 000000000..910725b40 --- /dev/null +++ b/MockData/InsertTests.InsertAutogeneratedID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertAutogeneratedID.2.txt b/MockData/InsertTests.InsertAutogeneratedID.2.txt new file mode 100644 index 000000000..10a05a8f7 --- /dev/null +++ b/MockData/InsertTests.InsertAutogeneratedID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/Products(1098)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1098)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1098)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1098)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1098)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1098<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService255\/Products(1098)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertExpando.1.txt b/MockData/InsertTests.InsertExpando.1.txt new file mode 100644 index 000000000..78db96e39 --- /dev/null +++ b/MockData/InsertTests.InsertExpando.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test9<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertExpando.2.txt b/MockData/InsertTests.InsertExpando.2.txt new file mode 100644 index 000000000..6b42f9773 --- /dev/null +++ b/MockData/InsertTests.InsertExpando.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/Products(1100)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1100)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1100)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1100)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1100)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1100<\/d:ProductID><d:ProductName>Test9<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService257\/Products(1100)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.1.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.1.txt new file mode 100644 index 000000000..c39e6cc6c --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test5<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.2.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.2.txt new file mode 100644 index 000000000..7a6f48d63 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories(1105)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1105)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1105)\/Products\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1105<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories(1105)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.3.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.3.txt new file mode 100644 index 000000000..4907fd305 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories(1105)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test6<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1050"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.4.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.4.txt new file mode 100644 index 000000000..1dca51db1 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Products(1106)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1106)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1106)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1106)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1106)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1106<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1105<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Products(1106)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.5.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.5.txt new file mode 100644 index 000000000..cee9d092c --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByAssociation.6.txt b/MockData/InsertTests.InsertProductWithCategoryByAssociation.6.txt new file mode 100644 index 000000000..a92078854 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories(1105)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1105)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1105)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories(1105)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1105)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Products(1106)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1106)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1106)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1106)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1106)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1106<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1105<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1105<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService261\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.1.txt b/MockData/InsertTests.InsertProductWithCategoryByID.1.txt new file mode 100644 index 000000000..893e454be --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.2.txt b/MockData/InsertTests.InsertProductWithCategoryByID.2.txt new file mode 100644 index 000000000..40d34660d --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories(1102)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1102)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1102)\/Products\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1102<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories(1102)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.3.txt b/MockData/InsertTests.InsertProductWithCategoryByID.3.txt new file mode 100644 index 000000000..0b05cdb24 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1102<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["870"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.4.txt b/MockData/InsertTests.InsertProductWithCategoryByID.4.txt new file mode 100644 index 000000000..bf4fb9779 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Products(1103)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1103)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1103)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1103)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1103)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1103<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1102<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Products(1103)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.5.txt b/MockData/InsertTests.InsertProductWithCategoryByID.5.txt new file mode 100644 index 000000000..b392f5b0b --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertProductWithCategoryByID.6.txt b/MockData/InsertTests.InsertProductWithCategoryByID.6.txt new file mode 100644 index 000000000..ca886d8f8 --- /dev/null +++ b/MockData/InsertTests.InsertProductWithCategoryByID.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories(1102)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1102)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1102)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories(1102)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:37Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1102)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Products(1103)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1103)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1103)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1103)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1103)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1103<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1102<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1102<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService259\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTests.InsertShip.1.txt b/MockData/InsertTests.InsertShip.1.txt new file mode 100644 index 000000000..90daeefd1 --- /dev/null +++ b/MockData/InsertTests.InsertShip.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/Transport"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertShip.2.txt b/MockData/InsertTests.InsertShip.2.txt new file mode 100644 index 000000000..696c5c8e5 --- /dev/null +++ b/MockData/InsertTests.InsertShip.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/Transport(1099)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1099)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1099<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService256\/Transport(1099)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTests.InsertWithValueConversion.1.txt b/MockData/InsertTests.InsertWithValueConversion.1.txt new file mode 100644 index 000000000..02de38bd2 --- /dev/null +++ b/MockData/InsertTests.InsertWithValueConversion.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/Products"} \ No newline at end of file diff --git a/MockData/InsertTests.InsertWithValueConversion.2.txt b/MockData/InsertTests.InsertWithValueConversion.2.txt new file mode 100644 index 000000000..0fd44e276 --- /dev/null +++ b/MockData/InsertTests.InsertWithValueConversion.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/Products(1104)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1104)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1104)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1104)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1104)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1104<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService260\/Products(1104)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.Insert.1.txt b/MockData/InsertTypedTests.Insert.1.txt new file mode 100644 index 000000000..5c71707a8 --- /dev/null +++ b/MockData/InsertTypedTests.Insert.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.Insert.2.txt b/MockData/InsertTypedTests.Insert.2.txt new file mode 100644 index 000000000..bd2a37eff --- /dev/null +++ b/MockData/InsertTypedTests.Insert.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/Products(1182)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1182)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1182)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1182)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1182)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1182<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService317\/Products(1182)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertAutogeneratedID.1.txt b/MockData/InsertTypedTests.InsertAutogeneratedID.1.txt new file mode 100644 index 000000000..8271472a9 --- /dev/null +++ b/MockData/InsertTypedTests.InsertAutogeneratedID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertAutogeneratedID.2.txt b/MockData/InsertTypedTests.InsertAutogeneratedID.2.txt new file mode 100644 index 000000000..5b6465815 --- /dev/null +++ b/MockData/InsertTypedTests.InsertAutogeneratedID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products(1177)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1177)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1177)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1177)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1177)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1177<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products(1177)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.1.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.1.txt new file mode 100644 index 000000000..57c47b088 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test7<\/d:CategoryName>\u000d\u000a <d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["814"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.2.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.2.txt new file mode 100644 index 000000000..80d5c4f02 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories(1179)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1179)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1179)\/Products\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1179<\/d:CategoryID><d:CategoryName>Test7<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1150"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories(1179)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.3.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.3.txt new file mode 100644 index 000000000..f6b868807 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories?$filter=CategoryName%20eq%20%27Test7%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.4.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.4.txt new file mode 100644 index 000000000..c0c6f4107 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsBytes.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories(1179)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1179)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1179)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories(1179)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1179)\/Products\" \/><author><name \/><\/author><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1179<\/d:CategoryID><d:CategoryName>Test7<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1614"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService314\/Categories?$filter=CategoryName%20eq%20%27Test7%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.1.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.1.txt new file mode 100644 index 000000000..0a3750f58 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test7<\/d:CategoryName>\u000d\u000a <d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["814"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.2.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.2.txt new file mode 100644 index 000000000..79850ff3a --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories(1178)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1178)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1178)\/Products\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1178<\/d:CategoryID><d:CategoryName>Test7<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1150"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories(1178)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.3.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.3.txt new file mode 100644 index 000000000..74ee52499 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories?$filter=CategoryName%20eq%20%27Test7%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.4.txt b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.4.txt new file mode 100644 index 000000000..3e9d19d31 --- /dev/null +++ b/MockData/InsertTypedTests.InsertCategoryWithPictureAsString.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories(1178)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1178)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1178)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories(1178)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1178)\/Products\" \/><author><name \/><\/author><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1178<\/d:CategoryID><d:CategoryName>Test7<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\">AQIDBAU=<\/d:Picture><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1614"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService313\/Categories?$filter=CategoryName%20eq%20%27Test7%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.1.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.1.txt new file mode 100644 index 000000000..ac05110f3 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test5<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.2.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.2.txt new file mode 100644 index 000000000..151346006 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories(1173)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1173)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1173)\/Products\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1173<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories(1173)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.3.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.3.txt new file mode 100644 index 000000000..59c98ea53 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories(1173)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test6<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1050"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.4.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.4.txt new file mode 100644 index 000000000..5e3af02d4 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Products(1174)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1174)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1174)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1174)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1174)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1174<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1173<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Products(1174)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.5.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.5.txt new file mode 100644 index 000000000..e723385fd --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.6.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.6.txt new file mode 100644 index 000000000..849eecc02 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories(1173)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1173)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1173)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories(1173)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1173)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Products(1174)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1174)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1174)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1174)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1174)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1174<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1173<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1173<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService310\/Categories?$filter=CategoryName%20eq%20%27Test5%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.1.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.1.txt new file mode 100644 index 000000000..13628b99c --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.2.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.2.txt new file mode 100644 index 000000000..e8afed40f --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories(1175)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1175)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1175)\/Products\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1175<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories(1175)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.3.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.3.txt new file mode 100644 index 000000000..6e278fb8f --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1175<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["870"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.4.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.4.txt new file mode 100644 index 000000000..d6b7bf2d7 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Products(1176)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1176)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1176)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1176)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1176)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1176<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1175<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Products(1176)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.5.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.5.txt new file mode 100644 index 000000000..bd40e8191 --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertProductWithCategoryByID.6.txt b/MockData/InsertTypedTests.InsertProductWithCategoryByID.6.txt new file mode 100644 index 000000000..5a45fea9e --- /dev/null +++ b/MockData/InsertTypedTests.InsertProductWithCategoryByID.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories(1175)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1175)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1175)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories(1175)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:45Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1175)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Products(1176)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1176)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1176)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1176)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1176)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1176<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1175<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1175<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3052"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService311\/Categories?$filter=CategoryName%20eq%20%27Test3%27&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertShip.1.txt b/MockData/InsertTypedTests.InsertShip.1.txt new file mode 100644 index 000000000..633e2c873 --- /dev/null +++ b/MockData/InsertTypedTests.InsertShip.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <d:TransportID m:type=\"Edm.Int32\">0<\/d:TransportID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["802"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/Transport"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertShip.2.txt b/MockData/InsertTypedTests.InsertShip.2.txt new file mode 100644 index 000000000..3094422d0 --- /dev/null +++ b/MockData/InsertTypedTests.InsertShip.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/Transport(1180)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1180)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1180<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService315\/Transport(1180)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertWithMappedColumn.1.txt b/MockData/InsertTypedTests.InsertWithMappedColumn.1.txt new file mode 100644 index 000000000..b3e1adbe5 --- /dev/null +++ b/MockData/InsertTypedTests.InsertWithMappedColumn.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">0<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName>EnglishTest<\/d:EnglishName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["953"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertWithMappedColumn.2.txt b/MockData/InsertTypedTests.InsertWithMappedColumn.2.txt new file mode 100644 index 000000000..33bbe6aaa --- /dev/null +++ b/MockData/InsertTypedTests.InsertWithMappedColumn.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/Products(1181)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1181)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1181)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1181)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1181)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1181<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName>EnglishTest<\/d:EnglishName><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1754"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService316\/Products(1181)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertWithSelect.1.txt b/MockData/InsertTypedTests.InsertWithSelect.1.txt new file mode 100644 index 000000000..8271472a9 --- /dev/null +++ b/MockData/InsertTypedTests.InsertWithSelect.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:45Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products"} \ No newline at end of file diff --git a/MockData/InsertTypedTests.InsertWithSelect.2.txt b/MockData/InsertTypedTests.InsertWithSelect.2.txt new file mode 100644 index 000000000..802c47003 --- /dev/null +++ b/MockData/InsertTypedTests.InsertWithSelect.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products(1177)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1177)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1177)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1177)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1177)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:45Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1177<\/d:ProductID><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService312\/Products(1177)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.1.txt b/MockData/LinkDynamicTests.LinkEntry.1.txt new file mode 100644 index 000000000..3b752f817 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Categories"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.2.txt b/MockData/LinkDynamicTests.LinkEntry.2.txt new file mode 100644 index 000000000..0cc0fb24c --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Categories(1005)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1005)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1005)\/Products\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1005<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Categories(1005)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.3.txt b/MockData/LinkDynamicTests.LinkEntry.3.txt new file mode 100644 index 000000000..1da572d19 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["750"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.4.txt b/MockData/LinkDynamicTests.LinkEntry.4.txt new file mode 100644 index 000000000..6eb1dbac0 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1006)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1006)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1006)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1006)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1006)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1006<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1738"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1006)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.5.txt b/MockData/LinkDynamicTests.LinkEntry.5.txt new file mode 100644 index 000000000..9df7f1cd1 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Categories(1005)<\/uri>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/xml"]},{"Key":"Content-Length","Value":["198"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1006)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.6.txt b/MockData/LinkDynamicTests.LinkEntry.6.txt new file mode 100644 index 000000000..4e370169e --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1006)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.7.txt b/MockData/LinkDynamicTests.LinkEntry.7.txt new file mode 100644 index 000000000..0a0372524 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.LinkEntry.8.txt b/MockData/LinkDynamicTests.LinkEntry.8.txt new file mode 100644 index 000000000..33b2df550 --- /dev/null +++ b/MockData/LinkDynamicTests.LinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products(1006)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1006)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1006)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1006)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1006)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1006<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1005<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1981"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService4\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.1.txt b/MockData/LinkDynamicTests.UnlinkEntry.1.txt new file mode 100644 index 000000000..887a0677d --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Categories"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.2.txt b/MockData/LinkDynamicTests.UnlinkEntry.2.txt new file mode 100644 index 000000000..690cf11cc --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Categories(1007)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1007)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1007)\/Products\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1007<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Categories(1007)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.3.txt b/MockData/LinkDynamicTests.UnlinkEntry.3.txt new file mode 100644 index 000000000..100963512 --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1007<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.4.txt b/MockData/LinkDynamicTests.UnlinkEntry.4.txt new file mode 100644 index 000000000..891a8ebb7 --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1008)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1008)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1008)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1008)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1008<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1007<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.5.txt b/MockData/LinkDynamicTests.UnlinkEntry.5.txt new file mode 100644 index 000000000..e3abb5cbe --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.6.txt b/MockData/LinkDynamicTests.UnlinkEntry.6.txt new file mode 100644 index 000000000..1378da357 --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.7.txt b/MockData/LinkDynamicTests.UnlinkEntry.7.txt new file mode 100644 index 000000000..cdbfe38d1 --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkDynamicTests.UnlinkEntry.8.txt b/MockData/LinkDynamicTests.UnlinkEntry.8.txt new file mode 100644 index 000000000..cfffbe93a --- /dev/null +++ b/MockData/LinkDynamicTests.UnlinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1008)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1008)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1008)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1008)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1008<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1978"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.1.txt b/MockData/LinkTests.LinkEntry.1.txt new file mode 100644 index 000000000..dac178c1a --- /dev/null +++ b/MockData/LinkTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories"} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.2.txt b/MockData/LinkTests.LinkEntry.2.txt new file mode 100644 index 000000000..44584c262 --- /dev/null +++ b/MockData/LinkTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories(1003)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1003)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1003)\/Products\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories(1003)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.3.txt b/MockData/LinkTests.LinkEntry.3.txt new file mode 100644 index 000000000..3e9654c36 --- /dev/null +++ b/MockData/LinkTests.LinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:39Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["750"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products"} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.4.txt b/MockData/LinkTests.LinkEntry.4.txt new file mode 100644 index 000000000..cac8314e2 --- /dev/null +++ b/MockData/LinkTests.LinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1004)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1004)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1004)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1004)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1004<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1738"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.5.txt b/MockData/LinkTests.LinkEntry.5.txt new file mode 100644 index 000000000..772c21b7a --- /dev/null +++ b/MockData/LinkTests.LinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories(1003)<\/uri>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/xml"]},{"Key":"Content-Length","Value":["198"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.6.txt b/MockData/LinkTests.LinkEntry.6.txt new file mode 100644 index 000000000..4623bb378 --- /dev/null +++ b/MockData/LinkTests.LinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.7.txt b/MockData/LinkTests.LinkEntry.7.txt new file mode 100644 index 000000000..075904648 --- /dev/null +++ b/MockData/LinkTests.LinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkTests.LinkEntry.8.txt b/MockData/LinkTests.LinkEntry.8.txt new file mode 100644 index 000000000..a5acae97e --- /dev/null +++ b/MockData/LinkTests.LinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1004)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1004)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1004)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1004)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1004<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1981"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.1.txt b/MockData/LinkTests.UnlinkEntry.1.txt new file mode 100644 index 000000000..9cfc29925 --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories"} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.2.txt b/MockData/LinkTests.UnlinkEntry.2.txt new file mode 100644 index 000000000..c1affabdb --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories(1001)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1001)\/Products\" \/><title \/><updated>2018-05-20T18:36:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1001<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:37 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Categories(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.3.txt b/MockData/LinkTests.UnlinkEntry.3.txt new file mode 100644 index 000000000..5aa29f5cc --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:38Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1001<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products"} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.4.txt b/MockData/LinkTests.UnlinkEntry.4.txt new file mode 100644 index 000000000..3424ca438 --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:38Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1001<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:37 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.5.txt b/MockData/LinkTests.UnlinkEntry.5.txt new file mode 100644 index 000000000..6637e9367 --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.6.txt b/MockData/LinkTests.UnlinkEntry.6.txt new file mode 100644 index 000000000..d7eeecbaf --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.7.txt b/MockData/LinkTests.UnlinkEntry.7.txt new file mode 100644 index 000000000..be1bed38e --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkTests.UnlinkEntry.8.txt b/MockData/LinkTests.UnlinkEntry.8.txt new file mode 100644 index 000000000..22f503f26 --- /dev/null +++ b/MockData/LinkTests.UnlinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:39Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:39Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1978"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.1.txt b/MockData/LinkTypedTests.LinkEntry.1.txt new file mode 100644 index 000000000..c601c94fc --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Categories"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.2.txt b/MockData/LinkTypedTests.LinkEntry.2.txt new file mode 100644 index 000000000..86941af43 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Categories(1011)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1011)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1011)\/Products\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1011<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Categories(1011)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.3.txt b/MockData/LinkTypedTests.LinkEntry.3.txt new file mode 100644 index 000000000..87f37dbc9 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["750"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.4.txt b/MockData/LinkTypedTests.LinkEntry.4.txt new file mode 100644 index 000000000..9387faf23 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1012)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1012)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1012)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1012)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1012)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1012<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1738"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1012)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.5.txt b/MockData/LinkTypedTests.LinkEntry.5.txt new file mode 100644 index 000000000..6b5186311 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Categories(1011)<\/uri>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/xml"]},{"Key":"Content-Length","Value":["198"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1012)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.6.txt b/MockData/LinkTypedTests.LinkEntry.6.txt new file mode 100644 index 000000000..564cb5871 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1012)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.7.txt b/MockData/LinkTypedTests.LinkEntry.7.txt new file mode 100644 index 000000000..dc724f700 --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.LinkEntry.8.txt b/MockData/LinkTypedTests.LinkEntry.8.txt new file mode 100644 index 000000000..0bb39eb3e --- /dev/null +++ b/MockData/LinkTypedTests.LinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products(1012)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1012)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1012)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1012)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1012)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1012<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1011<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1981"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService7\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.1.txt b/MockData/LinkTypedTests.UnlinkEntry.1.txt new file mode 100644 index 000000000..bc738413a --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test4<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["753"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Categories"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.2.txt b/MockData/LinkTypedTests.UnlinkEntry.2.txt new file mode 100644 index 000000000..e02d21cb6 --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Categories(1009)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1009)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1009)\/Products\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1009<\/d:CategoryID><d:CategoryName>Test4<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1122"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Categories(1009)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.3.txt b/MockData/LinkTypedTests.UnlinkEntry.3.txt new file mode 100644 index 000000000..e3bcbbea7 --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:36:40Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1009<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.4.txt b/MockData/LinkTypedTests.UnlinkEntry.4.txt new file mode 100644 index 000000000..867ac5e9c --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products(1010)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1010)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1010)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1010)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1010)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1010<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1009<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products(1010)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.5.txt b/MockData/LinkTypedTests.UnlinkEntry.5.txt new file mode 100644 index 000000000..1c05328ce --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products(1010)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.6.txt b/MockData/LinkTypedTests.UnlinkEntry.6.txt new file mode 100644 index 000000000..3187e58b0 --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products(1010)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.7.txt b/MockData/LinkTypedTests.UnlinkEntry.7.txt new file mode 100644 index 000000000..1ebfdc9a0 --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products?$filter=ProductName%20eq%20%27Test5%27"} \ No newline at end of file diff --git a/MockData/LinkTypedTests.UnlinkEntry.8.txt b/MockData/LinkTypedTests.UnlinkEntry.8.txt new file mode 100644 index 000000000..64a13cd40 --- /dev/null +++ b/MockData/LinkTypedTests.UnlinkEntry.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:36:40Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products(1010)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1010)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1010)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1010)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1010)\/Supplier\" \/><title \/><updated>2018-05-20T18:36:40Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1010<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">0.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1978"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService6\/Products?$filter=ProductName%20eq%20%27Test5%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.1.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.1.txt new file mode 100644 index 000000000..2b1f8421d --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.10.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.10.txt new file mode 100644 index 000000000..707542bb9 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1159)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1159)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1159)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1160)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1160)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1160)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1160)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1160<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1159<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1159<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["2817"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.2.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.2.txt new file mode 100644 index 000000000..f317f38ac --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1159)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1159)\/Products\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1159<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.3.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.3.txt new file mode 100644 index 000000000..02a81ac32 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.4.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.4.txt new file mode 100644 index 000000000..f5cfeb5b4 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1160)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1160)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1160)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1160)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1160<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.5.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.5.txt new file mode 100644 index 000000000..75e52ac2f --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["895"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.6.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.6.txt new file mode 100644 index 000000000..b039923e9 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1160)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1160)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1160)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1160)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1160<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1159<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.7.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.7.txt new file mode 100644 index 000000000..c9772f926 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.8.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.8.txt new file mode 100644 index 000000000..810450083 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1160)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1160)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1160)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1160)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1160<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1159<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1761"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Products(1160)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.AddSingleAssociation.9.txt b/MockData/UpdateDynamicTests.AddSingleAssociation.9.txt new file mode 100644 index 000000000..2313d7038 --- /dev/null +++ b/MockData/UpdateDynamicTests.AddSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService300\/Categories(1159)?$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.1.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.1.txt new file mode 100644 index 000000000..4c41830d0 --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test6<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.10.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.10.txt new file mode 100644 index 000000000..43c1fcb1e --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1158)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1158)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1158)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1158)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1158<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1758"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.2.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.2.txt new file mode 100644 index 000000000..05026e866 --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Categories(1157)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1157)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1157)\/Products\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1157<\/d:CategoryID><d:CategoryName>Test6<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Categories(1157)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.3.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.3.txt new file mode 100644 index 000000000..d50b592ec --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Categories(1157)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test7<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1050"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.4.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.4.txt new file mode 100644 index 000000000..d9b153051 --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1158)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1158)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1158)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1158)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1158<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1157<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.5.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.5.txt new file mode 100644 index 000000000..efcdb5707 --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["655"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.6.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.6.txt new file mode 100644 index 000000000..c249d9a9f --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1158)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1158)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1158)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1158)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1158<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1157<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.7.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.7.txt new file mode 100644 index 000000000..aee0f33de --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.8.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.8.txt new file mode 100644 index 000000000..df01ef8cf --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.RemoveSingleAssociation.9.txt b/MockData/UpdateDynamicTests.RemoveSingleAssociation.9.txt new file mode 100644 index 000000000..e173867f9 --- /dev/null +++ b/MockData/UpdateDynamicTests.RemoveSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService299\/Products(1158)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.1.txt b/MockData/UpdateDynamicTests.UpdateByFilter.1.txt new file mode 100644 index 000000000..2984c4821 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.2.txt b/MockData/UpdateDynamicTests.UpdateByFilter.2.txt new file mode 100644 index 000000000..90e6bc520 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1169)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1169)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1169)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1169)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1169<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.3.txt b/MockData/UpdateDynamicTests.UpdateByFilter.3.txt new file mode 100644 index 000000000..1ab8d5d8c --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.4.txt b/MockData/UpdateDynamicTests.UpdateByFilter.4.txt new file mode 100644 index 000000000..ff4c88eba --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1169)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1169)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1169)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1169)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1169<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.5.txt b/MockData/UpdateDynamicTests.UpdateByFilter.5.txt new file mode 100644 index 000000000..8abe9ded5 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.6.txt b/MockData/UpdateDynamicTests.UpdateByFilter.6.txt new file mode 100644 index 000000000..42e1b89ed --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1169)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1169)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1169)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1169)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1169<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.7.txt b/MockData/UpdateDynamicTests.UpdateByFilter.7.txt new file mode 100644 index 000000000..1ab8d5d8c --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByFilter.8.txt b/MockData/UpdateDynamicTests.UpdateByFilter.8.txt new file mode 100644 index 000000000..6af9a175d --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products(1169)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1169)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1169)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1169)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1169)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1169<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService306\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.1.txt b/MockData/UpdateDynamicTests.UpdateByKey.1.txt new file mode 100644 index 000000000..1951bfbc3 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.2.txt b/MockData/UpdateDynamicTests.UpdateByKey.2.txt new file mode 100644 index 000000000..d3290d694 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1171)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1171)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1171)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1171)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1171<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.3.txt b/MockData/UpdateDynamicTests.UpdateByKey.3.txt new file mode 100644 index 000000000..d6b380fb9 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.4.txt b/MockData/UpdateDynamicTests.UpdateByKey.4.txt new file mode 100644 index 000000000..13d6d9872 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1171)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1171)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1171)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1171)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1171<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.5.txt b/MockData/UpdateDynamicTests.UpdateByKey.5.txt new file mode 100644 index 000000000..abe284b7a --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByKey.6.txt b/MockData/UpdateDynamicTests.UpdateByKey.6.txt new file mode 100644 index 000000000..99816cc93 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1171)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1171)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1171)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1171)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1171<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.1.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.1.txt new file mode 100644 index 000000000..5e857ecc7 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.2.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.2.txt new file mode 100644 index 000000000..97d264bdc --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1172)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1172)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1172)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1172)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1172<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.3.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.3.txt new file mode 100644 index 000000000..9bb26e538 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.4.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.4.txt new file mode 100644 index 000000000..378ac4713 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1172)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1172)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1172)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1172)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1172<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.5.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.5.txt new file mode 100644 index 000000000..0aefd1fff --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateByObjectAsKey.6.txt b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.6.txt new file mode 100644 index 000000000..bc1cea144 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products(1172)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1172)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1172)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1172)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1172)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1172<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService309\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:44 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.1.txt b/MockData/UpdateDynamicTests.UpdateDate.1.txt new file mode 100644 index 000000000..f52f4670f --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:07:04Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:FirstName>Test1<\/d:FirstName>\u000d\u000a <d:LastName>Test1<\/d:LastName>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["868"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.2.txt b/MockData/UpdateDynamicTests.UpdateDate.2.txt new file mode 100644 index 000000000..0ba4ae387 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:07:05Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:07:05 GMT"]},{"Key":"Location","Value":["http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.3.txt b/MockData/UpdateDynamicTests.UpdateDate.3.txt new file mode 100644 index 000000000..ece302350 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:07:05Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["790"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.4.txt b/MockData/UpdateDynamicTests.UpdateDate.4.txt new file mode 100644 index 000000000..d17e0a2b9 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:07:06Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:07:06 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.5.txt b/MockData/UpdateDynamicTests.UpdateDate.5.txt new file mode 100644 index 000000000..aa7ce6eeb --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDate.6.txt b/MockData/UpdateDynamicTests.UpdateDate.6.txt new file mode 100644 index 000000000..725af77bc --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDate.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:07:07Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:type=\"Edm.DateTime\" m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:type=\"Edm.Binary\" m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1819"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:07:06 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDerived.1.txt b/MockData/UpdateDynamicTests.UpdateDerived.1.txt new file mode 100644 index 000000000..6d2a807e0 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDerived.2.txt b/MockData/UpdateDynamicTests.UpdateDerived.2.txt new file mode 100644 index 000000000..da8687a22 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport(1165)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1165)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1165<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport(1165)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDerived.3.txt b/MockData/UpdateDynamicTests.UpdateDerived.3.txt new file mode 100644 index 000000000..c64d01ea8 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDerived.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test2<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport(1165)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateDerived.4.txt b/MockData/UpdateDynamicTests.UpdateDerived.4.txt new file mode 100644 index 000000000..2afe0d1b3 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateDerived.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport(1165)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1165)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1165<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService303\/Transport(1165)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.1.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.1.txt new file mode 100644 index 000000000..0aeab70fe --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.10.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.10.txt new file mode 100644 index 000000000..b47ed906b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1162)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1162)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1162)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1163)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1163)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1163)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1163)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1163)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1163<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1162<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1164)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1164)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1164)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1164)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1164)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1164<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1162<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1162<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["4284"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.2.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.2.txt new file mode 100644 index 000000000..21458d663 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1162)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1162)\/Products\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1162<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.3.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.3.txt new file mode 100644 index 000000000..e1ceca042 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.4.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.4.txt new file mode 100644 index 000000000..3bf6ecb9b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1163)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1163)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1163)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1163)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1163)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1163<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1163)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.5.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.5.txt new file mode 100644 index 000000000..704ec9a5c --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.6.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.6.txt new file mode 100644 index 000000000..9cfa7d586 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1164)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1164)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1164)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1164)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1164)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1164<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1164)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.7.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.7.txt new file mode 100644 index 000000000..a73f0beb7 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.7.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1163)\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Products(1164)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1130"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.8.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.8.txt new file mode 100644 index 000000000..cab609daa --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1162)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1162)\/Products\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1162<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleAssociations.9.txt b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.9.txt new file mode 100644 index 000000000..c425f8786 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleAssociations.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService302\/Categories(1162)?$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.1.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.1.txt new file mode 100644 index 000000000..866a23842 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.2.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.2.txt new file mode 100644 index 000000000..f54a109e6 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1170)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1170)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1170)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1170)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1170<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.3.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.3.txt new file mode 100644 index 000000000..21adc22b3 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.4.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.4.txt new file mode 100644 index 000000000..54ac3285b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1170)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1170)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1170)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1170)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1170<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.5.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.5.txt new file mode 100644 index 000000000..e514a9998 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.6.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.6.txt new file mode 100644 index 000000000..64cbab1da --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.7.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.7.txt new file mode 100644 index 000000000..21adc22b3 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleNoResult.8.txt b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.8.txt new file mode 100644 index 000000000..07df1b8dd --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleNoResult.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products(1170)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1170)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1170)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1170)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1170)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1170<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService307\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.1.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.1.txt new file mode 100644 index 000000000..f231d29cb --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.2.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.2.txt new file mode 100644 index 000000000..3626bdcd3 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1161)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1161)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1161)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1161)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1161<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.3.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.3.txt new file mode 100644 index 000000000..fc7bf948b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.4.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.4.txt new file mode 100644 index 000000000..95449ab3a --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:43Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1161)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1161)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1161)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1161)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1161<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.5.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.5.txt new file mode 100644 index 000000000..1699aee3b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:43Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateMultipleWithResult.6.txt b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.6.txt new file mode 100644 index 000000000..e61d787d9 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateMultipleWithResult.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1161)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1161)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1161)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1161)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:43Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1161<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService301\/Products(1161)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:42 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.1.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.1.txt new file mode 100644 index 000000000..3bd6844a7 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.10.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.10.txt new file mode 100644 index 000000000..78c46d272 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1166)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1166)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:44Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1166)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1167)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1167)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1167)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1167)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1167<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1166<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1166<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["2817"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.2.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.2.txt new file mode 100644 index 000000000..08d47e7f8 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1166)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1166)\/Products\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1166<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.3.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.3.txt new file mode 100644 index 000000000..6a00b0b34 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.4.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.4.txt new file mode 100644 index 000000000..29b750e54 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1167)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1167)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1167)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1167)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1167<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.5.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.5.txt new file mode 100644 index 000000000..fb365353b --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["895"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.6.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.6.txt new file mode 100644 index 000000000..34fed85cf --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1167)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1167)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1167)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1167)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1167<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1166<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.7.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.7.txt new file mode 100644 index 000000000..b3cfd9f1f --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)"} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.8.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.8.txt new file mode 100644 index 000000000..377315151 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1167)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1167)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1167)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1167)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1167<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1166<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1761"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Products(1167)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateDynamicTests.UpdateSingleAssociation.9.txt b/MockData/UpdateDynamicTests.UpdateSingleAssociation.9.txt new file mode 100644 index 000000000..2add1f517 --- /dev/null +++ b/MockData/UpdateDynamicTests.UpdateSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService304\/Categories(1166)?$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.1.txt b/MockData/UpdateTests.AddSingleAssociation.1.txt new file mode 100644 index 000000000..ed1af7ef8 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["754"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.10.txt b/MockData/UpdateTests.AddSingleAssociation.10.txt new file mode 100644 index 000000000..26f10cc80 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories(1006)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1006)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1006)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories(1006)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1006)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1007)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1007)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1007)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1007)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1007<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1006<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1006<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3047"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories?$filter=CategoryID%20eq%201006&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.2.txt b/MockData/UpdateTests.AddSingleAssociation.2.txt new file mode 100644 index 000000000..10932dae4 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories(1006)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1006)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1006)\/Products\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1006<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1124"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories(1006)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.3.txt b/MockData/UpdateTests.AddSingleAssociation.3.txt new file mode 100644 index 000000000..bd9d6192f --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.4.txt b/MockData/UpdateTests.AddSingleAssociation.4.txt new file mode 100644 index 000000000..29180aa2b --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1007)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1007)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1007)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1007)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1007<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.5.txt b/MockData/UpdateTests.AddSingleAssociation.5.txt new file mode 100644 index 000000000..b7ae43ed2 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories(1006)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["893"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)"} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.6.txt b/MockData/UpdateTests.AddSingleAssociation.6.txt new file mode 100644 index 000000000..14cf334b3 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1007)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1007)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1007)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1007)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1007<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1006<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1766"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.7.txt b/MockData/UpdateTests.AddSingleAssociation.7.txt new file mode 100644 index 000000000..f220bb458 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products?$filter=ProductID%20eq%201007"} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.8.txt b/MockData/UpdateTests.AddSingleAssociation.8.txt new file mode 100644 index 000000000..d34536b53 --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products(1007)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1007)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1007)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1007)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1007)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1007<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1006<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Products?$filter=ProductID%20eq%201007","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.AddSingleAssociation.9.txt b/MockData/UpdateTests.AddSingleAssociation.9.txt new file mode 100644 index 000000000..7f335a11a --- /dev/null +++ b/MockData/UpdateTests.AddSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService65\/Categories?$filter=CategoryID%20eq%201006&$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.1.txt b/MockData/UpdateTests.RemoveSingleAssociation.1.txt new file mode 100644 index 000000000..010ac2101 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test6<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["754"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.10.txt b/MockData/UpdateTests.RemoveSingleAssociation.10.txt new file mode 100644 index 000000000..930447b10 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1012)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1012)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1012)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1012)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1012<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1982"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products?$filter=ProductID%20eq%201012","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.2.txt b/MockData/UpdateTests.RemoveSingleAssociation.2.txt new file mode 100644 index 000000000..8a940c046 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Categories(1011)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1011)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1011)\/Products\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1011<\/d:CategoryID><d:CategoryName>Test6<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1124"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Categories(1011)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.3.txt b/MockData/UpdateTests.RemoveSingleAssociation.3.txt new file mode 100644 index 000000000..612eec2dc --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Categories(1011)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test7<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1048"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.4.txt b/MockData/UpdateTests.RemoveSingleAssociation.4.txt new file mode 100644 index 000000000..559752ad9 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1012)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1012)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1012)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1012)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1012<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1011<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1763"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.5.txt b/MockData/UpdateTests.RemoveSingleAssociation.5.txt new file mode 100644 index 000000000..757a71296 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["654"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)"} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.6.txt b/MockData/UpdateTests.RemoveSingleAssociation.6.txt new file mode 100644 index 000000000..441fd01cc --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1012)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1012)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1012)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1012)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1012<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1011<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1766"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.7.txt b/MockData/UpdateTests.RemoveSingleAssociation.7.txt new file mode 100644 index 000000000..2defe4b9f --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.8.txt b/MockData/UpdateTests.RemoveSingleAssociation.8.txt new file mode 100644 index 000000000..c56777fe3 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products(1012)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateTests.RemoveSingleAssociation.9.txt b/MockData/UpdateTests.RemoveSingleAssociation.9.txt new file mode 100644 index 000000000..c872ed4b5 --- /dev/null +++ b/MockData/UpdateTests.RemoveSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService69\/Products?$filter=ProductID%20eq%201012"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.1.txt b/MockData/UpdateTests.UpdateByFilter.1.txt new file mode 100644 index 000000000..5237f6890 --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:22Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.2.txt b/MockData/UpdateTests.UpdateByFilter.2.txt new file mode 100644 index 000000000..7648888ae --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:22Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.3.txt b/MockData/UpdateTests.UpdateByFilter.3.txt new file mode 100644 index 000000000..ff778558b --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.4.txt b/MockData/UpdateTests.UpdateByFilter.4.txt new file mode 100644 index 000000000..abe4433d5 --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:22Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:22Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1982"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.5.txt b/MockData/UpdateTests.UpdateByFilter.5.txt new file mode 100644 index 000000000..a478dd8bd --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:22Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["766"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.6.txt b/MockData/UpdateTests.UpdateByFilter.6.txt new file mode 100644 index 000000000..8da08a569 --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:22Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1742"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.7.txt b/MockData/UpdateTests.UpdateByFilter.7.txt new file mode 100644 index 000000000..ff778558b --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByFilter.8.txt b/MockData/UpdateTests.UpdateByFilter.8.txt new file mode 100644 index 000000000..ccc985174 --- /dev/null +++ b/MockData/UpdateTests.UpdateByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:22Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products(1002)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1002)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1002)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1002)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1002)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:22Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1002<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1983"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService63\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.1.txt b/MockData/UpdateTests.UpdateByKey.1.txt new file mode 100644 index 000000000..a39f94f2e --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.2.txt b/MockData/UpdateTests.UpdateByKey.2.txt new file mode 100644 index 000000000..cf6bf7190 --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1016)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1016)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1016)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1016)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1016<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.3.txt b/MockData/UpdateTests.UpdateByKey.3.txt new file mode 100644 index 000000000..1bc552592 --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["766"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.4.txt b/MockData/UpdateTests.UpdateByKey.4.txt new file mode 100644 index 000000000..3b4fbc4fa --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1016)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1016)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1016)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1016)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1016<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1742"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.5.txt b/MockData/UpdateTests.UpdateByKey.5.txt new file mode 100644 index 000000000..1f05df1e0 --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByKey.6.txt b/MockData/UpdateTests.UpdateByKey.6.txt new file mode 100644 index 000000000..81e6a6dcf --- /dev/null +++ b/MockData/UpdateTests.UpdateByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products(1016)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1016)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1016)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1016)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1016)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1016<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1983"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService72\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.1.txt b/MockData/UpdateTests.UpdateByObjectAsKey.1.txt new file mode 100644 index 000000000..eb53536e7 --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.2.txt b/MockData/UpdateTests.UpdateByObjectAsKey.2.txt new file mode 100644 index 000000000..143155ddf --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1008)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1008)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1008)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1008)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1008<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.3.txt b/MockData/UpdateTests.UpdateByObjectAsKey.3.txt new file mode 100644 index 000000000..f64500c35 --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["766"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.4.txt b/MockData/UpdateTests.UpdateByObjectAsKey.4.txt new file mode 100644 index 000000000..279f2d074 --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1008)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1008)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1008)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1008)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1008<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1742"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.5.txt b/MockData/UpdateTests.UpdateByObjectAsKey.5.txt new file mode 100644 index 000000000..b212e1515 --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateByObjectAsKey.6.txt b/MockData/UpdateTests.UpdateByObjectAsKey.6.txt new file mode 100644 index 000000000..7f9aaf288 --- /dev/null +++ b/MockData/UpdateTests.UpdateByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products(1008)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1008)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1008)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1008)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1008)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1008<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1983"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService66\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.1.txt b/MockData/UpdateTests.UpdateDate.1.txt new file mode 100644 index 000000000..b4d7cd3b6 --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:06:29Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:FirstName>Test1<\/d:FirstName>\u000d\u000a <d:LastName>Test1<\/d:LastName>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["868"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.2.txt b/MockData/UpdateTests.UpdateDate.2.txt new file mode 100644 index 000000000..bca5fd40f --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:06:30Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:06:30 GMT"]},{"Key":"Location","Value":["http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.3.txt b/MockData/UpdateTests.UpdateDate.3.txt new file mode 100644 index 000000000..79438ab32 --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:06:30Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["790"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.4.txt b/MockData/UpdateTests.UpdateDate.4.txt new file mode 100644 index 000000000..3f3d40770 --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:06:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:06:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.5.txt b/MockData/UpdateTests.UpdateDate.5.txt new file mode 100644 index 000000000..aa7ce6eeb --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDate.6.txt b/MockData/UpdateTests.UpdateDate.6.txt new file mode 100644 index 000000000..20ffaa4ab --- /dev/null +++ b/MockData/UpdateTests.UpdateDate.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:06:31Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:type=\"Edm.DateTime\" m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:type=\"Edm.Binary\" m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1819"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:06:31 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDerived.1.txt b/MockData/UpdateTests.UpdateDerived.1.txt new file mode 100644 index 000000000..d344ccf1f --- /dev/null +++ b/MockData/UpdateTests.UpdateDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["742"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDerived.2.txt b/MockData/UpdateTests.UpdateDerived.2.txt new file mode 100644 index 000000000..d826bf83a --- /dev/null +++ b/MockData/UpdateTests.UpdateDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport(1010)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1010)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1010<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["952"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport(1010)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDerived.3.txt b/MockData/UpdateTests.UpdateDerived.3.txt new file mode 100644 index 000000000..c980200ef --- /dev/null +++ b/MockData/UpdateTests.UpdateDerived.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test2<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["742"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport(1010)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateDerived.4.txt b/MockData/UpdateTests.UpdateDerived.4.txt new file mode 100644 index 000000000..fd7af83c3 --- /dev/null +++ b/MockData/UpdateTests.UpdateDerived.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport(1010)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1010)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1010<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["952"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService68\/Transport(1010)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.1.txt b/MockData/UpdateTests.UpdateMultipleAssociations.1.txt new file mode 100644 index 000000000..40a75a548 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:22Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["754"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.10.txt b/MockData/UpdateTests.UpdateMultipleAssociations.10.txt new file mode 100644 index 000000000..d1fdba5cf --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1003)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1003)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1003)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1004)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1004)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1004)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1004)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1004)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1004<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1005)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1005)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1005)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1005)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1005)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1005<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["4513"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories?$filter=CategoryID%20eq%201003&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.2.txt b/MockData/UpdateTests.UpdateMultipleAssociations.2.txt new file mode 100644 index 000000000..c264b13b0 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1003)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1003)\/Products\" \/><title \/><updated>2018-05-20T18:27:22Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1124"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.3.txt b/MockData/UpdateTests.UpdateMultipleAssociations.3.txt new file mode 100644 index 000000000..c01335759 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:22Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["866"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.4.txt b/MockData/UpdateTests.UpdateMultipleAssociations.4.txt new file mode 100644 index 000000000..3f0576998 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1004)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1004)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1004)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1004)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1004)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1004<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1004)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.5.txt b/MockData/UpdateTests.UpdateMultipleAssociations.5.txt new file mode 100644 index 000000000..94a8f3da3 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["866"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.6.txt b/MockData/UpdateTests.UpdateMultipleAssociations.6.txt new file mode 100644 index 000000000..ad5a8ddf4 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1005)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1005)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1005)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1005)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1005)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1005<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1005)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.7.txt b/MockData/UpdateTests.UpdateMultipleAssociations.7.txt new file mode 100644 index 000000000..449541f1f --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.7.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1004)\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Products(1005)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1127"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.8.txt b/MockData/UpdateTests.UpdateMultipleAssociations.8.txt new file mode 100644 index 000000000..e9d880ce2 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1003)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1003)\/Products\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1003<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1124"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories(1003)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleAssociations.9.txt b/MockData/UpdateTests.UpdateMultipleAssociations.9.txt new file mode 100644 index 000000000..9aa2461d1 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleAssociations.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService64\/Categories?$filter=CategoryID%20eq%201003&$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.1.txt b/MockData/UpdateTests.UpdateMultipleNoResult.1.txt new file mode 100644 index 000000000..1c2638ec0 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.2.txt b/MockData/UpdateTests.UpdateMultipleNoResult.2.txt new file mode 100644 index 000000000..eeaf1f88f --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1015)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1015)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1015)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1015)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1015<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.3.txt b/MockData/UpdateTests.UpdateMultipleNoResult.3.txt new file mode 100644 index 000000000..9068dbd6c --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.4.txt b/MockData/UpdateTests.UpdateMultipleNoResult.4.txt new file mode 100644 index 000000000..4c74ed0e1 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1015)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1015)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1015)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1015)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1015<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1982"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.5.txt b/MockData/UpdateTests.UpdateMultipleNoResult.5.txt new file mode 100644 index 000000000..6bc721a43 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["766"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.6.txt b/MockData/UpdateTests.UpdateMultipleNoResult.6.txt new file mode 100644 index 000000000..0bcdd8b0d --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.7.txt b/MockData/UpdateTests.UpdateMultipleNoResult.7.txt new file mode 100644 index 000000000..9068dbd6c --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleNoResult.8.txt b/MockData/UpdateTests.UpdateMultipleNoResult.8.txt new file mode 100644 index 000000000..92ed35807 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleNoResult.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products(1015)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1015)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1015)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1015)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1015)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1015<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1983"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService71\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.1.txt b/MockData/UpdateTests.UpdateMultipleWithResult.1.txt new file mode 100644 index 000000000..7d7ee02cd --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["809"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.2.txt b/MockData/UpdateTests.UpdateMultipleWithResult.2.txt new file mode 100644 index 000000000..5d70f242a --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1009)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1009)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1009)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1009)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1009<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1741"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.3.txt b/MockData/UpdateTests.UpdateMultipleWithResult.3.txt new file mode 100644 index 000000000..bb373f188 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.4.txt b/MockData/UpdateTests.UpdateMultipleWithResult.4.txt new file mode 100644 index 000000000..af6b45065 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:23Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1009)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1009)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1009)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1009)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1009<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1982"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.5.txt b/MockData/UpdateTests.UpdateMultipleWithResult.5.txt new file mode 100644 index 000000000..7bee8019c --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["766"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateMultipleWithResult.6.txt b/MockData/UpdateTests.UpdateMultipleWithResult.6.txt new file mode 100644 index 000000000..002026c30 --- /dev/null +++ b/MockData/UpdateTests.UpdateMultipleWithResult.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1009)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1009)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1009)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1009)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1009<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1742"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService67\/Products(1009)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:22 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.1.txt b/MockData/UpdateTests.UpdateSingleAssociation.1.txt new file mode 100644 index 000000000..8f63879be --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["754"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.10.txt b/MockData/UpdateTests.UpdateSingleAssociation.10.txt new file mode 100644 index 000000000..4677115dd --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories<\/id><title type=\"text\">Categories<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Categories\" href=\"Categories\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories(1013)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1013)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1013)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories(1013)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1013)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1014)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1014)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1014)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1014)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1014<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1013<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1013<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["3047"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories?$filter=CategoryID%20eq%201013&$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.2.txt b/MockData/UpdateTests.UpdateSingleAssociation.2.txt new file mode 100644 index 000000000..935abbebd --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories(1013)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1013)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1013)\/Products\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1013<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1124"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories(1013)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.3.txt b/MockData/UpdateTests.UpdateSingleAssociation.3.txt new file mode 100644 index 000000000..a0d481544 --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:23Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["866"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.4.txt b/MockData/UpdateTests.UpdateSingleAssociation.4.txt new file mode 100644 index 000000000..92c3b5e75 --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1014)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1014)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1014)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1014)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:23Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1014<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1760"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.5.txt b/MockData/UpdateTests.UpdateSingleAssociation.5.txt new file mode 100644 index 000000000..7560243ab --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories(1013)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:24Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["893"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.6.txt b/MockData/UpdateTests.UpdateSingleAssociation.6.txt new file mode 100644 index 000000000..46efd1156 --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1014)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1014)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1014)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1014)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1014<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1013<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1766"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.7.txt b/MockData/UpdateTests.UpdateSingleAssociation.7.txt new file mode 100644 index 000000000..81da03fe1 --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products?$filter=ProductID%20eq%201014"} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.8.txt b/MockData/UpdateTests.UpdateSingleAssociation.8.txt new file mode 100644 index 000000000..99c5eede5 --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:24Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products(1014)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1014)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1014)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1014)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1014)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:24Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1014<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1013<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Products?$filter=ProductID%20eq%201014","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:23 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTests.UpdateSingleAssociation.9.txt b/MockData/UpdateTests.UpdateSingleAssociation.9.txt new file mode 100644 index 000000000..cdae5c67b --- /dev/null +++ b/MockData/UpdateTests.UpdateSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService70\/Categories?$filter=CategoryID%20eq%201013&$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.1.txt b/MockData/UpdateTypedTests.AddSingleAssociation.1.txt new file mode 100644 index 000000000..0f78cbc3f --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.10.txt b/MockData/UpdateTypedTests.AddSingleAssociation.10.txt new file mode 100644 index 000000000..a77a270dd --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1081)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1081)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1081)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1082)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1082)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1082)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1082)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1082<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1081<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1081<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["2817"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.2.txt b/MockData/UpdateTypedTests.AddSingleAssociation.2.txt new file mode 100644 index 000000000..8b4a1b169 --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1081)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1081)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1081<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.3.txt b/MockData/UpdateTypedTests.AddSingleAssociation.3.txt new file mode 100644 index 000000000..563c2bc4a --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.4.txt b/MockData/UpdateTypedTests.AddSingleAssociation.4.txt new file mode 100644 index 000000000..129019d6b --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1082)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1082)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1082)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1082)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1082<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.5.txt b/MockData/UpdateTypedTests.AddSingleAssociation.5.txt new file mode 100644 index 000000000..0d12d4a4c --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["895"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.6.txt b/MockData/UpdateTypedTests.AddSingleAssociation.6.txt new file mode 100644 index 000000000..a86f4372c --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1082)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1082)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1082)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1082)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1082<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1081<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.7.txt b/MockData/UpdateTypedTests.AddSingleAssociation.7.txt new file mode 100644 index 000000000..15f7e94cd --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.8.txt b/MockData/UpdateTypedTests.AddSingleAssociation.8.txt new file mode 100644 index 000000000..b18955a31 --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1082)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1082)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1082)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1082)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1082<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1081<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1761"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Products(1082)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.AddSingleAssociation.9.txt b/MockData/UpdateTypedTests.AddSingleAssociation.9.txt new file mode 100644 index 000000000..6e7478068 --- /dev/null +++ b/MockData/UpdateTypedTests.AddSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService220\/Categories(1081)?$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.1.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.1.txt new file mode 100644 index 000000000..c19454b88 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test6<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.10.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.10.txt new file mode 100644 index 000000000..a9b6b7b17 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1096)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1096)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1096)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1096)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1096<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1758"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.2.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.2.txt new file mode 100644 index 000000000..f39d80f34 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Categories(1095)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1095)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1095)\/Products\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1095<\/d:CategoryID><d:CategoryName>Test6<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Categories(1095)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.3.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.3.txt new file mode 100644 index 000000000..704f06242 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Categories(1095)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test7<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1050"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.4.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.4.txt new file mode 100644 index 000000000..bbd912a45 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1096)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1096)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1096)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1096)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1096<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1095<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.5.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.5.txt new file mode 100644 index 000000000..f752c0cdd --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["655"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.6.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.6.txt new file mode 100644 index 000000000..1be94dd13 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1096)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1096)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1096)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1096)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1096<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1095<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.7.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.7.txt new file mode 100644 index 000000000..d74e629c1 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.8.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.8.txt new file mode 100644 index 000000000..9a7d66643 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.RemoveSingleAssociation.9.txt b/MockData/UpdateTypedTests.RemoveSingleAssociation.9.txt new file mode 100644 index 000000000..00c2c23e2 --- /dev/null +++ b/MockData/UpdateTypedTests.RemoveSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService229\/Products(1096)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.1.txt b/MockData/UpdateTypedTests.UpdateByFilter.1.txt new file mode 100644 index 000000000..c600dfaea --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.2.txt b/MockData/UpdateTypedTests.UpdateByFilter.2.txt new file mode 100644 index 000000000..b9debffc5 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1085)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1085)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1085)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1085)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1085<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.3.txt b/MockData/UpdateTypedTests.UpdateByFilter.3.txt new file mode 100644 index 000000000..0dcf86dca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.4.txt b/MockData/UpdateTypedTests.UpdateByFilter.4.txt new file mode 100644 index 000000000..9865decdb --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1085)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1085)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1085)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1085)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1085<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.5.txt b/MockData/UpdateTypedTests.UpdateByFilter.5.txt new file mode 100644 index 000000000..d63962e01 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.6.txt b/MockData/UpdateTypedTests.UpdateByFilter.6.txt new file mode 100644 index 000000000..2e86440be --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1085)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1085)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1085)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1085)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1085<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.7.txt b/MockData/UpdateTypedTests.UpdateByFilter.7.txt new file mode 100644 index 000000000..0dcf86dca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByFilter.8.txt b/MockData/UpdateTypedTests.UpdateByFilter.8.txt new file mode 100644 index 000000000..6d983c278 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByFilter.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products(1085)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1085)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1085)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1085)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1085)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1085<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService222\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.1.txt b/MockData/UpdateTypedTests.UpdateByKey.1.txt new file mode 100644 index 000000000..0e9948347 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.2.txt b/MockData/UpdateTypedTests.UpdateByKey.2.txt new file mode 100644 index 000000000..66ebacc03 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1097)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1097)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1097)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1097)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1097<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.3.txt b/MockData/UpdateTypedTests.UpdateByKey.3.txt new file mode 100644 index 000000000..db9c32fdd --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.4.txt b/MockData/UpdateTypedTests.UpdateByKey.4.txt new file mode 100644 index 000000000..cbe74c2cd --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1097)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1097)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1097)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1097)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1097<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.5.txt b/MockData/UpdateTypedTests.UpdateByKey.5.txt new file mode 100644 index 000000000..b666a3389 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByKey.6.txt b/MockData/UpdateTypedTests.UpdateByKey.6.txt new file mode 100644 index 000000000..5ed9f9fbf --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products(1097)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1097)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1097)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1097)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1097)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1097<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService230\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.1.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.1.txt new file mode 100644 index 000000000..ae17a1c74 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.2.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.2.txt new file mode 100644 index 000000000..ea653e46b --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1080)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1080)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1080)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1080)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1080<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.3.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.3.txt new file mode 100644 index 000000000..e1750e7f2 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.4.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.4.txt new file mode 100644 index 000000000..58a35d93c --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1080)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1080)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1080)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1080)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1080<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.5.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.5.txt new file mode 100644 index 000000000..e2823bece --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateByObjectAsKey.6.txt b/MockData/UpdateTypedTests.UpdateByObjectAsKey.6.txt new file mode 100644 index 000000000..65727767d --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateByObjectAsKey.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products(1080)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1080)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1080)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1080)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1080)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1080<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService219\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.1.txt b/MockData/UpdateTypedTests.UpdateDate.1.txt new file mode 100644 index 000000000..8a9bc0949 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:05:51Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:FirstName>Test1<\/d:FirstName>\u000d\u000a <d:LastName>Test1<\/d:LastName>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["868"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.2.txt b/MockData/UpdateTypedTests.UpdateDate.2.txt new file mode 100644 index 000000000..e553457ae --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:05:51Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-20T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:05:52 GMT"]},{"Key":"Location","Value":["http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.3.txt b/MockData/UpdateTypedTests.UpdateDate.3.txt new file mode 100644 index 000000000..610a33978 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-21T05:05:52Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["790"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.4.txt b/MockData/UpdateTypedTests.UpdateDate.4.txt new file mode 100644 index 000000000..a08880f5f --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:05:53Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1841"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:05:53 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.5.txt b/MockData/UpdateTypedTests.UpdateDate.5.txt new file mode 100644 index 000000000..aa7ce6eeb --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDate.6.txt b/MockData/UpdateTypedTests.UpdateDate.6.txt new file mode 100644 index 000000000..57822e500 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDate.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)<\/id><category term=\"NorthwindModel.Employee\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Employee\" href=\"Employees(1001)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Orders\" type=\"application\/atom+xml;type=feed\" title=\"Orders\" href=\"Employees(1001)\/Orders\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Subordinates\" type=\"application\/atom+xml;type=feed\" title=\"Subordinates\" href=\"Employees(1001)\/Subordinates\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Superior\" type=\"application\/atom+xml;type=entry\" title=\"Superior\" href=\"Employees(1001)\/Superior\" \/><title \/><updated>2018-05-21T05:05:53Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:EmployeeID m:type=\"Edm.Int32\">1001<\/d:EmployeeID><d:FirstName>Test1<\/d:FirstName><d:LastName>Test1<\/d:LastName><d:Title m:null=\"true\" \/><d:BirthDate m:type=\"Edm.DateTime\" m:null=\"true\" \/><d:HireDate m:type=\"Edm.DateTime\">2018-05-21T20:30:40.677<\/d:HireDate><d:Address m:null=\"true\" \/><d:City m:null=\"true\" \/><d:Region m:null=\"true\" \/><d:PostalCode m:null=\"true\" \/><d:Country m:null=\"true\" \/><d:HomePhone m:null=\"true\" \/><d:Extension m:null=\"true\" \/><d:Photo m:type=\"Edm.Binary\" m:null=\"true\" \/><d:Notes m:null=\"true\" \/><d:ReportsTo m:type=\"Edm.Int32\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1819"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/desktop-gg3sl1m\/Temporary_Listen_Addresses\/SimpleODataTestService2\/Employees(1001)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Mon, 21 May 2018 05:05:53 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDerived.1.txt b/MockData/UpdateTypedTests.UpdateDerived.1.txt new file mode 100644 index 000000000..903d2efcc --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDerived.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test1<\/d:ShipName>\u000d\u000a <d:TransportID m:type=\"Edm.Int32\">0<\/d:TransportID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["802"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDerived.2.txt b/MockData/UpdateTypedTests.UpdateDerived.2.txt new file mode 100644 index 000000000..3b445d3b0 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDerived.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport(1092)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1092)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1092<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test1<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport(1092)\/NorthwindModel.Ship"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDerived.3.txt b/MockData/UpdateTypedTests.UpdateDerived.3.txt new file mode 100644 index 000000000..fc8ff1d63 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDerived.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ShipName>Test2<\/d:ShipName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["743"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport(1092)\/NorthwindModel.Ship"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateDerived.4.txt b/MockData/UpdateTypedTests.UpdateDerived.4.txt new file mode 100644 index 000000000..5c4e68b39 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateDerived.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport(1092)<\/id><category term=\"NorthwindModel.Ship\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Ship\" href=\"Transport(1092)\/NorthwindModel.Ship\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:TransportID m:type=\"Edm.Int32\">1092<\/d:TransportID><d:TransportType m:type=\"Edm.Int32\">0<\/d:TransportType><d:ShipName>Test2<\/d:ShipName><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["954"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService227\/Transport(1092)\/NorthwindModel.Ship","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.1.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.1.txt new file mode 100644 index 000000000..0c67981a4 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test3<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.10.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.10.txt new file mode 100644 index 000000000..05736547c --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1089)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1089)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1089)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1090)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1090)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1090)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1090)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1090)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1090<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1089<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1091)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1091)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1091)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1091)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1091)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1091<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1089<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1089<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["4284"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.2.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.2.txt new file mode 100644 index 000000000..0cff3935e --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1089)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1089)\/Products\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1089<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.3.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.3.txt new file mode 100644 index 000000000..19e6012cc --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test4<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.4.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.4.txt new file mode 100644 index 000000000..da5b75c39 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1090)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1090)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1090)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1090)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1090)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1090<\/d:ProductID><d:ProductName>Test4<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1090)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.5.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.5.txt new file mode 100644 index 000000000..565b91dca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test5<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.6.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.6.txt new file mode 100644 index 000000000..9b1243094 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1091)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1091)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1091)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1091)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1091)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1091<\/d:ProductID><d:ProductName>Test5<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1091)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.7.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.7.txt new file mode 100644 index 000000000..a01ed5373 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.7.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1090)\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Products(1091)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["1130"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.8.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.8.txt new file mode 100644 index 000000000..dc5399181 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1089)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1089)\/Products\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1089<\/d:CategoryID><d:CategoryName>Test3<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleAssociations.9.txt b/MockData/UpdateTypedTests.UpdateMultipleAssociations.9.txt new file mode 100644 index 000000000..1753ff928 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleAssociations.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService226\/Categories(1089)?$expand=Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.1.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.1.txt new file mode 100644 index 000000000..ad3bae1b7 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.2.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.2.txt new file mode 100644 index 000000000..9c0fec9ff --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1088)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1088)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1088)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1088)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1088<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.3.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.3.txt new file mode 100644 index 000000000..21836c1ca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.4.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.4.txt new file mode 100644 index 000000000..ec4ee573c --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1088)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1088)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1088)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1088)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1088<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.5.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.5.txt new file mode 100644 index 000000000..5fb1555df --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.6.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.6.txt new file mode 100644 index 000000000..0840a8db4 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-no-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.7.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.7.txt new file mode 100644 index 000000000..21836c1ca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleNoResult.8.txt b/MockData/UpdateTypedTests.UpdateMultipleNoResult.8.txt new file mode 100644 index 000000000..a45f7cc6e --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleNoResult.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products(1088)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1088)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1088)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1088)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1088)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1088<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService225\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.1.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.1.txt new file mode 100644 index 000000000..71090c09e --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.2.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.2.txt new file mode 100644 index 000000000..ca02cdc0d --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1087)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1087)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1087)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1087)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1087<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.3.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.3.txt new file mode 100644 index 000000000..996258fd5 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.4.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.4.txt new file mode 100644 index 000000000..6d18d8e78 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1087)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1087)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1087)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1087)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1087<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1985"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.5.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.5.txt new file mode 100644 index 000000000..4cd1fe2d8 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateMultipleWithResult.6.txt b/MockData/UpdateTypedTests.UpdateMultipleWithResult.6.txt new file mode 100644 index 000000000..988106f9a --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateMultipleWithResult.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1087)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1087)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1087)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1087)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1087<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService224\/Products(1087)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.1.txt b/MockData/UpdateTypedTests.UpdateObjectValue.1.txt new file mode 100644 index 000000000..fae00d437 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.2.txt b/MockData/UpdateTypedTests.UpdateObjectValue.2.txt new file mode 100644 index 000000000..6c03cec7b --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1079)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1079)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1079)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1079)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1079<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.3.txt b/MockData/UpdateTypedTests.UpdateObjectValue.3.txt new file mode 100644 index 000000000..597ece47d --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">1079<\/d:ProductID>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:null=\"true\" \/>\u000d\u000a <d:EnglishName m:null=\"true\" \/>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["946"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.4.txt b/MockData/UpdateTypedTests.UpdateObjectValue.4.txt new file mode 100644 index 000000000..9b95c2785 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1079)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1079)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1079)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1079)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1079<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.5.txt b/MockData/UpdateTypedTests.UpdateObjectValue.5.txt new file mode 100644 index 000000000..35e7741cc --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.6.txt b/MockData/UpdateTypedTests.UpdateObjectValue.6.txt new file mode 100644 index 000000000..4504dff15 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.6.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.7.txt b/MockData/UpdateTypedTests.UpdateObjectValue.7.txt new file mode 100644 index 000000000..37454553b --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products?$filter=ProductName%20eq%20%27Test1%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateObjectValue.8.txt b/MockData/UpdateTypedTests.UpdateObjectValue.8.txt new file mode 100644 index 000000000..89b488fca --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateObjectValue.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products(1079)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1079)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1079)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1079)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1079)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1079<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">456.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1986"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService218\/Products?$filter=ProductName%20eq%20%27Test1%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.1.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.1.txt new file mode 100644 index 000000000..ca315187e --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test5<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.10.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.10.txt new file mode 100644 index 000000000..348e49bfc --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1084)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1084)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1084)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1084)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1084<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1761"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.2.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.2.txt new file mode 100644 index 000000000..3e8ae13c0 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Categories(1083)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1083)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1083)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID><d:CategoryName>Test5<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Categories(1083)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.3.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.3.txt new file mode 100644 index 000000000..69d204df0 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test6<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["870"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.4.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.4.txt new file mode 100644 index 000000000..69f852dc5 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1084)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1084)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1084)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1084)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1084<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1765"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.5.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.5.txt new file mode 100644 index 000000000..b60bba58f --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.5.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products?$filter=ProductName%20eq%20%27Test6%27"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.6.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.6.txt new file mode 100644 index 000000000..d054101d3 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:35Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1084)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1084)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1084)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1084)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1084<\/d:ProductID><d:ProductName>Test6<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1988"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products?$filter=ProductName%20eq%20%27Test6%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.7.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.7.txt new file mode 100644 index 000000000..0ac33e6e3 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.7.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:35Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductID m:type=\"Edm.Int32\">1084<\/d:ProductID>\u000d\u000a <d:ProductName>Test7<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["931"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.8.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.8.txt new file mode 100644 index 000000000..ebb166b78 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1084)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1084)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1084)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1084)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1084<\/d:ProductID><d:ProductName>Test7<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1083<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.9.txt b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.9.txt new file mode 100644 index 000000000..fe61b2511 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateProducttWithoutExpandingCategory.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService221\/Products(1084)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.1.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.1.txt new file mode 100644 index 000000000..603ce1aad --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:CategoryName>Test1<\/d:CategoryName>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["755"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.10.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.10.txt new file mode 100644 index 000000000..1198a8a02 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.10.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1093)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1093)\/Products\"><m:inline><feed><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:36Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Categories(1093)\/Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1094)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1094)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1094)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1094)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1094<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1093<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed><\/m:inline><\/link><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1093<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:type=\"Edm.Binary\" m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["2817"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)?$expand=Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.2.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.2.txt new file mode 100644 index 000000000..28f6331d4 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1093)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1093)\/Products\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1093<\/d:CategoryID><d:CategoryName>Test1<\/d:CategoryName><d:Description m:null=\"true\" \/><d:Picture m:null=\"true\" \/><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1126"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.3.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.3.txt new file mode 100644 index 000000000..ffc103dcd --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.3.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test2<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["867"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.4.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.4.txt new file mode 100644 index 000000000..38c05d995 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1094)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1094)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1094)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1094)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1094<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1762"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.5.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.5.txt new file mode 100644 index 000000000..21d95b6fc --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.5.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:36Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\" \/>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["895"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.6.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.6.txt new file mode 100644 index 000000000..adf301729 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.6.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1094)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1094)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1094)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1094)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1094<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1093<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1768"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.7.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.7.txt new file mode 100644 index 000000000..10c5ba34f --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.7.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)"} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.8.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.8.txt new file mode 100644 index 000000000..c1ee4ce66 --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.8.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1094)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1094)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1094)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1094)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:36Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1094<\/d:ProductID><d:ProductName>Test2<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\" m:null=\"true\" \/><d:CategoryID m:type=\"Edm.Int32\">1093<\/d:CategoryID><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\" m:null=\"true\" \/><d:UnitsOnOrder m:type=\"Edm.Int16\" m:null=\"true\" \/><d:ReorderLevel m:type=\"Edm.Int16\" m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1761"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Products(1094)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:35 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/UpdateTypedTests.UpdateSingleAssociation.9.txt b/MockData/UpdateTypedTests.UpdateSingleAssociation.9.txt new file mode 100644 index 000000000..590c9c39c --- /dev/null +++ b/MockData/UpdateTypedTests.UpdateSingleAssociation.9.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService228\/Categories(1093)?$expand=Products"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.BuildRequestFor.1.txt b/MockData/WithHeaderTests.BuildRequestFor.1.txt new file mode 100644 index 000000000..fac4c1ead --- /dev/null +++ b/MockData/WithHeaderTests.BuildRequestFor.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.BuildRequestFor.2.txt b/MockData/WithHeaderTests.BuildRequestFor.2.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/WithHeaderTests.BuildRequestFor.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.BuildRequestFor.3.txt b/MockData/WithHeaderTests.BuildRequestFor.3.txt new file mode 100644 index 000000000..fac4c1ead --- /dev/null +++ b/MockData/WithHeaderTests.BuildRequestFor.3.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.BuildRequestFor.4.txt b/MockData/WithHeaderTests.BuildRequestFor.4.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/WithHeaderTests.BuildRequestFor.4.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.DeleteEntry.1.txt b/MockData/WithHeaderTests.DeleteEntry.1.txt new file mode 100644 index 000000000..3c6e36f94 --- /dev/null +++ b/MockData/WithHeaderTests.DeleteEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.DeleteEntry.2.txt b/MockData/WithHeaderTests.DeleteEntry.2.txt new file mode 100644 index 000000000..5bf15ebc2 --- /dev/null +++ b/MockData/WithHeaderTests.DeleteEntry.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService264\/Products(1109)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindEntries.1.txt b/MockData/WithHeaderTests.FindEntries.1.txt new file mode 100644 index 000000000..a9da174c3 --- /dev/null +++ b/MockData/WithHeaderTests.FindEntries.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products?$filter=ProductName%20eq%20%27Chai%27"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindEntries.2.txt b/MockData/WithHeaderTests.FindEntries.2.txt new file mode 100644 index 000000000..2a55b83fd --- /dev/null +++ b/MockData/WithHeaderTests.FindEntries.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products<\/id><title type=\"text\">Products<\/title><updated>2018-05-20T18:27:33Z<\/updated><link rel=\"self\" title=\"Products\" href=\"Products\" \/><entry><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products(1)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:33Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1<\/d:ProductID><d:ProductName>Chai<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:type=\"Edm.Int32\">1<\/d:SupplierID><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:QuantityPerUnit>10 boxes x 20 bags<\/d:QuantityPerUnit><d:UnitPrice m:type=\"Edm.Decimal\">123.00<\/d:UnitPrice><d:UnitsInStock m:type=\"Edm.Int16\">39<\/d:UnitsInStock><d:UnitsOnOrder m:type=\"Edm.Int16\">0<\/d:UnitsOnOrder><d:ReorderLevel m:type=\"Edm.Int16\">10<\/d:ReorderLevel><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry><\/feed>","ContentHeaders":[{"Key":"Content-Length","Value":["1997"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=feed; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService176\/Products?$filter=ProductName%20eq%20%27Chai%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindEntry.1.txt b/MockData/WithHeaderTests.FindEntry.1.txt new file mode 100644 index 000000000..fac4c1ead --- /dev/null +++ b/MockData/WithHeaderTests.FindEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindEntry.2.txt b/MockData/WithHeaderTests.FindEntry.2.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/WithHeaderTests.FindEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindScalar.1.txt b/MockData/WithHeaderTests.FindScalar.1.txt new file mode 100644 index 000000000..3a0266546 --- /dev/null +++ b/MockData/WithHeaderTests.FindScalar.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService175\/Products\/$count"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.FindScalar.2.txt b/MockData/WithHeaderTests.FindScalar.2.txt new file mode 100644 index 000000000..2f8b4951a --- /dev/null +++ b/MockData/WithHeaderTests.FindScalar.2.txt @@ -0,0 +1 @@ +{"Content":"22","ContentHeaders":[{"Key":"Content-Length","Value":["2"]},{"Key":"Content-Type","Value":["text\/plain; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService175\/Products\/$count","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["2.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:32 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.Function.1.txt b/MockData/WithHeaderTests.Function.1.txt new file mode 100644 index 000000000..87d634266 --- /dev/null +++ b/MockData/WithHeaderTests.Function.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/ReturnString?text=%27abc%27"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.Function.2.txt b/MockData/WithHeaderTests.Function.2.txt new file mode 100644 index 000000000..1afe7159c --- /dev/null +++ b/MockData/WithHeaderTests.Function.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><d:ReturnString xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\">abc<\/d:ReturnString>","ContentHeaders":[{"Key":"Content-Length","Value":["211"]},{"Key":"Content-Type","Value":["application\/xml; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/ReturnString?text=%27abc%27","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:30:21 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.GetStream.1.txt b/MockData/WithHeaderTests.GetStream.1.txt new file mode 100644 index 000000000..18be1cc69 --- /dev/null +++ b/MockData/WithHeaderTests.GetStream.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"GET","RequestHeaders":[{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)/$value"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.GetStream.2.txt b/MockData/WithHeaderTests.GetStream.2.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/WithHeaderTests.GetStream.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.InsertEntry.1.txt b/MockData/WithHeaderTests.InsertEntry.1.txt new file mode 100644 index 000000000..5830bb2c1 --- /dev/null +++ b/MockData/WithHeaderTests.InsertEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:37Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:ProductName>Test1<\/d:ProductName>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["810"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.InsertEntry.2.txt b/MockData/WithHeaderTests.InsertEntry.2.txt new file mode 100644 index 000000000..4c1897b64 --- /dev/null +++ b/MockData/WithHeaderTests.InsertEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products(1101)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1101)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1101)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1101)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1101)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:37Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1101<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">18<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1743"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:36 GMT"]},{"Key":"Location","Value":["http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService258\/Products(1101)"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":201} \ No newline at end of file diff --git a/MockData/WithHeaderTests.LinkEntry.1.txt b/MockData/WithHeaderTests.LinkEntry.1.txt new file mode 100644 index 000000000..c0fc1e20a --- /dev/null +++ b/MockData/WithHeaderTests.LinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<uri xmlns=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\">http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Categories(1003)<\/uri>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/xml"]},{"Key":"Content-Length","Value":["198"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.LinkEntry.2.txt b/MockData/WithHeaderTests.LinkEntry.2.txt new file mode 100644 index 000000000..4623bb378 --- /dev/null +++ b/MockData/WithHeaderTests.LinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService3\/Products(1004)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:39 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/WithHeaderTests.SetStream.1.txt b/MockData/WithHeaderTests.SetStream.1.txt new file mode 100644 index 000000000..f4abf2194 --- /dev/null +++ b/MockData/WithHeaderTests.SetStream.1.txt @@ -0,0 +1 @@ +{"Content":"stream_data","ContentHeaders":[{"Key":"Content-Type","Value":["text/plain"]},{"Key":"Content-Length","Value":["14"]}],"Method":"PUT","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)/$value"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.SetStream.2.txt b/MockData/WithHeaderTests.SetStream.2.txt new file mode 100644 index 000000000..4ca5f0743 --- /dev/null +++ b/MockData/WithHeaderTests.SetStream.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)<\/id><category term=\"NorthwindModel.Category\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Category\" href=\"Categories(1)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Products\" type=\"application\/atom+xml;type=feed\" title=\"Products\" href=\"Categories(1)\/Products\" \/><title \/><updated>2018-05-20T18:27:35Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:CategoryID m:type=\"Edm.Int32\">1<\/d:CategoryID><d:CategoryName>Beverages<\/d:CategoryName><d:Description>Beverages Soft drinks, coffees, teas, beer, and ale<\/d:Description><d:Picture m:type=\"Edm.Binary\">AQID<\/d:Picture><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1106"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService214\/Categories(1)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:34 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/MockData/WithHeaderTests.UnlinkEntry.1.txt b/MockData/WithHeaderTests.UnlinkEntry.1.txt new file mode 100644 index 000000000..6697af3f4 --- /dev/null +++ b/MockData/WithHeaderTests.UnlinkEntry.1.txt @@ -0,0 +1 @@ +{"Content":null,"ContentHeaders":null,"Method":"DELETE","RequestHeaders":[{"Key":"Prefer","Value":["return-no-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)\/$links\/Category"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.UnlinkEntry.2.txt b/MockData/WithHeaderTests.UnlinkEntry.2.txt new file mode 100644 index 000000000..1378da357 --- /dev/null +++ b/MockData/WithHeaderTests.UnlinkEntry.2.txt @@ -0,0 +1 @@ +{"Content":"","ContentHeaders":[{"Key":"Content-Length","Value":["0"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService5\/Products(1008)\/$links\/Category","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"DataServiceVersion","Value":["1.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:36:40 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":204} \ No newline at end of file diff --git a/MockData/WithHeaderTests.UpdateEntry.1.txt b/MockData/WithHeaderTests.UpdateEntry.1.txt new file mode 100644 index 000000000..3df68e397 --- /dev/null +++ b/MockData/WithHeaderTests.UpdateEntry.1.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\u000d\u000a<entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\">\u000d\u000a <category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/>\u000d\u000a <id \/>\u000d\u000a <title \/>\u000d\u000a <updated>2018-05-20T18:27:44Z<\/updated>\u000d\u000a <author>\u000d\u000a <name \/>\u000d\u000a <\/author>\u000d\u000a <content type=\"application\/xml\">\u000d\u000a <m:properties>\u000d\u000a <d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice>\u000d\u000a <\/m:properties>\u000d\u000a <\/content>\u000d\u000a<\/entry>","ContentHeaders":[{"Key":"Content-Type","Value":["application\/atom+xml"]},{"Key":"Content-Length","Value":["767"]}],"Method":"PATCH","RequestHeaders":[{"Key":"Accept","Value":["application\/atom+xml","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]},{"Key":"header1","Value":["header1Value"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)"} \ No newline at end of file diff --git a/MockData/WithHeaderTests.UpdateEntry.2.txt b/MockData/WithHeaderTests.UpdateEntry.2.txt new file mode 100644 index 000000000..13d6d9872 --- /dev/null +++ b/MockData/WithHeaderTests.UpdateEntry.2.txt @@ -0,0 +1 @@ +{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><entry xml:base=\"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/\" xmlns=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:d=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\" xmlns:m=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/metadata\" xmlns:georss=\"http:\/\/www.georss.org\/georss\" xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><id>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)<\/id><category term=\"NorthwindModel.Product\" scheme=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/scheme\" \/><link rel=\"edit\" title=\"Product\" href=\"Products(1171)\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Category\" type=\"application\/atom+xml;type=entry\" title=\"Category\" href=\"Products(1171)\/Category\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/OrderDetails\" type=\"application\/atom+xml;type=feed\" title=\"OrderDetails\" href=\"Products(1171)\/OrderDetails\" \/><link rel=\"http:\/\/schemas.microsoft.com\/ado\/2007\/08\/dataservices\/related\/Supplier\" type=\"application\/atom+xml;type=entry\" title=\"Supplier\" href=\"Products(1171)\/Supplier\" \/><title \/><updated>2018-05-20T18:27:44Z<\/updated><author><name \/><\/author><content type=\"application\/xml\"><m:properties><d:ProductID m:type=\"Edm.Int32\">1171<\/d:ProductID><d:ProductName>Test1<\/d:ProductName><d:EnglishName m:null=\"true\" \/><d:SupplierID m:null=\"true\" \/><d:CategoryID m:null=\"true\" \/><d:QuantityPerUnit m:null=\"true\" \/><d:UnitPrice m:type=\"Edm.Decimal\">123<\/d:UnitPrice><d:UnitsInStock m:null=\"true\" \/><d:UnitsOnOrder m:null=\"true\" \/><d:ReorderLevel m:null=\"true\" \/><d:Discontinued m:type=\"Edm.Boolean\">false<\/d:Discontinued><\/m:properties><\/content><\/entry>","ContentHeaders":[{"Key":"Content-Length","Value":["1744"]},{"Key":"Content-Type","Value":["application\/atom+xml; type=entry; charset=utf-8"]}],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService308\/Products(1171)","ResponseHeaders":[{"Key":"X-Content-Type-Options","Value":["nosniff"]},{"Key":"Preference-Applied","Value":["return-content"]},{"Key":"DataServiceVersion","Value":["3.0;"]},{"Key":"Cache-Control","Value":["no-cache"]},{"Key":"Date","Value":["Sun, 20 May 2018 18:27:43 GMT"]},{"Key":"Server","Value":["Microsoft-HTTPAPI\/2.0"]}],"StatusCode":200} \ No newline at end of file diff --git a/NuGetPackagesTests.sln b/NuGetPackagesTests.sln new file mode 100644 index 000000000..4b0abe7cb --- /dev/null +++ b/NuGetPackagesTests.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2018 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.NuGetPackages.Tests", "src\Simple.OData.NuGetPackages.Tests\Simple.OData.NuGetPackages.Tests.csproj", "{B27DE76C-B524-4BA3-A9AD-593A3C26A1C2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B27DE76C-B524-4BA3-A9AD-593A3C26A1C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B27DE76C-B524-4BA3-A9AD-593A3C26A1C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B27DE76C-B524-4BA3-A9AD-593A3C26A1C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B27DE76C-B524-4BA3-A9AD-593A3C26A1C2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {62712654-F37A-4E0A-8594-443B19B1DBBE} + EndGlobalSection +EndGlobal diff --git a/NugetPack.cmd b/NugetPack.cmd index 69871ca97..3f32ef2f9 100644 --- a/NugetPack.cmd +++ b/NugetPack.cmd @@ -1,3 +1,3 @@ -cd .\%1 -call ..\.nuget\nuget pack -sym %1.csproj -Symbols -Properties Configuration=Release -cd ..\ +call nuget pack Simple.OData.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg +call nuget pack Simple.OData.V3.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg +call nuget pack Simple.OData.V4.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg diff --git a/NugetPackOData.cmd b/NugetPackOData.cmd deleted file mode 100644 index 81f09a409..000000000 --- a/NugetPackOData.cmd +++ /dev/null @@ -1 +0,0 @@ -call .\NugetPack.cmd Simple.Data.OData diff --git a/NugetPackODataClient.cmd b/NugetPackODataClient.cmd deleted file mode 100644 index d6cc24241..000000000 --- a/NugetPackODataClient.cmd +++ /dev/null @@ -1 +0,0 @@ -call .\NugetPack.cmd Simple.OData.Client diff --git a/NugetPush.cmd b/NugetPush.cmd index 978f27882..84445b6f8 100644 --- a/NugetPush.cmd +++ b/NugetPush.cmd @@ -1,3 +1,3 @@ -cd .\%1 -call ..\.nuget\nuget push %1.%2.nupkg %3 -cd ..\ +call nuget push build\packages\Simple.OData.Client.%1.nupkg -Source https://api.nuget.org/v3/index.json -apikey %2 +call nuget push build\packages\Simple.OData.V3.Client.%1.nupkg -Source https://api.nuget.org/v3/index.json -apikey %2 +call nuget push build\packages\Simple.OData.V4.Client.%1.nupkg -Source https://api.nuget.org/v3/index.json -apikey %2 \ No newline at end of file diff --git a/NugetPushOData.cmd b/NugetPushOData.cmd deleted file mode 100644 index f7a19ef69..000000000 --- a/NugetPushOData.cmd +++ /dev/null @@ -1 +0,0 @@ -call .\NugetPush.cmd Simple.Data.OData %1 %2 diff --git a/NugetPushODataClient.cmd b/NugetPushODataClient.cmd deleted file mode 100644 index 960eff5a9..000000000 --- a/NugetPushODataClient.cmd +++ /dev/null @@ -1 +0,0 @@ -call .\NugetPush.cmd Simple.OData.Client %1 %2 diff --git a/README.md b/README.md new file mode 100644 index 000000000..0f7c88838 --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +# Welcome to the Simple.OData.Client + +<p align="center"> +<a href="https://www.nuget.org/packages/Simple.OData.Client/"><img src="https://img.shields.io/nuget/v/Simple.OData.Client.svg" alt="current release"><img src="https://img.shields.io/nuget/dt/Simple.OData.Client.svg" alt="downloads" /> +</a> + <a href="https://gitter.im/simple-odata-client/community"><img src="https://badges.gitter.im/gitterHQ/gitter.png"></a> +</p> + +## Introduction + +Simple.OData.Client is a multiplatform OData client library supporting .NET 4.x, netstandard 2.0, Android and iOS. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + +[Getting started with Simple.OData.Client](https://github.com/object/Simple.OData.Client/wiki/Getting-started-with-Simple.OData.Client) +[Simple.OData.Client basic API](https://github.com/object/Simple.OData.Client/wiki/Simple.OData.Client-basic-API) +[Simple.OData.Client fluent API](https://github.com/object/Simple.OData.Client/wiki/Simple.OData.Client-fluent-API) +[Retrieving data](https://github.com/object/Simple.OData.Client/wiki/Retrieving-data) +[Modifying data](https://github.com/object/Simple.OData.Client/wiki/Modifying-data) +[Request authentication and interception](https://github.com/object/Simple.OData.Client/wiki/Request-authentication-and-interception) +[Advanced OData tutorial](https://github.com/object/Simple.OData.Client/wiki/Advanced-OData-tutorial) +[Using Simple.OData.Client with Xamarin iOS and Android mobile apps](https://github.com/object/Simple.OData.Client/wiki/Using-Simple.OData.Client-with-Xamarin-iOS-and-Android-mobile-apps) + + +Further information can be found on the [wiki](https://github.com/object/Simple.OData.Client/wiki). + +## Ecosystem + +| Project | Status | Description | +|---------|--------|-------------| +| [simple-odata-client] | ![simple-odata-client-status] | Combined Package that can work with OData feeds that implement both V1-3 and V4 OData Protocol +| [simple-odata-v3-client] | ![simple-odata-v3-client-status] | Smaller footprint client supporting only OData feeds V1-3 +| [simple-odata-v4-client] | ![simple-odata-v4-client-status] | Smaller footprint client supporting only OData feeds V4 + +[simple-odata-client]: https://www.nuget.org/packages/Simple.OData.Client/ +[simple-odata-v3-client]: https://www.nuget.org/packages/Simple.OData.v3.Client/ +[simple-odata-v4-client]: https://www.nuget.org/packages/Simple.OData.v4.Client/ + +[simple-odata-client-status]: https://img.shields.io/nuget/v/Simple.OData.Client.svg +[simple-odata-v3-client-status]: https://img.shields.io/nuget/v/Simple.OData.v3.Client.svg +[simple-odata-v4-client-status]: https://img.shields.io/nuget/v/Simple.OData.v4.Client.svg + + +## Changelog + +Detailed changes for each release are documented in the [release notes](https://github.com/object/Simple.OData.Client/blob/master/RELEASE_NOTES.md) + and a list of releases can be found [here](https://github.com/object/simple.odata.client/releases) + +## Contributors + +Thank you to all the people who have contributed to the project. + +<a href="https://github.com/object/Simple.OData.Client/graphs/contributors">Source code Contributors</a> + + + +## License +<a href="http://opensource.org/licenses/MIT">MIT-licensed</a>. diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 000000000..7e5e83547 --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +#### 5.0.0.1 (2018-05-22) +* Fix netstandard dependencies + +#### 5.0.0 (2018-05-21) +* Support for netstandard 2.0 diff --git a/Simple.Data.OData.NorthwindModel/App.config b/Simple.Data.OData.NorthwindModel/App.config deleted file mode 100644 index 9a4f9a758..000000000 --- a/Simple.Data.OData.NorthwindModel/App.config +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <configSections> - <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> - <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> - <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> - </configSections> - <connectionStrings> - <add name="NorthwindEntities" connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="Data Source=Northwind.sdf"" providerName="System.Data.EntityClient" /> - </connectionStrings> - <entityFramework> - <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> - <parameters> - <parameter value="System.Data.SqlServerCe.4.0" /> - </parameters> - </defaultConnectionFactory> - </entityFramework> -</configuration> \ No newline at end of file diff --git a/Simple.Data.OData.NorthwindModel/Northwind.Designer.cs b/Simple.Data.OData.NorthwindModel/Northwind.Designer.cs deleted file mode 100644 index 89814afa0..000000000 --- a/Simple.Data.OData.NorthwindModel/Northwind.Designer.cs +++ /dev/null @@ -1,3045 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated from a template. -// -// Manual changes to this file may cause unexpected behavior in your application. -// Manual changes to this file will be overwritten if the code is regenerated. -// </auto-generated> -//------------------------------------------------------------------------------ - -using System; -using System.ComponentModel; -using System.Data.EntityClient; -using System.Data.Objects; -using System.Data.Objects.DataClasses; -using System.Linq; -using System.Runtime.Serialization; -using System.Xml.Serialization; - -[assembly: EdmSchemaAttribute()] -#region EDM Relationship Metadata - -[assembly: EdmRelationshipAttribute("NorthwindModel", "Products_FK01", "Category", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Simple.Data.OData.NorthwindModel.Categories), "Products", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Products), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Orders_FK00", "Customer", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(Simple.Data.OData.NorthwindModel.Customers), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Orders), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Orders_FK02", "Employee", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Simple.Data.OData.NorthwindModel.Employees), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Orders), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Order_Details_FK00", "Product", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(Simple.Data.OData.NorthwindModel.Products), "Order_Details", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Order_Details), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Order_Details_FK01", "Order", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(Simple.Data.OData.NorthwindModel.Orders), "Order_Details", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Order_Details), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Orders_FK01", "Shipper", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Simple.Data.OData.NorthwindModel.Shippers), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Orders), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Products_FK00", "Supplier", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Simple.Data.OData.NorthwindModel.Suppliers), "Products", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Products), true)] -[assembly: EdmRelationshipAttribute("NorthwindModel", "Employees_FK00", "Superior", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Simple.Data.OData.NorthwindModel.Employees), "Subordinates", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Simple.Data.OData.NorthwindModel.Employees), true)] - -#endregion - -namespace Simple.Data.OData.NorthwindModel -{ - #region Contexts - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public partial class NorthwindEntities : ObjectContext - { - #region Constructors - - /// <summary> - /// Initializes a new NorthwindEntities object using the connection string found in the 'NorthwindEntities' section of the application configuration file. - /// </summary> - public NorthwindEntities() : base("name=NorthwindEntities", "NorthwindEntities") - { - this.ContextOptions.LazyLoadingEnabled = true; - OnContextCreated(); - } - - /// <summary> - /// Initialize a new NorthwindEntities object. - /// </summary> - public NorthwindEntities(string connectionString) : base(connectionString, "NorthwindEntities") - { - this.ContextOptions.LazyLoadingEnabled = true; - OnContextCreated(); - } - - /// <summary> - /// Initialize a new NorthwindEntities object. - /// </summary> - public NorthwindEntities(EntityConnection connection) : base(connection, "NorthwindEntities") - { - this.ContextOptions.LazyLoadingEnabled = true; - OnContextCreated(); - } - - #endregion - - #region Partial Methods - - partial void OnContextCreated(); - - #endregion - - #region ObjectSet Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Categories> Categories - { - get - { - if ((_Categories == null)) - { - _Categories = base.CreateObjectSet<Categories>("Categories"); - } - return _Categories; - } - } - private ObjectSet<Categories> _Categories; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Customers> Customers - { - get - { - if ((_Customers == null)) - { - _Customers = base.CreateObjectSet<Customers>("Customers"); - } - return _Customers; - } - } - private ObjectSet<Customers> _Customers; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Employees> Employees - { - get - { - if ((_Employees == null)) - { - _Employees = base.CreateObjectSet<Employees>("Employees"); - } - return _Employees; - } - } - private ObjectSet<Employees> _Employees; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Order_Details> Order_Details - { - get - { - if ((_Order_Details == null)) - { - _Order_Details = base.CreateObjectSet<Order_Details>("Order_Details"); - } - return _Order_Details; - } - } - private ObjectSet<Order_Details> _Order_Details; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Orders> Orders - { - get - { - if ((_Orders == null)) - { - _Orders = base.CreateObjectSet<Orders>("Orders"); - } - return _Orders; - } - } - private ObjectSet<Orders> _Orders; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Products> Products - { - get - { - if ((_Products == null)) - { - _Products = base.CreateObjectSet<Products>("Products"); - } - return _Products; - } - } - private ObjectSet<Products> _Products; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Shippers> Shippers - { - get - { - if ((_Shippers == null)) - { - _Shippers = base.CreateObjectSet<Shippers>("Shippers"); - } - return _Shippers; - } - } - private ObjectSet<Shippers> _Shippers; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Suppliers> Suppliers - { - get - { - if ((_Suppliers == null)) - { - _Suppliers = base.CreateObjectSet<Suppliers>("Suppliers"); - } - return _Suppliers; - } - } - private ObjectSet<Suppliers> _Suppliers; - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - public ObjectSet<Transport> Transport - { - get - { - if ((_Transport == null)) - { - _Transport = base.CreateObjectSet<Transport>("Transport"); - } - return _Transport; - } - } - private ObjectSet<Transport> _Transport; - - #endregion - - #region AddTo Methods - - /// <summary> - /// Deprecated Method for adding a new object to the Categories EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToCategories(Categories categories) - { - base.AddObject("Categories", categories); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Customers EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToCustomers(Customers customers) - { - base.AddObject("Customers", customers); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Employees EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToEmployees(Employees employees) - { - base.AddObject("Employees", employees); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Order_Details EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToOrder_Details(Order_Details order_Details) - { - base.AddObject("Order_Details", order_Details); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Orders EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToOrders(Orders orders) - { - base.AddObject("Orders", orders); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Products EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToProducts(Products products) - { - base.AddObject("Products", products); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Shippers EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToShippers(Shippers shippers) - { - base.AddObject("Shippers", shippers); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Suppliers EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToSuppliers(Suppliers suppliers) - { - base.AddObject("Suppliers", suppliers); - } - - /// <summary> - /// Deprecated Method for adding a new object to the Transport EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. - /// </summary> - public void AddToTransport(Transport transport) - { - base.AddObject("Transport", transport); - } - - #endregion - - } - - #endregion - - #region Entities - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Categories")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Categories : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Categories object. - /// </summary> - /// <param name="categoryID">Initial value of the CategoryID property.</param> - /// <param name="categoryName">Initial value of the CategoryName property.</param> - public static Categories CreateCategories(global::System.Int32 categoryID, global::System.String categoryName) - { - Categories categories = new Categories(); - categories.CategoryID = categoryID; - categories.CategoryName = categoryName; - return categories; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 CategoryID - { - get - { - return _CategoryID; - } - set - { - if (_CategoryID != value) - { - OnCategoryIDChanging(value); - ReportPropertyChanging("CategoryID"); - _CategoryID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("CategoryID"); - OnCategoryIDChanged(); - } - } - } - private global::System.Int32 _CategoryID; - partial void OnCategoryIDChanging(global::System.Int32 value); - partial void OnCategoryIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CategoryName - { - get - { - return _CategoryName; - } - set - { - OnCategoryNameChanging(value); - ReportPropertyChanging("CategoryName"); - _CategoryName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CategoryName"); - OnCategoryNameChanged(); - } - } - private global::System.String _CategoryName; - partial void OnCategoryNameChanging(global::System.String value); - partial void OnCategoryNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Description - { - get - { - return _Description; - } - set - { - OnDescriptionChanging(value); - ReportPropertyChanging("Description"); - _Description = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Description"); - OnDescriptionChanged(); - } - } - private global::System.String _Description; - partial void OnDescriptionChanging(global::System.String value); - partial void OnDescriptionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.Byte[] Picture - { - get - { - return StructuralObject.GetValidValue(_Picture); - } - set - { - OnPictureChanging(value); - ReportPropertyChanging("Picture"); - _Picture = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Picture"); - OnPictureChanged(); - } - } - private global::System.Byte[] _Picture; - partial void OnPictureChanging(global::System.Byte[] value); - partial void OnPictureChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Products_FK01", "Products")] - public EntityCollection<Products> Products - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Products>("NorthwindModel.Products_FK01", "Products"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Products>("NorthwindModel.Products_FK01", "Products", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Customers")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Customers : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Customers object. - /// </summary> - /// <param name="customerID">Initial value of the CustomerID property.</param> - /// <param name="companyName">Initial value of the CompanyName property.</param> - public static Customers CreateCustomers(global::System.String customerID, global::System.String companyName) - { - Customers customers = new Customers(); - customers.CustomerID = customerID; - customers.CompanyName = companyName; - return customers; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CustomerID - { - get - { - return _CustomerID; - } - set - { - if (_CustomerID != value) - { - OnCustomerIDChanging(value); - ReportPropertyChanging("CustomerID"); - _CustomerID = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CustomerID"); - OnCustomerIDChanged(); - } - } - } - private global::System.String _CustomerID; - partial void OnCustomerIDChanging(global::System.String value); - partial void OnCustomerIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CompanyName - { - get - { - return _CompanyName; - } - set - { - OnCompanyNameChanging(value); - ReportPropertyChanging("CompanyName"); - _CompanyName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CompanyName"); - OnCompanyNameChanged(); - } - } - private global::System.String _CompanyName; - partial void OnCompanyNameChanging(global::System.String value); - partial void OnCompanyNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ContactName - { - get - { - return _ContactName; - } - set - { - OnContactNameChanging(value); - ReportPropertyChanging("ContactName"); - _ContactName = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ContactName"); - OnContactNameChanged(); - } - } - private global::System.String _ContactName; - partial void OnContactNameChanging(global::System.String value); - partial void OnContactNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ContactTitle - { - get - { - return _ContactTitle; - } - set - { - OnContactTitleChanging(value); - ReportPropertyChanging("ContactTitle"); - _ContactTitle = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ContactTitle"); - OnContactTitleChanged(); - } - } - private global::System.String _ContactTitle; - partial void OnContactTitleChanging(global::System.String value); - partial void OnContactTitleChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Address - { - get - { - return _Address; - } - set - { - OnAddressChanging(value); - ReportPropertyChanging("Address"); - _Address = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Address"); - OnAddressChanged(); - } - } - private global::System.String _Address; - partial void OnAddressChanging(global::System.String value); - partial void OnAddressChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String City - { - get - { - return _City; - } - set - { - OnCityChanging(value); - ReportPropertyChanging("City"); - _City = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("City"); - OnCityChanged(); - } - } - private global::System.String _City; - partial void OnCityChanging(global::System.String value); - partial void OnCityChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Region - { - get - { - return _Region; - } - set - { - OnRegionChanging(value); - ReportPropertyChanging("Region"); - _Region = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Region"); - OnRegionChanged(); - } - } - private global::System.String _Region; - partial void OnRegionChanging(global::System.String value); - partial void OnRegionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String PostalCode - { - get - { - return _PostalCode; - } - set - { - OnPostalCodeChanging(value); - ReportPropertyChanging("PostalCode"); - _PostalCode = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("PostalCode"); - OnPostalCodeChanged(); - } - } - private global::System.String _PostalCode; - partial void OnPostalCodeChanging(global::System.String value); - partial void OnPostalCodeChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Country - { - get - { - return _Country; - } - set - { - OnCountryChanging(value); - ReportPropertyChanging("Country"); - _Country = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Country"); - OnCountryChanged(); - } - } - private global::System.String _Country; - partial void OnCountryChanging(global::System.String value); - partial void OnCountryChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Phone - { - get - { - return _Phone; - } - set - { - OnPhoneChanging(value); - ReportPropertyChanging("Phone"); - _Phone = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Phone"); - OnPhoneChanged(); - } - } - private global::System.String _Phone; - partial void OnPhoneChanging(global::System.String value); - partial void OnPhoneChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Fax - { - get - { - return _Fax; - } - set - { - OnFaxChanging(value); - ReportPropertyChanging("Fax"); - _Fax = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Fax"); - OnFaxChanged(); - } - } - private global::System.String _Fax; - partial void OnFaxChanging(global::System.String value); - partial void OnFaxChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK00", "Orders")] - public EntityCollection<Orders> Orders - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Orders>("NorthwindModel.Orders_FK00", "Orders"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Orders>("NorthwindModel.Orders_FK00", "Orders", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Employees")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Employees : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Employees object. - /// </summary> - /// <param name="employeeID">Initial value of the EmployeeID property.</param> - /// <param name="lastName">Initial value of the LastName property.</param> - /// <param name="firstName">Initial value of the FirstName property.</param> - public static Employees CreateEmployees(global::System.Int32 employeeID, global::System.String lastName, global::System.String firstName) - { - Employees employees = new Employees(); - employees.EmployeeID = employeeID; - employees.LastName = lastName; - employees.FirstName = firstName; - return employees; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 EmployeeID - { - get - { - return _EmployeeID; - } - set - { - if (_EmployeeID != value) - { - OnEmployeeIDChanging(value); - ReportPropertyChanging("EmployeeID"); - _EmployeeID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("EmployeeID"); - OnEmployeeIDChanged(); - } - } - } - private global::System.Int32 _EmployeeID; - partial void OnEmployeeIDChanging(global::System.Int32 value); - partial void OnEmployeeIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String LastName - { - get - { - return _LastName; - } - set - { - OnLastNameChanging(value); - ReportPropertyChanging("LastName"); - _LastName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("LastName"); - OnLastNameChanged(); - } - } - private global::System.String _LastName; - partial void OnLastNameChanging(global::System.String value); - partial void OnLastNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String FirstName - { - get - { - return _FirstName; - } - set - { - OnFirstNameChanging(value); - ReportPropertyChanging("FirstName"); - _FirstName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("FirstName"); - OnFirstNameChanged(); - } - } - private global::System.String _FirstName; - partial void OnFirstNameChanging(global::System.String value); - partial void OnFirstNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Title - { - get - { - return _Title; - } - set - { - OnTitleChanging(value); - ReportPropertyChanging("Title"); - _Title = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Title"); - OnTitleChanged(); - } - } - private global::System.String _Title; - partial void OnTitleChanging(global::System.String value); - partial void OnTitleChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.DateTime> BirthDate - { - get - { - return _BirthDate; - } - set - { - OnBirthDateChanging(value); - ReportPropertyChanging("BirthDate"); - _BirthDate = StructuralObject.SetValidValue(value); - ReportPropertyChanged("BirthDate"); - OnBirthDateChanged(); - } - } - private Nullable<global::System.DateTime> _BirthDate; - partial void OnBirthDateChanging(Nullable<global::System.DateTime> value); - partial void OnBirthDateChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.DateTime> HireDate - { - get - { - return _HireDate; - } - set - { - OnHireDateChanging(value); - ReportPropertyChanging("HireDate"); - _HireDate = StructuralObject.SetValidValue(value); - ReportPropertyChanged("HireDate"); - OnHireDateChanged(); - } - } - private Nullable<global::System.DateTime> _HireDate; - partial void OnHireDateChanging(Nullable<global::System.DateTime> value); - partial void OnHireDateChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Address - { - get - { - return _Address; - } - set - { - OnAddressChanging(value); - ReportPropertyChanging("Address"); - _Address = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Address"); - OnAddressChanged(); - } - } - private global::System.String _Address; - partial void OnAddressChanging(global::System.String value); - partial void OnAddressChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String City - { - get - { - return _City; - } - set - { - OnCityChanging(value); - ReportPropertyChanging("City"); - _City = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("City"); - OnCityChanged(); - } - } - private global::System.String _City; - partial void OnCityChanging(global::System.String value); - partial void OnCityChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Region - { - get - { - return _Region; - } - set - { - OnRegionChanging(value); - ReportPropertyChanging("Region"); - _Region = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Region"); - OnRegionChanged(); - } - } - private global::System.String _Region; - partial void OnRegionChanging(global::System.String value); - partial void OnRegionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String PostalCode - { - get - { - return _PostalCode; - } - set - { - OnPostalCodeChanging(value); - ReportPropertyChanging("PostalCode"); - _PostalCode = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("PostalCode"); - OnPostalCodeChanged(); - } - } - private global::System.String _PostalCode; - partial void OnPostalCodeChanging(global::System.String value); - partial void OnPostalCodeChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Country - { - get - { - return _Country; - } - set - { - OnCountryChanging(value); - ReportPropertyChanging("Country"); - _Country = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Country"); - OnCountryChanged(); - } - } - private global::System.String _Country; - partial void OnCountryChanging(global::System.String value); - partial void OnCountryChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String HomePhone - { - get - { - return _HomePhone; - } - set - { - OnHomePhoneChanging(value); - ReportPropertyChanging("HomePhone"); - _HomePhone = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("HomePhone"); - OnHomePhoneChanged(); - } - } - private global::System.String _HomePhone; - partial void OnHomePhoneChanging(global::System.String value); - partial void OnHomePhoneChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Extension - { - get - { - return _Extension; - } - set - { - OnExtensionChanging(value); - ReportPropertyChanging("Extension"); - _Extension = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Extension"); - OnExtensionChanged(); - } - } - private global::System.String _Extension; - partial void OnExtensionChanging(global::System.String value); - partial void OnExtensionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.Byte[] Photo - { - get - { - return StructuralObject.GetValidValue(_Photo); - } - set - { - OnPhotoChanging(value); - ReportPropertyChanging("Photo"); - _Photo = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Photo"); - OnPhotoChanged(); - } - } - private global::System.Byte[] _Photo; - partial void OnPhotoChanging(global::System.Byte[] value); - partial void OnPhotoChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Notes - { - get - { - return _Notes; - } - set - { - OnNotesChanging(value); - ReportPropertyChanging("Notes"); - _Notes = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Notes"); - OnNotesChanged(); - } - } - private global::System.String _Notes; - partial void OnNotesChanging(global::System.String value); - partial void OnNotesChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int32> ReportsTo - { - get - { - return _ReportsTo; - } - set - { - OnReportsToChanging(value); - ReportPropertyChanging("ReportsTo"); - _ReportsTo = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ReportsTo"); - OnReportsToChanged(); - } - } - private Nullable<global::System.Int32> _ReportsTo; - partial void OnReportsToChanging(Nullable<global::System.Int32> value); - partial void OnReportsToChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK02", "Orders")] - public EntityCollection<Orders> Orders - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Orders>("NorthwindModel.Orders_FK02", "Orders"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Orders>("NorthwindModel.Orders_FK02", "Orders", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Employees_FK00", "Superior")] - public Employees Superior - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Employees_FK00", "Superior").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Employees_FK00", "Superior").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Employees> SuperiorReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Employees_FK00", "Superior"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Employees>("NorthwindModel.Employees_FK00", "Superior", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Employees_FK00", "Subordinates")] - public EntityCollection<Employees> Subordinates - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Employees>("NorthwindModel.Employees_FK00", "Subordinates"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Employees>("NorthwindModel.Employees_FK00", "Subordinates", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Order_Details")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Order_Details : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Order_Details object. - /// </summary> - /// <param name="orderID">Initial value of the OrderID property.</param> - /// <param name="productID">Initial value of the ProductID property.</param> - /// <param name="unitPrice">Initial value of the UnitPrice property.</param> - /// <param name="quantity">Initial value of the Quantity property.</param> - /// <param name="discount">Initial value of the Discount property.</param> - public static Order_Details CreateOrder_Details(global::System.Int32 orderID, global::System.Int32 productID, global::System.Decimal unitPrice, global::System.Int16 quantity, global::System.Single discount) - { - Order_Details order_Details = new Order_Details(); - order_Details.OrderID = orderID; - order_Details.ProductID = productID; - order_Details.UnitPrice = unitPrice; - order_Details.Quantity = quantity; - order_Details.Discount = discount; - return order_Details; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 OrderID - { - get - { - return _OrderID; - } - set - { - if (_OrderID != value) - { - OnOrderIDChanging(value); - ReportPropertyChanging("OrderID"); - _OrderID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("OrderID"); - OnOrderIDChanged(); - } - } - } - private global::System.Int32 _OrderID; - partial void OnOrderIDChanging(global::System.Int32 value); - partial void OnOrderIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 ProductID - { - get - { - return _ProductID; - } - set - { - if (_ProductID != value) - { - OnProductIDChanging(value); - ReportPropertyChanging("ProductID"); - _ProductID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ProductID"); - OnProductIDChanged(); - } - } - } - private global::System.Int32 _ProductID; - partial void OnProductIDChanging(global::System.Int32 value); - partial void OnProductIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Decimal UnitPrice - { - get - { - return _UnitPrice; - } - set - { - OnUnitPriceChanging(value); - ReportPropertyChanging("UnitPrice"); - _UnitPrice = StructuralObject.SetValidValue(value); - ReportPropertyChanged("UnitPrice"); - OnUnitPriceChanged(); - } - } - private global::System.Decimal _UnitPrice; - partial void OnUnitPriceChanging(global::System.Decimal value); - partial void OnUnitPriceChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int16 Quantity - { - get - { - return _Quantity; - } - set - { - OnQuantityChanging(value); - ReportPropertyChanging("Quantity"); - _Quantity = StructuralObject.SetValidValue(value); - ReportPropertyChanged("Quantity"); - OnQuantityChanged(); - } - } - private global::System.Int16 _Quantity; - partial void OnQuantityChanging(global::System.Int16 value); - partial void OnQuantityChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Single Discount - { - get - { - return _Discount; - } - set - { - OnDiscountChanging(value); - ReportPropertyChanging("Discount"); - _Discount = StructuralObject.SetValidValue(value); - ReportPropertyChanged("Discount"); - OnDiscountChanged(); - } - } - private global::System.Single _Discount; - partial void OnDiscountChanging(global::System.Single value); - partial void OnDiscountChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Order_Details_FK00", "Product")] - public Products Product - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Products>("NorthwindModel.Order_Details_FK00", "Product").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Products>("NorthwindModel.Order_Details_FK00", "Product").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Products> ProductReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Products>("NorthwindModel.Order_Details_FK00", "Product"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Products>("NorthwindModel.Order_Details_FK00", "Product", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Order_Details_FK01", "Order")] - public Orders Order - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Orders>("NorthwindModel.Order_Details_FK01", "Order").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Orders>("NorthwindModel.Order_Details_FK01", "Order").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Orders> OrderReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Orders>("NorthwindModel.Order_Details_FK01", "Order"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Orders>("NorthwindModel.Order_Details_FK01", "Order", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Orders")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Orders : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Orders object. - /// </summary> - /// <param name="orderID">Initial value of the OrderID property.</param> - /// <param name="customerID">Initial value of the CustomerID property.</param> - public static Orders CreateOrders(global::System.Int32 orderID, global::System.String customerID) - { - Orders orders = new Orders(); - orders.OrderID = orderID; - orders.CustomerID = customerID; - return orders; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 OrderID - { - get - { - return _OrderID; - } - set - { - if (_OrderID != value) - { - OnOrderIDChanging(value); - ReportPropertyChanging("OrderID"); - _OrderID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("OrderID"); - OnOrderIDChanged(); - } - } - } - private global::System.Int32 _OrderID; - partial void OnOrderIDChanging(global::System.Int32 value); - partial void OnOrderIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CustomerID - { - get - { - return _CustomerID; - } - set - { - OnCustomerIDChanging(value); - ReportPropertyChanging("CustomerID"); - _CustomerID = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CustomerID"); - OnCustomerIDChanged(); - } - } - private global::System.String _CustomerID; - partial void OnCustomerIDChanging(global::System.String value); - partial void OnCustomerIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int32> EmployeeID - { - get - { - return _EmployeeID; - } - set - { - OnEmployeeIDChanging(value); - ReportPropertyChanging("EmployeeID"); - _EmployeeID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("EmployeeID"); - OnEmployeeIDChanged(); - } - } - private Nullable<global::System.Int32> _EmployeeID; - partial void OnEmployeeIDChanging(Nullable<global::System.Int32> value); - partial void OnEmployeeIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipName - { - get - { - return _ShipName; - } - set - { - OnShipNameChanging(value); - ReportPropertyChanging("ShipName"); - _ShipName = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipName"); - OnShipNameChanged(); - } - } - private global::System.String _ShipName; - partial void OnShipNameChanging(global::System.String value); - partial void OnShipNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipAddress - { - get - { - return _ShipAddress; - } - set - { - OnShipAddressChanging(value); - ReportPropertyChanging("ShipAddress"); - _ShipAddress = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipAddress"); - OnShipAddressChanged(); - } - } - private global::System.String _ShipAddress; - partial void OnShipAddressChanging(global::System.String value); - partial void OnShipAddressChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipCity - { - get - { - return _ShipCity; - } - set - { - OnShipCityChanging(value); - ReportPropertyChanging("ShipCity"); - _ShipCity = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipCity"); - OnShipCityChanged(); - } - } - private global::System.String _ShipCity; - partial void OnShipCityChanging(global::System.String value); - partial void OnShipCityChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipRegion - { - get - { - return _ShipRegion; - } - set - { - OnShipRegionChanging(value); - ReportPropertyChanging("ShipRegion"); - _ShipRegion = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipRegion"); - OnShipRegionChanged(); - } - } - private global::System.String _ShipRegion; - partial void OnShipRegionChanging(global::System.String value); - partial void OnShipRegionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipPostalCode - { - get - { - return _ShipPostalCode; - } - set - { - OnShipPostalCodeChanging(value); - ReportPropertyChanging("ShipPostalCode"); - _ShipPostalCode = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipPostalCode"); - OnShipPostalCodeChanged(); - } - } - private global::System.String _ShipPostalCode; - partial void OnShipPostalCodeChanging(global::System.String value); - partial void OnShipPostalCodeChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipCountry - { - get - { - return _ShipCountry; - } - set - { - OnShipCountryChanging(value); - ReportPropertyChanging("ShipCountry"); - _ShipCountry = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipCountry"); - OnShipCountryChanged(); - } - } - private global::System.String _ShipCountry; - partial void OnShipCountryChanging(global::System.String value); - partial void OnShipCountryChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int32> ShipVia - { - get - { - return _ShipVia; - } - set - { - OnShipViaChanging(value); - ReportPropertyChanging("ShipVia"); - _ShipVia = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ShipVia"); - OnShipViaChanged(); - } - } - private Nullable<global::System.Int32> _ShipVia; - partial void OnShipViaChanging(Nullable<global::System.Int32> value); - partial void OnShipViaChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.DateTime> OrderDate - { - get - { - return _OrderDate; - } - set - { - OnOrderDateChanging(value); - ReportPropertyChanging("OrderDate"); - _OrderDate = StructuralObject.SetValidValue(value); - ReportPropertyChanged("OrderDate"); - OnOrderDateChanged(); - } - } - private Nullable<global::System.DateTime> _OrderDate; - partial void OnOrderDateChanging(Nullable<global::System.DateTime> value); - partial void OnOrderDateChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.DateTime> RequiredDate - { - get - { - return _RequiredDate; - } - set - { - OnRequiredDateChanging(value); - ReportPropertyChanging("RequiredDate"); - _RequiredDate = StructuralObject.SetValidValue(value); - ReportPropertyChanged("RequiredDate"); - OnRequiredDateChanged(); - } - } - private Nullable<global::System.DateTime> _RequiredDate; - partial void OnRequiredDateChanging(Nullable<global::System.DateTime> value); - partial void OnRequiredDateChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.DateTime> ShippedDate - { - get - { - return _ShippedDate; - } - set - { - OnShippedDateChanging(value); - ReportPropertyChanging("ShippedDate"); - _ShippedDate = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ShippedDate"); - OnShippedDateChanged(); - } - } - private Nullable<global::System.DateTime> _ShippedDate; - partial void OnShippedDateChanging(Nullable<global::System.DateTime> value); - partial void OnShippedDateChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Decimal> Freight - { - get - { - return _Freight; - } - set - { - OnFreightChanging(value); - ReportPropertyChanging("Freight"); - _Freight = StructuralObject.SetValidValue(value); - ReportPropertyChanged("Freight"); - OnFreightChanged(); - } - } - private Nullable<global::System.Decimal> _Freight; - partial void OnFreightChanging(Nullable<global::System.Decimal> value); - partial void OnFreightChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK00", "Customer")] - public Customers Customer - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customers>("NorthwindModel.Orders_FK00", "Customer").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customers>("NorthwindModel.Orders_FK00", "Customer").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Customers> CustomerReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customers>("NorthwindModel.Orders_FK00", "Customer"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Customers>("NorthwindModel.Orders_FK00", "Customer", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK02", "Employee")] - public Employees Employee - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Orders_FK02", "Employee").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Orders_FK02", "Employee").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Employees> EmployeeReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employees>("NorthwindModel.Orders_FK02", "Employee"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Employees>("NorthwindModel.Orders_FK02", "Employee", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Order_Details_FK01", "Order_Details")] - public EntityCollection<Order_Details> Order_Details - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order_Details>("NorthwindModel.Order_Details_FK01", "Order_Details"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order_Details>("NorthwindModel.Order_Details_FK01", "Order_Details", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK01", "Shipper")] - public Shippers Shipper - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shippers>("NorthwindModel.Orders_FK01", "Shipper").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shippers>("NorthwindModel.Orders_FK01", "Shipper").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Shippers> ShipperReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shippers>("NorthwindModel.Orders_FK01", "Shipper"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Shippers>("NorthwindModel.Orders_FK01", "Shipper", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Products")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Products : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Products object. - /// </summary> - /// <param name="productID">Initial value of the ProductID property.</param> - /// <param name="productName">Initial value of the ProductName property.</param> - /// <param name="discontinued">Initial value of the Discontinued property.</param> - public static Products CreateProducts(global::System.Int32 productID, global::System.String productName, global::System.Boolean discontinued) - { - Products products = new Products(); - products.ProductID = productID; - products.ProductName = productName; - products.Discontinued = discontinued; - return products; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 ProductID - { - get - { - return _ProductID; - } - set - { - if (_ProductID != value) - { - OnProductIDChanging(value); - ReportPropertyChanging("ProductID"); - _ProductID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ProductID"); - OnProductIDChanged(); - } - } - } - private global::System.Int32 _ProductID; - partial void OnProductIDChanging(global::System.Int32 value); - partial void OnProductIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int32> SupplierID - { - get - { - return _SupplierID; - } - set - { - OnSupplierIDChanging(value); - ReportPropertyChanging("SupplierID"); - _SupplierID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("SupplierID"); - OnSupplierIDChanged(); - } - } - private Nullable<global::System.Int32> _SupplierID; - partial void OnSupplierIDChanging(Nullable<global::System.Int32> value); - partial void OnSupplierIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int32> CategoryID - { - get - { - return _CategoryID; - } - set - { - OnCategoryIDChanging(value); - ReportPropertyChanging("CategoryID"); - _CategoryID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("CategoryID"); - OnCategoryIDChanged(); - } - } - private Nullable<global::System.Int32> _CategoryID; - partial void OnCategoryIDChanging(Nullable<global::System.Int32> value); - partial void OnCategoryIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String ProductName - { - get - { - return _ProductName; - } - set - { - OnProductNameChanging(value); - ReportPropertyChanging("ProductName"); - _ProductName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("ProductName"); - OnProductNameChanged(); - } - } - private global::System.String _ProductName; - partial void OnProductNameChanging(global::System.String value); - partial void OnProductNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String EnglishName - { - get - { - return _EnglishName; - } - set - { - OnEnglishNameChanging(value); - ReportPropertyChanging("EnglishName"); - _EnglishName = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("EnglishName"); - OnEnglishNameChanged(); - } - } - private global::System.String _EnglishName; - partial void OnEnglishNameChanging(global::System.String value); - partial void OnEnglishNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String QuantityPerUnit - { - get - { - return _QuantityPerUnit; - } - set - { - OnQuantityPerUnitChanging(value); - ReportPropertyChanging("QuantityPerUnit"); - _QuantityPerUnit = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("QuantityPerUnit"); - OnQuantityPerUnitChanged(); - } - } - private global::System.String _QuantityPerUnit; - partial void OnQuantityPerUnitChanging(global::System.String value); - partial void OnQuantityPerUnitChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Decimal> UnitPrice - { - get - { - return _UnitPrice; - } - set - { - OnUnitPriceChanging(value); - ReportPropertyChanging("UnitPrice"); - _UnitPrice = StructuralObject.SetValidValue(value); - ReportPropertyChanged("UnitPrice"); - OnUnitPriceChanged(); - } - } - private Nullable<global::System.Decimal> _UnitPrice; - partial void OnUnitPriceChanging(Nullable<global::System.Decimal> value); - partial void OnUnitPriceChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int16> UnitsInStock - { - get - { - return _UnitsInStock; - } - set - { - OnUnitsInStockChanging(value); - ReportPropertyChanging("UnitsInStock"); - _UnitsInStock = StructuralObject.SetValidValue(value); - ReportPropertyChanged("UnitsInStock"); - OnUnitsInStockChanged(); - } - } - private Nullable<global::System.Int16> _UnitsInStock; - partial void OnUnitsInStockChanging(Nullable<global::System.Int16> value); - partial void OnUnitsInStockChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int16> UnitsOnOrder - { - get - { - return _UnitsOnOrder; - } - set - { - OnUnitsOnOrderChanging(value); - ReportPropertyChanging("UnitsOnOrder"); - _UnitsOnOrder = StructuralObject.SetValidValue(value); - ReportPropertyChanged("UnitsOnOrder"); - OnUnitsOnOrderChanged(); - } - } - private Nullable<global::System.Int16> _UnitsOnOrder; - partial void OnUnitsOnOrderChanging(Nullable<global::System.Int16> value); - partial void OnUnitsOnOrderChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public Nullable<global::System.Int16> ReorderLevel - { - get - { - return _ReorderLevel; - } - set - { - OnReorderLevelChanging(value); - ReportPropertyChanging("ReorderLevel"); - _ReorderLevel = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ReorderLevel"); - OnReorderLevelChanged(); - } - } - private Nullable<global::System.Int16> _ReorderLevel; - partial void OnReorderLevelChanging(Nullable<global::System.Int16> value); - partial void OnReorderLevelChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Boolean Discontinued - { - get - { - return _Discontinued; - } - set - { - OnDiscontinuedChanging(value); - ReportPropertyChanging("Discontinued"); - _Discontinued = StructuralObject.SetValidValue(value); - ReportPropertyChanged("Discontinued"); - OnDiscontinuedChanged(); - } - } - private global::System.Boolean _Discontinued; - partial void OnDiscontinuedChanging(global::System.Boolean value); - partial void OnDiscontinuedChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Products_FK01", "Category")] - public Categories Category - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Categories>("NorthwindModel.Products_FK01", "Category").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Categories>("NorthwindModel.Products_FK01", "Category").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Categories> CategoryReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Categories>("NorthwindModel.Products_FK01", "Category"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Categories>("NorthwindModel.Products_FK01", "Category", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Order_Details_FK00", "Order_Details")] - public EntityCollection<Order_Details> Order_Details - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order_Details>("NorthwindModel.Order_Details_FK00", "Order_Details"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order_Details>("NorthwindModel.Order_Details_FK00", "Order_Details", value); - } - } - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Products_FK00", "Supplier")] - public Suppliers Supplier - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Suppliers>("NorthwindModel.Products_FK00", "Supplier").Value; - } - set - { - ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Suppliers>("NorthwindModel.Products_FK00", "Supplier").Value = value; - } - } - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [BrowsableAttribute(false)] - [DataMemberAttribute()] - public EntityReference<Suppliers> SupplierReference - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Suppliers>("NorthwindModel.Products_FK00", "Supplier"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Suppliers>("NorthwindModel.Products_FK00", "Supplier", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Shippers")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Shippers : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Shippers object. - /// </summary> - /// <param name="shipperID">Initial value of the ShipperID property.</param> - /// <param name="companyName">Initial value of the CompanyName property.</param> - public static Shippers CreateShippers(global::System.Int32 shipperID, global::System.String companyName) - { - Shippers shippers = new Shippers(); - shippers.ShipperID = shipperID; - shippers.CompanyName = companyName; - return shippers; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 ShipperID - { - get - { - return _ShipperID; - } - set - { - if (_ShipperID != value) - { - OnShipperIDChanging(value); - ReportPropertyChanging("ShipperID"); - _ShipperID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("ShipperID"); - OnShipperIDChanged(); - } - } - } - private global::System.Int32 _ShipperID; - partial void OnShipperIDChanging(global::System.Int32 value); - partial void OnShipperIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CompanyName - { - get - { - return _CompanyName; - } - set - { - OnCompanyNameChanging(value); - ReportPropertyChanging("CompanyName"); - _CompanyName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CompanyName"); - OnCompanyNameChanged(); - } - } - private global::System.String _CompanyName; - partial void OnCompanyNameChanging(global::System.String value); - partial void OnCompanyNameChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Orders_FK01", "Orders")] - public EntityCollection<Orders> Orders - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Orders>("NorthwindModel.Orders_FK01", "Orders"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Orders>("NorthwindModel.Orders_FK01", "Orders", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Ships")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Ships : Transport - { - #region Factory Method - - /// <summary> - /// Create a new Ships object. - /// </summary> - /// <param name="transportID">Initial value of the TransportID property.</param> - public static Ships CreateShips(global::System.Int32 transportID) - { - Ships ships = new Ships(); - ships.TransportID = transportID; - return ships; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ShipName - { - get - { - return _ShipName; - } - set - { - OnShipNameChanging(value); - ReportPropertyChanging("ShipName"); - _ShipName = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ShipName"); - OnShipNameChanged(); - } - } - private global::System.String _ShipName; - partial void OnShipNameChanging(global::System.String value); - partial void OnShipNameChanged(); - - #endregion - - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Suppliers")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Suppliers : EntityObject - { - #region Factory Method - - /// <summary> - /// Create a new Suppliers object. - /// </summary> - /// <param name="supplierID">Initial value of the SupplierID property.</param> - /// <param name="companyName">Initial value of the CompanyName property.</param> - public static Suppliers CreateSuppliers(global::System.Int32 supplierID, global::System.String companyName) - { - Suppliers suppliers = new Suppliers(); - suppliers.SupplierID = supplierID; - suppliers.CompanyName = companyName; - return suppliers; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 SupplierID - { - get - { - return _SupplierID; - } - set - { - if (_SupplierID != value) - { - OnSupplierIDChanging(value); - ReportPropertyChanging("SupplierID"); - _SupplierID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("SupplierID"); - OnSupplierIDChanged(); - } - } - } - private global::System.Int32 _SupplierID; - partial void OnSupplierIDChanging(global::System.Int32 value); - partial void OnSupplierIDChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] - [DataMemberAttribute()] - public global::System.String CompanyName - { - get - { - return _CompanyName; - } - set - { - OnCompanyNameChanging(value); - ReportPropertyChanging("CompanyName"); - _CompanyName = StructuralObject.SetValidValue(value, false); - ReportPropertyChanged("CompanyName"); - OnCompanyNameChanged(); - } - } - private global::System.String _CompanyName; - partial void OnCompanyNameChanging(global::System.String value); - partial void OnCompanyNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ContactName - { - get - { - return _ContactName; - } - set - { - OnContactNameChanging(value); - ReportPropertyChanging("ContactName"); - _ContactName = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ContactName"); - OnContactNameChanged(); - } - } - private global::System.String _ContactName; - partial void OnContactNameChanging(global::System.String value); - partial void OnContactNameChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String ContactTitle - { - get - { - return _ContactTitle; - } - set - { - OnContactTitleChanging(value); - ReportPropertyChanging("ContactTitle"); - _ContactTitle = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("ContactTitle"); - OnContactTitleChanged(); - } - } - private global::System.String _ContactTitle; - partial void OnContactTitleChanging(global::System.String value); - partial void OnContactTitleChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Address - { - get - { - return _Address; - } - set - { - OnAddressChanging(value); - ReportPropertyChanging("Address"); - _Address = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Address"); - OnAddressChanged(); - } - } - private global::System.String _Address; - partial void OnAddressChanging(global::System.String value); - partial void OnAddressChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String City - { - get - { - return _City; - } - set - { - OnCityChanging(value); - ReportPropertyChanging("City"); - _City = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("City"); - OnCityChanged(); - } - } - private global::System.String _City; - partial void OnCityChanging(global::System.String value); - partial void OnCityChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Region - { - get - { - return _Region; - } - set - { - OnRegionChanging(value); - ReportPropertyChanging("Region"); - _Region = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Region"); - OnRegionChanged(); - } - } - private global::System.String _Region; - partial void OnRegionChanging(global::System.String value); - partial void OnRegionChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String PostalCode - { - get - { - return _PostalCode; - } - set - { - OnPostalCodeChanging(value); - ReportPropertyChanging("PostalCode"); - _PostalCode = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("PostalCode"); - OnPostalCodeChanged(); - } - } - private global::System.String _PostalCode; - partial void OnPostalCodeChanging(global::System.String value); - partial void OnPostalCodeChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Country - { - get - { - return _Country; - } - set - { - OnCountryChanging(value); - ReportPropertyChanging("Country"); - _Country = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Country"); - OnCountryChanged(); - } - } - private global::System.String _Country; - partial void OnCountryChanging(global::System.String value); - partial void OnCountryChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Phone - { - get - { - return _Phone; - } - set - { - OnPhoneChanging(value); - ReportPropertyChanging("Phone"); - _Phone = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Phone"); - OnPhoneChanged(); - } - } - private global::System.String _Phone; - partial void OnPhoneChanging(global::System.String value); - partial void OnPhoneChanged(); - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String Fax - { - get - { - return _Fax; - } - set - { - OnFaxChanging(value); - ReportPropertyChanging("Fax"); - _Fax = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("Fax"); - OnFaxChanged(); - } - } - private global::System.String _Fax; - partial void OnFaxChanging(global::System.String value); - partial void OnFaxChanged(); - - #endregion - - - #region Navigation Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [XmlIgnoreAttribute()] - [SoapIgnoreAttribute()] - [DataMemberAttribute()] - [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "Products_FK00", "Products")] - public EntityCollection<Products> Products - { - get - { - return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Products>("NorthwindModel.Products_FK00", "Products"); - } - set - { - if ((value != null)) - { - ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Products>("NorthwindModel.Products_FK00", "Products", value); - } - } - } - - #endregion - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Transport")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - [KnownTypeAttribute(typeof(Ships))] - [KnownTypeAttribute(typeof(Trucks))] - public abstract partial class Transport : EntityObject - { - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] - [DataMemberAttribute()] - public global::System.Int32 TransportID - { - get - { - return _TransportID; - } - set - { - if (_TransportID != value) - { - OnTransportIDChanging(value); - ReportPropertyChanging("TransportID"); - _TransportID = StructuralObject.SetValidValue(value); - ReportPropertyChanged("TransportID"); - OnTransportIDChanged(); - } - } - } - private global::System.Int32 _TransportID; - partial void OnTransportIDChanging(global::System.Int32 value); - partial void OnTransportIDChanged(); - - #endregion - - - } - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Trucks")] - [Serializable()] - [DataContractAttribute(IsReference=true)] - public partial class Trucks : Transport - { - #region Factory Method - - /// <summary> - /// Create a new Trucks object. - /// </summary> - /// <param name="transportID">Initial value of the TransportID property.</param> - public static Trucks CreateTrucks(global::System.Int32 transportID) - { - Trucks trucks = new Trucks(); - trucks.TransportID = transportID; - return trucks; - } - - #endregion - - #region Primitive Properties - - /// <summary> - /// No Metadata Documentation available. - /// </summary> - [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] - [DataMemberAttribute()] - public global::System.String TruckNumber - { - get - { - return _TruckNumber; - } - set - { - OnTruckNumberChanging(value); - ReportPropertyChanging("TruckNumber"); - _TruckNumber = StructuralObject.SetValidValue(value, true); - ReportPropertyChanged("TruckNumber"); - OnTruckNumberChanged(); - } - } - private global::System.String _TruckNumber; - partial void OnTruckNumberChanging(global::System.String value); - partial void OnTruckNumberChanged(); - - #endregion - - - } - - #endregion - - -} diff --git a/Simple.Data.OData.NorthwindModel/Northwind.edmx b/Simple.Data.OData.NorthwindModel/Northwind.edmx deleted file mode 100644 index 3ea64661a..000000000 --- a/Simple.Data.OData.NorthwindModel/Northwind.edmx +++ /dev/null @@ -1,742 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx"> - <!-- EF Runtime content --> - <edmx:Runtime> - <!-- SSDL content --> - <edmx:StorageModels> - <Schema Namespace="NorthwindModel.Store" Alias="Self" Provider="System.Data.SqlServerCe.4.0" ProviderManifestToken="4.0" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl"> - <EntityContainer Name="NorthwindModelStoreContainer"> - <EntitySet Name="Categories" EntityType="NorthwindModel.Store.Categories" store:Type="Tables" /> - <EntitySet Name="Customers" EntityType="NorthwindModel.Store.Customers" store:Type="Tables" /> - <EntitySet Name="Employees" EntityType="NorthwindModel.Store.Employees" store:Type="Tables" /> - <EntitySet Name="Order Details" EntityType="NorthwindModel.Store.Order Details" store:Type="Tables" /> - <EntitySet Name="Orders" EntityType="NorthwindModel.Store.Orders" store:Type="Tables" /> - <EntitySet Name="Products" EntityType="NorthwindModel.Store.Products" store:Type="Tables" /> - <EntitySet Name="Shippers" EntityType="NorthwindModel.Store.Shippers" store:Type="Tables" /> - <EntitySet Name="Suppliers" EntityType="NorthwindModel.Store.Suppliers" store:Type="Tables" /> - <EntitySet Name="Transport" EntityType="NorthwindModel.Store.Transport" store:Type="Tables" /> - <AssociationSet Name="Order Details_FK00" Association="NorthwindModel.Store.Order Details_FK00"> - <End Role="Products" EntitySet="Products" /> - <End Role="Order Details" EntitySet="Order Details" /> - </AssociationSet> - <AssociationSet Name="Order Details_FK01" Association="NorthwindModel.Store.Order Details_FK01"> - <End Role="Orders" EntitySet="Orders" /> - <End Role="Order Details" EntitySet="Order Details" /> - </AssociationSet> - <AssociationSet Name="Orders_FK00" Association="NorthwindModel.Store.Orders_FK00"> - <End Role="Customers" EntitySet="Customers" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Orders_FK01" Association="NorthwindModel.Store.Orders_FK01"> - <End Role="Shippers" EntitySet="Shippers" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Orders_FK02" Association="NorthwindModel.Store.Orders_FK02"> - <End Role="Employees" EntitySet="Employees" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Products_FK00" Association="NorthwindModel.Store.Products_FK00"> - <End Role="Suppliers" EntitySet="Suppliers" /> - <End Role="Products" EntitySet="Products" /> - </AssociationSet> - <AssociationSet Name="Products_FK01" Association="NorthwindModel.Store.Products_FK01"> - <End Role="Categories" EntitySet="Categories" /> - <End Role="Products" EntitySet="Products" /> - </AssociationSet> - </EntityContainer> - <EntityType Name="Categories"> - <Key> - <PropertyRef Name="Category ID" /> - </Key> - <Property Name="Category ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Category Name" Type="nvarchar" Nullable="false" MaxLength="15" /> - <Property Name="Description" Type="ntext" /> - <Property Name="Picture" Type="image" /> - </EntityType> - <EntityType Name="Customers"> - <Key> - <PropertyRef Name="Customer ID" /> - </Key> - <Property Name="Customer ID" Type="nvarchar" Nullable="false" MaxLength="5" /> - <Property Name="Company Name" Type="nvarchar" Nullable="false" MaxLength="40" /> - <Property Name="Contact Name" Type="nvarchar" MaxLength="30" /> - <Property Name="Contact Title" Type="nvarchar" MaxLength="30" /> - <Property Name="Address" Type="nvarchar" MaxLength="60" /> - <Property Name="City" Type="nvarchar" MaxLength="15" /> - <Property Name="Region" Type="nvarchar" MaxLength="15" /> - <Property Name="Postal Code" Type="nvarchar" MaxLength="10" /> - <Property Name="Country" Type="nvarchar" MaxLength="15" /> - <Property Name="Phone" Type="nvarchar" MaxLength="24" /> - <Property Name="Fax" Type="nvarchar" MaxLength="24" /> - </EntityType> - <EntityType Name="Employees"> - <Key> - <PropertyRef Name="Employee ID" /> - </Key> - <Property Name="Employee ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Last Name" Type="nvarchar" Nullable="false" MaxLength="20" /> - <Property Name="First Name" Type="nvarchar" Nullable="false" MaxLength="10" /> - <Property Name="Title" Type="nvarchar" MaxLength="30" /> - <Property Name="Birth Date" Type="datetime" /> - <Property Name="Hire Date" Type="datetime" /> - <Property Name="Address" Type="nvarchar" MaxLength="60" /> - <Property Name="City" Type="nvarchar" MaxLength="15" /> - <Property Name="Region" Type="nvarchar" MaxLength="15" /> - <Property Name="Postal Code" Type="nvarchar" MaxLength="10" /> - <Property Name="Country" Type="nvarchar" MaxLength="15" /> - <Property Name="Home Phone" Type="nvarchar" MaxLength="24" /> - <Property Name="Extension" Type="nvarchar" MaxLength="4" /> - <Property Name="Photo" Type="image" /> - <Property Name="Notes" Type="ntext" /> - <Property Name="Reports To" Type="int" /> - </EntityType> - <EntityType Name="Order Details"> - <Key> - <PropertyRef Name="Order ID" /> - <PropertyRef Name="Product ID" /> - </Key> - <Property Name="Order ID" Type="int" Nullable="false" /> - <Property Name="Product ID" Type="int" Nullable="false" /> - <Property Name="Unit Price" Type="money" Nullable="false" /> - <Property Name="Quantity" Type="smallint" Nullable="false" /> - <Property Name="Discount" Type="real" Nullable="false" /> - </EntityType> - <EntityType Name="Orders"> - <Key> - <PropertyRef Name="Order ID" /> - </Key> - <Property Name="Order ID" Type="int" Nullable="false" /> - <Property Name="Customer ID" Type="nvarchar" Nullable="false" MaxLength="5" /> - <Property Name="Employee ID" Type="int" /> - <Property Name="Ship Name" Type="nvarchar" MaxLength="40" /> - <Property Name="Ship Address" Type="nvarchar" MaxLength="60" /> - <Property Name="Ship City" Type="nvarchar" MaxLength="15" /> - <Property Name="Ship Region" Type="nvarchar" MaxLength="15" /> - <Property Name="Ship Postal Code" Type="nvarchar" MaxLength="10" /> - <Property Name="Ship Country" Type="nvarchar" MaxLength="15" /> - <Property Name="Ship Via" Type="int" /> - <Property Name="Order Date" Type="datetime" /> - <Property Name="Required Date" Type="datetime" /> - <Property Name="Shipped Date" Type="datetime" /> - <Property Name="Freight" Type="money" /> - </EntityType> - <EntityType Name="Products"> - <Key> - <PropertyRef Name="Product ID" /> - </Key> - <Property Name="Product ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Supplier ID" Type="int" /> - <Property Name="Category ID" Type="int" /> - <Property Name="Product Name" Type="nvarchar" Nullable="false" MaxLength="40" /> - <Property Name="English Name" Type="nvarchar" MaxLength="40" /> - <Property Name="Quantity Per Unit" Type="nvarchar" MaxLength="20" /> - <Property Name="Unit Price" Type="money" /> - <Property Name="Units In Stock" Type="smallint" /> - <Property Name="Units On Order" Type="smallint" /> - <Property Name="Reorder Level" Type="smallint" /> - <Property Name="Discontinued" Type="bit" Nullable="false" /> - </EntityType> - <EntityType Name="Shippers"> - <Key> - <PropertyRef Name="Shipper ID" /> - </Key> - <Property Name="Shipper ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Company Name" Type="nvarchar" Nullable="false" MaxLength="40" /> - </EntityType> - <EntityType Name="Suppliers"> - <Key> - <PropertyRef Name="Supplier ID" /> - </Key> - <Property Name="Supplier ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Company Name" Type="nvarchar" Nullable="false" MaxLength="40" /> - <Property Name="Contact Name" Type="nvarchar" MaxLength="30" /> - <Property Name="Contact Title" Type="nvarchar" MaxLength="30" /> - <Property Name="Address" Type="nvarchar" MaxLength="60" /> - <Property Name="City" Type="nvarchar" MaxLength="15" /> - <Property Name="Region" Type="nvarchar" MaxLength="15" /> - <Property Name="Postal Code" Type="nvarchar" MaxLength="10" /> - <Property Name="Country" Type="nvarchar" MaxLength="15" /> - <Property Name="Phone" Type="nvarchar" MaxLength="24" /> - <Property Name="Fax" Type="nvarchar" MaxLength="24" /> - </EntityType> - <EntityType Name="Transport"> - <Key> - <PropertyRef Name="Transport ID" /> - </Key> - <Property Name="Transport ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" /> - <Property Name="Transport Type" Type="int" Nullable="false" /> - <Property Name="Ship Name" Type="nvarchar" MaxLength="100" /> - <Property Name="Truck Number" Type="nvarchar" MaxLength="100" /> - </EntityType> - <Association Name="Order Details_FK00"> - <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="1" /> - <End Role="Order Details" Type="NorthwindModel.Store.Order Details" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Products"> - <PropertyRef Name="Product ID" /> - </Principal> - <Dependent Role="Order Details"> - <PropertyRef Name="Product ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Order Details_FK01"> - <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="1"> - <OnDelete Action="Cascade" /> - </End> - <End Role="Order Details" Type="NorthwindModel.Store.Order Details" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Orders"> - <PropertyRef Name="Order ID" /> - </Principal> - <Dependent Role="Order Details"> - <PropertyRef Name="Order ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK00"> - <End Role="Customers" Type="NorthwindModel.Store.Customers" Multiplicity="1" /> - <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Customers"> - <PropertyRef Name="Customer ID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="Customer ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK01"> - <End Role="Shippers" Type="NorthwindModel.Store.Shippers" Multiplicity="0..1" /> - <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Shippers"> - <PropertyRef Name="Shipper ID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="Ship Via" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK02"> - <End Role="Employees" Type="NorthwindModel.Store.Employees" Multiplicity="0..1" /> - <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Employees"> - <PropertyRef Name="Employee ID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="Employee ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Products_FK00"> - <End Role="Suppliers" Type="NorthwindModel.Store.Suppliers" Multiplicity="0..1" /> - <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Suppliers"> - <PropertyRef Name="Supplier ID" /> - </Principal> - <Dependent Role="Products"> - <PropertyRef Name="Supplier ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Products_FK01"> - <End Role="Categories" Type="NorthwindModel.Store.Categories" Multiplicity="0..1" /> - <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Categories"> - <PropertyRef Name="Category ID" /> - </Principal> - <Dependent Role="Products"> - <PropertyRef Name="Category ID" /> - </Dependent> - </ReferentialConstraint> - </Association> - </Schema></edmx:StorageModels> - <!-- CSDL content --> - <edmx:ConceptualModels> - <Schema Namespace="NorthwindModel" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm"> - <EntityContainer Name="NorthwindEntities" annotation:LazyLoadingEnabled="true"> - <EntitySet Name="Categories" EntityType="NorthwindModel.Categories" /> - <EntitySet Name="Customers" EntityType="NorthwindModel.Customers" /> - <EntitySet Name="Employees" EntityType="NorthwindModel.Employees" /> - <EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Details" /> - <EntitySet Name="Orders" EntityType="NorthwindModel.Orders" /> - <EntitySet Name="Products" EntityType="NorthwindModel.Products" /> - <EntitySet Name="Shippers" EntityType="NorthwindModel.Shippers" /> - <EntitySet Name="Suppliers" EntityType="NorthwindModel.Suppliers" /> - <AssociationSet Name="Products_FK01" Association="NorthwindModel.Products_FK01"> - <End Role="Category" EntitySet="Categories" /> - <End Role="Products" EntitySet="Products" /> - </AssociationSet> - <AssociationSet Name="Orders_FK00" Association="NorthwindModel.Orders_FK00"> - <End Role="Customer" EntitySet="Customers" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Orders_FK02" Association="NorthwindModel.Orders_FK02"> - <End Role="Employee" EntitySet="Employees" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Order_Details_FK00" Association="NorthwindModel.Order_Details_FK00"> - <End Role="Product" EntitySet="Products" /> - <End Role="Order_Details" EntitySet="Order_Details" /> - </AssociationSet> - <AssociationSet Name="Order_Details_FK01" Association="NorthwindModel.Order_Details_FK01"> - <End Role="Order" EntitySet="Orders" /> - <End Role="Order_Details" EntitySet="Order_Details" /> - </AssociationSet> - <AssociationSet Name="Orders_FK01" Association="NorthwindModel.Orders_FK01"> - <End Role="Shipper" EntitySet="Shippers" /> - <End Role="Orders" EntitySet="Orders" /> - </AssociationSet> - <AssociationSet Name="Products_FK00" Association="NorthwindModel.Products_FK00"> - <End Role="Supplier" EntitySet="Suppliers" /> - <End Role="Products" EntitySet="Products" /> - </AssociationSet> - <AssociationSet Name="Employees_FK00" Association="NorthwindModel.Employees_FK00"> - <End Role="Subordinates" EntitySet="Employees" /> - <End Role="Superior" EntitySet="Employees" /> - </AssociationSet> - <EntitySet Name="Transport" EntityType="NorthwindModel.Transport" /> - </EntityContainer> - <EntityType Name="Categories"> - <Key> - <PropertyRef Name="CategoryID" /> - </Key> - <Property Name="CategoryID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - <Property Name="CategoryName" Type="String" Nullable="false" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Description" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" /> - <Property Name="Picture" Type="Binary" MaxLength="Max" FixedLength="false" /> - <NavigationProperty Name="Products" Relationship="NorthwindModel.Products_FK01" FromRole="Category" ToRole="Products" /> - </EntityType> - <EntityType Name="Customers"> - <Key> - <PropertyRef Name="CustomerID" /> - </Key> - <Property Name="CustomerID" Type="String" Nullable="false" MaxLength="5" Unicode="true" FixedLength="false" /> - <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" /> - <Property Name="ContactName" Type="String" MaxLength="30" Unicode="true" FixedLength="false" /> - <Property Name="ContactTitle" Type="String" MaxLength="30" Unicode="true" FixedLength="false" /> - <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" /> - <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" /> - <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> - <Property Name="Fax" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> - <NavigationProperty Name="Orders" Relationship="NorthwindModel.Orders_FK00" FromRole="Customer" ToRole="Orders" /> - </EntityType> - <EntityType Name="Employees"> - <Key> - <PropertyRef Name="EmployeeID" /> - </Key> - <Property Name="EmployeeID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - <Property Name="LastName" Type="String" Nullable="false" MaxLength="20" Unicode="true" FixedLength="false" /> - <Property Name="FirstName" Type="String" Nullable="false" MaxLength="10" Unicode="true" FixedLength="false" /> - <Property Name="Title" Type="String" MaxLength="30" Unicode="true" FixedLength="false" /> - <Property Name="BirthDate" Type="DateTime" Precision="3" /> - <Property Name="HireDate" Type="DateTime" Precision="3" /> - <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" /> - <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" /> - <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="HomePhone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> - <Property Name="Extension" Type="String" MaxLength="4" Unicode="true" FixedLength="false" /> - <Property Name="Photo" Type="Binary" MaxLength="Max" FixedLength="false" /> - <Property Name="Notes" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" /> - <Property Name="ReportsTo" Type="Int32" /> - <NavigationProperty Name="Orders" Relationship="NorthwindModel.Orders_FK02" FromRole="Employee" ToRole="Orders" /> - <NavigationProperty Name="Superior" Relationship="NorthwindModel.Employees_FK00" FromRole="Subordinates" ToRole="Superior" /> - <NavigationProperty Name="Subordinates" Relationship="NorthwindModel.Employees_FK00" FromRole="Superior" ToRole="Subordinates" /> - </EntityType> - <EntityType Name="Order_Details"> - <Key> - <PropertyRef Name="OrderID" /> - <PropertyRef Name="ProductID" /> - </Key> - <Property Name="OrderID" Type="Int32" Nullable="false" /> - <Property Name="ProductID" Type="Int32" Nullable="false" /> - <Property Name="UnitPrice" Type="Decimal" Nullable="false" Precision="19" Scale="4" /> - <Property Name="Quantity" Type="Int16" Nullable="false" /> - <Property Name="Discount" Type="Single" Nullable="false" /> - <NavigationProperty Name="Product" Relationship="NorthwindModel.Order_Details_FK00" FromRole="Order_Details" ToRole="Product" /> - <NavigationProperty Name="Order" Relationship="NorthwindModel.Order_Details_FK01" FromRole="Order_Details" ToRole="Order" /> - </EntityType> - <EntityType Name="Orders"> - <Key> - <PropertyRef Name="OrderID" /> - </Key> - <Property Name="OrderID" Type="Int32" Nullable="false" /> - <Property Name="CustomerID" Type="String" Nullable="false" MaxLength="5" Unicode="true" FixedLength="false" /> - <Property Name="EmployeeID" Type="Int32" /> - <Property Name="ShipName" Type="String" MaxLength="40" Unicode="true" FixedLength="false" /> - <Property Name="ShipAddress" Type="String" MaxLength="60" Unicode="true" FixedLength="false" /> - <Property Name="ShipCity" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="ShipRegion" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="ShipPostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" /> - <Property Name="ShipCountry" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="ShipVia" Type="Int32" /> - <Property Name="OrderDate" Type="DateTime" Precision="3" /> - <Property Name="RequiredDate" Type="DateTime" Precision="3" /> - <Property Name="ShippedDate" Type="DateTime" Precision="3" /> - <Property Name="Freight" Type="Decimal" Precision="19" Scale="4" /> - <NavigationProperty Name="Customer" Relationship="NorthwindModel.Orders_FK00" FromRole="Orders" ToRole="Customer" /> - <NavigationProperty Name="Employee" Relationship="NorthwindModel.Orders_FK02" FromRole="Orders" ToRole="Employee" /> - <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.Order_Details_FK01" FromRole="Order" ToRole="Order_Details" /> - <NavigationProperty Name="Shipper" Relationship="NorthwindModel.Orders_FK01" FromRole="Orders" ToRole="Shipper" /> - </EntityType> - <EntityType Name="Products"> - <Key> - <PropertyRef Name="ProductID" /> - </Key> - <Property Name="ProductID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - <Property Name="SupplierID" Type="Int32" /> - <Property Name="CategoryID" Type="Int32" /> - <Property Name="ProductName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" /> - <Property Name="EnglishName" Type="String" MaxLength="40" Unicode="true" FixedLength="false" /> - <Property Name="QuantityPerUnit" Type="String" MaxLength="20" Unicode="true" FixedLength="false" /> - <Property Name="UnitPrice" Type="Decimal" Precision="19" Scale="4" /> - <Property Name="UnitsInStock" Type="Int16" /> - <Property Name="UnitsOnOrder" Type="Int16" /> - <Property Name="ReorderLevel" Type="Int16" /> - <Property Name="Discontinued" Type="Boolean" Nullable="false" /> - <NavigationProperty Name="Category" Relationship="NorthwindModel.Products_FK01" FromRole="Products" ToRole="Category" /> - <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.Order_Details_FK00" FromRole="Product" ToRole="Order_Details" /> - <NavigationProperty Name="Supplier" Relationship="NorthwindModel.Products_FK00" FromRole="Products" ToRole="Supplier" /> - </EntityType> - <EntityType Name="Shippers"> - <Key> - <PropertyRef Name="ShipperID" /> - </Key> - <Property Name="ShipperID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" /> - <NavigationProperty Name="Orders" Relationship="NorthwindModel.Orders_FK01" FromRole="Shipper" ToRole="Orders" /> - </EntityType> - <EntityType Name="Suppliers"> - <Key> - <PropertyRef Name="SupplierID" /> - </Key> - <Property Name="SupplierID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" /> - <Property Name="ContactName" Type="String" MaxLength="30" Unicode="true" FixedLength="false" /> - <Property Name="ContactTitle" Type="String" MaxLength="30" Unicode="true" FixedLength="false" /> - <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" /> - <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" /> - <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> - <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> - <Property Name="Fax" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> - <NavigationProperty Name="Products" Relationship="NorthwindModel.Products_FK00" FromRole="Supplier" ToRole="Products" /> - </EntityType> - <Association Name="Products_FK01"> - <End Role="Category" Type="NorthwindModel.Categories" Multiplicity="0..1" /> - <End Role="Products" Type="NorthwindModel.Products" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Category"> - <PropertyRef Name="CategoryID" /> - </Principal> - <Dependent Role="Products"> - <PropertyRef Name="CategoryID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK00"> - <End Role="Customer" Type="NorthwindModel.Customers" Multiplicity="1" /> - <End Role="Orders" Type="NorthwindModel.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Customer"> - <PropertyRef Name="CustomerID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="CustomerID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK02"> - <End Role="Employee" Type="NorthwindModel.Employees" Multiplicity="0..1" /> - <End Role="Orders" Type="NorthwindModel.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Employee"> - <PropertyRef Name="EmployeeID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="EmployeeID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Order_Details_FK00"> - <End Role="Product" Type="NorthwindModel.Products" Multiplicity="1" /> - <End Role="Order_Details" Type="NorthwindModel.Order_Details" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Product"> - <PropertyRef Name="ProductID" /> - </Principal> - <Dependent Role="Order_Details"> - <PropertyRef Name="ProductID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Order_Details_FK01"> - <End Role="Order" Type="NorthwindModel.Orders" Multiplicity="1"> - <OnDelete Action="Cascade" /> - </End> - <End Role="Order_Details" Type="NorthwindModel.Order_Details" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Order"> - <PropertyRef Name="OrderID" /> - </Principal> - <Dependent Role="Order_Details"> - <PropertyRef Name="OrderID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Orders_FK01"> - <End Role="Shipper" Type="NorthwindModel.Shippers" Multiplicity="0..1" /> - <End Role="Orders" Type="NorthwindModel.Orders" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Shipper"> - <PropertyRef Name="ShipperID" /> - </Principal> - <Dependent Role="Orders"> - <PropertyRef Name="ShipVia" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Products_FK00"> - <End Role="Supplier" Type="NorthwindModel.Suppliers" Multiplicity="0..1" /> - <End Role="Products" Type="NorthwindModel.Products" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Supplier"> - <PropertyRef Name="SupplierID" /> - </Principal> - <Dependent Role="Products"> - <PropertyRef Name="SupplierID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="Employees_FK00"> - <End Type="NorthwindModel.Employees" Role="Superior" Multiplicity="0..1" /> - <End Type="NorthwindModel.Employees" Role="Subordinates" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="Superior"> - <PropertyRef Name="EmployeeID" /> - </Principal> - <Dependent Role="Subordinates"> - <PropertyRef Name="ReportsTo" /> - </Dependent> - </ReferentialConstraint> - </Association> - <EntityType Name="Transport" Abstract="true"> - <Key> - <PropertyRef Name="TransportID" /> - </Key> - <Property Type="Int32" Name="TransportID" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> - </EntityType> - <EntityType Name="Ships" BaseType="NorthwindModel.Transport"> - <Property Type="String" Name="ShipName" MaxLength="100" FixedLength="false" Unicode="true" /> - </EntityType> - <EntityType Name="Trucks" BaseType="NorthwindModel.Transport"> - <Property Type="String" Name="TruckNumber" MaxLength="100" FixedLength="false" Unicode="true" /> - </EntityType> - </Schema> - </edmx:ConceptualModels> - <!-- C-S mapping content --> - <edmx:Mappings> - <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs"> - <EntityContainerMapping StorageEntityContainer="NorthwindModelStoreContainer" CdmEntityContainer="NorthwindEntities"> - <EntitySetMapping Name="Categories"> - <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Categories)"> - <MappingFragment StoreEntitySet="Categories"> - <ScalarProperty Name="CategoryID" ColumnName="Category ID" /> - <ScalarProperty Name="Picture" ColumnName="Picture" /> - <ScalarProperty Name="Description" ColumnName="Description" /> - <ScalarProperty Name="CategoryName" ColumnName="Category Name" /> - </MappingFragment> - </EntityTypeMapping> - </EntitySetMapping> - <EntitySetMapping Name="Customers"><EntityTypeMapping TypeName="NorthwindModel.Customers"><MappingFragment StoreEntitySet="Customers"> - <ScalarProperty Name="CustomerID" ColumnName="Customer ID" /> - <ScalarProperty Name="CompanyName" ColumnName="Company Name" /> - <ScalarProperty Name="ContactName" ColumnName="Contact Name" /> - <ScalarProperty Name="ContactTitle" ColumnName="Contact Title" /> - <ScalarProperty Name="Address" ColumnName="Address" /> - <ScalarProperty Name="City" ColumnName="City" /> - <ScalarProperty Name="Region" ColumnName="Region" /> - <ScalarProperty Name="PostalCode" ColumnName="Postal Code" /> - <ScalarProperty Name="Country" ColumnName="Country" /> - <ScalarProperty Name="Phone" ColumnName="Phone" /> - <ScalarProperty Name="Fax" ColumnName="Fax" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Employees"><EntityTypeMapping TypeName="NorthwindModel.Employees"><MappingFragment StoreEntitySet="Employees"> - <ScalarProperty Name="EmployeeID" ColumnName="Employee ID" /> - <ScalarProperty Name="LastName" ColumnName="Last Name" /> - <ScalarProperty Name="FirstName" ColumnName="First Name" /> - <ScalarProperty Name="Title" ColumnName="Title" /> - <ScalarProperty Name="BirthDate" ColumnName="Birth Date" /> - <ScalarProperty Name="HireDate" ColumnName="Hire Date" /> - <ScalarProperty Name="Address" ColumnName="Address" /> - <ScalarProperty Name="City" ColumnName="City" /> - <ScalarProperty Name="Region" ColumnName="Region" /> - <ScalarProperty Name="PostalCode" ColumnName="Postal Code" /> - <ScalarProperty Name="Country" ColumnName="Country" /> - <ScalarProperty Name="HomePhone" ColumnName="Home Phone" /> - <ScalarProperty Name="Extension" ColumnName="Extension" /> - <ScalarProperty Name="Photo" ColumnName="Photo" /> - <ScalarProperty Name="Notes" ColumnName="Notes" /> - <ScalarProperty Name="ReportsTo" ColumnName="Reports To" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Order_Details"><EntityTypeMapping TypeName="NorthwindModel.Order_Details"><MappingFragment StoreEntitySet="Order Details"> - <ScalarProperty Name="OrderID" ColumnName="Order ID" /> - <ScalarProperty Name="ProductID" ColumnName="Product ID" /> - <ScalarProperty Name="UnitPrice" ColumnName="Unit Price" /> - <ScalarProperty Name="Quantity" ColumnName="Quantity" /> - <ScalarProperty Name="Discount" ColumnName="Discount" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Orders"><EntityTypeMapping TypeName="NorthwindModel.Orders"><MappingFragment StoreEntitySet="Orders"> - <ScalarProperty Name="OrderID" ColumnName="Order ID" /> - <ScalarProperty Name="CustomerID" ColumnName="Customer ID" /> - <ScalarProperty Name="EmployeeID" ColumnName="Employee ID" /> - <ScalarProperty Name="ShipName" ColumnName="Ship Name" /> - <ScalarProperty Name="ShipAddress" ColumnName="Ship Address" /> - <ScalarProperty Name="ShipCity" ColumnName="Ship City" /> - <ScalarProperty Name="ShipRegion" ColumnName="Ship Region" /> - <ScalarProperty Name="ShipPostalCode" ColumnName="Ship Postal Code" /> - <ScalarProperty Name="ShipCountry" ColumnName="Ship Country" /> - <ScalarProperty Name="ShipVia" ColumnName="Ship Via" /> - <ScalarProperty Name="OrderDate" ColumnName="Order Date" /> - <ScalarProperty Name="RequiredDate" ColumnName="Required Date" /> - <ScalarProperty Name="ShippedDate" ColumnName="Shipped Date" /> - <ScalarProperty Name="Freight" ColumnName="Freight" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Products"><EntityTypeMapping TypeName="NorthwindModel.Products"><MappingFragment StoreEntitySet="Products"> - <ScalarProperty Name="ProductID" ColumnName="Product ID" /> - <ScalarProperty Name="SupplierID" ColumnName="Supplier ID" /> - <ScalarProperty Name="CategoryID" ColumnName="Category ID" /> - <ScalarProperty Name="ProductName" ColumnName="Product Name" /> - <ScalarProperty Name="EnglishName" ColumnName="English Name" /> - <ScalarProperty Name="QuantityPerUnit" ColumnName="Quantity Per Unit" /> - <ScalarProperty Name="UnitPrice" ColumnName="Unit Price" /> - <ScalarProperty Name="UnitsInStock" ColumnName="Units In Stock" /> - <ScalarProperty Name="UnitsOnOrder" ColumnName="Units On Order" /> - <ScalarProperty Name="ReorderLevel" ColumnName="Reorder Level" /> - <ScalarProperty Name="Discontinued" ColumnName="Discontinued" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Shippers"><EntityTypeMapping TypeName="NorthwindModel.Shippers"><MappingFragment StoreEntitySet="Shippers"> - <ScalarProperty Name="ShipperID" ColumnName="Shipper ID" /> - <ScalarProperty Name="CompanyName" ColumnName="Company Name" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Suppliers"><EntityTypeMapping TypeName="NorthwindModel.Suppliers"><MappingFragment StoreEntitySet="Suppliers"> - <ScalarProperty Name="SupplierID" ColumnName="Supplier ID" /> - <ScalarProperty Name="CompanyName" ColumnName="Company Name" /> - <ScalarProperty Name="ContactName" ColumnName="Contact Name" /> - <ScalarProperty Name="ContactTitle" ColumnName="Contact Title" /> - <ScalarProperty Name="Address" ColumnName="Address" /> - <ScalarProperty Name="City" ColumnName="City" /> - <ScalarProperty Name="Region" ColumnName="Region" /> - <ScalarProperty Name="PostalCode" ColumnName="Postal Code" /> - <ScalarProperty Name="Country" ColumnName="Country" /> - <ScalarProperty Name="Phone" ColumnName="Phone" /> - <ScalarProperty Name="Fax" ColumnName="Fax" /> - </MappingFragment></EntityTypeMapping></EntitySetMapping> - <EntitySetMapping Name="Transport"> - <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Transport)"> - <MappingFragment StoreEntitySet="Transport"> - <ScalarProperty Name="TransportID" ColumnName="Transport ID" /> - </MappingFragment> - </EntityTypeMapping> - <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Ships)"> - <MappingFragment StoreEntitySet="Transport"> - <ScalarProperty Name="ShipName" ColumnName="Ship Name" /> - <ScalarProperty Name="TransportID" ColumnName="Transport ID" /> - <Condition ColumnName="Transport Type" Value="1" /> - </MappingFragment> - </EntityTypeMapping> - <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Trucks)"> - <MappingFragment StoreEntitySet="Transport"> - <ScalarProperty Name="TruckNumber" ColumnName="Truck Number" /> - <ScalarProperty Name="TransportID" ColumnName="Transport ID" /> - <Condition ColumnName="Transport Type" Value="2" /> - </MappingFragment> - </EntityTypeMapping> - </EntitySetMapping> - </EntityContainerMapping> - </Mapping> - </edmx:Mappings> - </edmx:Runtime> - <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) --> - <Designer xmlns="http://schemas.microsoft.com/ado/2008/10/edmx"> - <Connection> - <DesignerInfoPropertySet> - <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" /> - </DesignerInfoPropertySet> - </Connection> - <Options> - <DesignerInfoPropertySet> - <DesignerProperty Name="ValidateOnBuild" Value="true" /> - <DesignerProperty Name="EnablePluralization" Value="False" /> - <DesignerProperty Name="IncludeForeignKeysInModel" Value="True" /> - </DesignerInfoPropertySet> - </Options> - <!-- Diagram content (shape and connector positions) --> - <Diagrams> - <Diagram Name="Northwind" ZoomLevel="81"> - <EntityTypeShape EntityType="NorthwindModel.Categories" Width="1.5" PointX="0.75" PointY="15.75" Height="1.9802864583333317" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Customers" Width="1.5" PointX="0.75" PointY="1.625" Height="3.3263964843749996" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Employees" Width="1.5" PointX="0.75" PointY="8.375" Height="4.6725065104166656" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Order_Details" Width="1.5" PointX="5.25" PointY="2.125" Height="2.3648893229166656" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Orders" Width="1.5" PointX="3" PointY="1" Height="4.4802050781250031" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Products" Width="1.5" PointX="3" PointY="16.875" Height="3.7109993489583317" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Shippers" Width="1.5" PointX="0.75" PointY="13.375" Height="1.5956835937499996" IsExpanded="true" /> - <EntityTypeShape EntityType="NorthwindModel.Suppliers" Width="1.5" PointX="0.75" PointY="18.5" Height="3.326396484374996" IsExpanded="true" /> - <AssociationConnector Association="NorthwindModel.Products_FK01" ManuallyRouted="false"> - <ConnectorPoint PointX="2.25" PointY="17.302643229166666" /> - <ConnectorPoint PointX="3" PointY="17.302643229166666" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Orders_FK00" ManuallyRouted="false"> - <ConnectorPoint PointX="2.25" PointY="3.2881982421875" /> - <ConnectorPoint PointX="3" PointY="3.2881982421875" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Orders_FK02" ManuallyRouted="false"> - <ConnectorPoint PointX="2.25" PointY="10.711253255208334" /> - <ConnectorPoint PointX="3.2604141666666666" PointY="10.711253255208334" /> - <ConnectorPoint PointX="3.4270808333333336" PointY="10.711253255208334" /> - <ConnectorPoint PointX="3.95312625" PointY="10.711253255208334" /> - <ConnectorPoint PointX="3.95312625" PointY="5.4802050781250031" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Order_Details_FK00" ManuallyRouted="false"> - <ConnectorPoint PointX="4.5" PointY="18.730499674479166" /> - <ConnectorPoint PointX="6" PointY="18.730499674479166" /> - <ConnectorPoint PointX="6" PointY="4.4898893229166656" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Order_Details_FK01" ManuallyRouted="false"> - <ConnectorPoint PointX="4.5" PointY="3.3074446614583328" /> - <ConnectorPoint PointX="5.25" PointY="3.3074446614583328" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Orders_FK01" ManuallyRouted="false"> - <ConnectorPoint PointX="2.25" PointY="14.172841796875" /> - <ConnectorPoint PointX="3.3437475" PointY="14.172841796875" /> - <ConnectorPoint PointX="3.3437475" PointY="5.4802050781250031" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Products_FK00" ManuallyRouted="false"> - <ConnectorPoint PointX="2.25" PointY="19.542999674479166" /> - <ConnectorPoint PointX="3" PointY="19.542999674479166" /> - </AssociationConnector> - <AssociationConnector Association="NorthwindModel.Employees_FK00"> - <ConnectorPoint PointX="1.2819230769230767" PointY="13.047506510416666" /> - <ConnectorPoint PointX="1.2819230769230767" PointY="13.297506510416667" /> - <ConnectorPoint PointX="1.7284615384615383" PointY="13.297506510416667" /> - <ConnectorPoint PointX="1.7284615384615383" PointY="13.047506510416666" /> - </AssociationConnector> - <EntityTypeShape EntityType="NorthwindModel.Transport" Width="1.5" PointX="6" PointY="10.625" /> - <EntityTypeShape EntityType="NorthwindModel.Ships" Width="1.5" PointX="4.875" PointY="12.875" /> - <EntityTypeShape EntityType="NorthwindModel.Trucks" Width="1.5" PointX="7.5" PointY="12.875" /> - <InheritanceConnector EntityType="NorthwindModel.Ships" /> - <InheritanceConnector EntityType="NorthwindModel.Trucks" /> - </Diagram> - </Diagrams> - </Designer> -</edmx:Edmx> \ No newline at end of file diff --git a/Simple.Data.OData.NorthwindModel/Northwind.sdf b/Simple.Data.OData.NorthwindModel/Northwind.sdf deleted file mode 100644 index 7f0436403..000000000 Binary files a/Simple.Data.OData.NorthwindModel/Northwind.sdf and /dev/null differ diff --git a/Simple.Data.OData.NorthwindModel/NorthwindService.cs b/Simple.Data.OData.NorthwindModel/NorthwindService.cs deleted file mode 100644 index 0be97acee..000000000 --- a/Simple.Data.OData.NorthwindModel/NorthwindService.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Entity; -using System.Data.Entity.Infrastructure; -using System.Data.Services; -using System.Data.Services.Common; -using System.Linq; -using System.ServiceModel.Web; -using System.Text; - -namespace Simple.Data.OData.NorthwindModel -{ - public class NorthwindService : DataService<NorthwindEntities> - { - public static void InitializeService(DataServiceConfiguration config) - { - Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0"); - - config.SetEntitySetAccessRule("*", EntitySetRights.All); - config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); - config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3; - config.UseVerboseErrors = true; - } - - protected override void HandleException(HandleExceptionArgs args) - { - base.HandleException(args); - } - - [WebGet] - public int ParseInt(string number) - { - return int.Parse(number); - } - } -} - diff --git a/Simple.Data.OData.NorthwindModel/Properties/AssemblyInfo.cs b/Simple.Data.OData.NorthwindModel/Properties/AssemblyInfo.cs deleted file mode 100644 index ff9d03962..000000000 --- a/Simple.Data.OData.NorthwindModel/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.Data.OData.NorthwindModel")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c6285ed5-d85d-4d8a-b2c0-9e59bcc68a92")] diff --git a/Simple.Data.OData.NorthwindModel/Simple.Data.OData.NorthwindModel.csproj b/Simple.Data.OData.NorthwindModel/Simple.Data.OData.NorthwindModel.csproj deleted file mode 100644 index 1bb92dbf6..000000000 --- a/Simple.Data.OData.NorthwindModel/Simple.Data.OData.NorthwindModel.csproj +++ /dev/null @@ -1,129 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{2A909E4D-6493-4D36-9FDE-786B89F9A387}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.Data.OData.NorthwindModel</RootNamespace> - <AssemblyName>Simple.Data.OData.NorthwindModel</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\Simple.OData\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Edm, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Edm.5.2.0\lib\net40\Microsoft.Data.Edm.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.OData, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.OData.5.2.0\lib\net40\Microsoft.Data.OData.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.5.2.0\lib\net40\Microsoft.Data.Services.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services.Client, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.Client.5.2.0\lib\net40\Microsoft.Data.Services.Client.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.ComponentModel.DataAnnotations" /> - <Reference Include="System.configuration" /> - <Reference Include="System.Core" /> - <Reference Include="System.Data.Entity" /> - <Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll</HintPath> - </Reference> - <Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"> - <Private>True</Private> - <HintPath>..\packages\EntityFramework.SqlServerCompact.4.3.6\lib\net40\System.Data.SqlServerCe.Entity.dll</HintPath> - </Reference> - <Reference Include="System.Runtime.Serialization" /> - <Reference Include="System.Security" /> - <Reference Include="System.ServiceModel" /> - <Reference Include="System.ServiceModel.Web" /> - <Reference Include="System.Spatial, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\System.Spatial.5.2.0\lib\net40\System.Spatial.dll</HintPath> - </Reference> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="Northwind.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>Northwind.edmx</DependentUpon> - </Compile> - <Compile Include="NorthwindService.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="App.config"> - <SubType>Designer</SubType> - </None> - <EntityDeploy Include="Northwind.edmx"> - <Generator>EntityModelCodeGenerator</Generator> - <LastGenOutput>Northwind.Designer.cs</LastGenOutput> - </EntityDeploy> - <None Include="packages.config" /> - </ItemGroup> - <ItemGroup> - <Content Include="Northwind.sdf"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - </ItemGroup> - <ItemGroup /> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> - <PropertyGroup> - <PostBuildEvent> - if not exist "$(TargetDir)x86" md "$(TargetDir)x86" - xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" - if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" - xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64"</PostBuildEvent> - </PropertyGroup> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.Data.OData.NorthwindModel/packages.config b/Simple.Data.OData.NorthwindModel/packages.config deleted file mode 100644 index ce2998b3a..000000000 --- a/Simple.Data.OData.NorthwindModel/packages.config +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="EntityFramework" version="5.0.0" /> - <package id="EntityFramework.SqlServerCompact" version="4.3.6" targetFramework="net40" /> - <package id="Microsoft.Data.Edm" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.OData" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services.Client" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.SqlServer.Compact" version="4.0.8876.1" /> - <package id="SqlServerCompact" version="4.0.8854.1" targetFramework="net40" /> - <package id="System.Spatial" version="5.2.0" targetFramework="net40" /> -</packages> \ No newline at end of file diff --git a/Simple.Data.OData.Tests/App.config b/Simple.Data.OData.Tests/App.config deleted file mode 100644 index cb905b0aa..000000000 --- a/Simple.Data.OData.Tests/App.config +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <connectionStrings> - <add name="NorthwindEntities" connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="Data Source=Northwind.sdf"" providerName="System.Data.EntityClient" /> - </connectionStrings> -</configuration> \ No newline at end of file diff --git a/Simple.Data.OData.Tests/DeleteTest.cs b/Simple.Data.OData.Tests/DeleteTest.cs deleted file mode 100644 index c1ffe74b1..000000000 --- a/Simple.Data.OData.Tests/DeleteTest.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class DeleteTest : TestBase - { - [Fact] - public void DeleteByNonKeyField() - { - var product = _db.Products.Insert(ProductName: "Test1", UnitPrice: 18m); - product = _db.Products.FindByProductName("Test1"); - Assert.NotNull(product); - - _db.Products.Delete(ProductName: "Test1"); - - product = _db.Products.FindByProductName("Test1"); - Assert.Null(product); - } - - [Fact] - public void DeleteByKeyField() - { - var product = _db.Products.Insert(ProductName: "Test1", UnitPrice: 18m); - product = _db.Products.FindByProductName("Test1"); - Assert.NotNull(product); - - _db.Products.Delete(ProductID: product.ProductID); - - product = _db.Products.FindByProductName("Test1"); - Assert.Null(product); - } - - [Fact] - public void DeleteByObject() - { - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m); - product = _db.Products.FindByProductName("Test2"); - Assert.NotNull(product); - - _db.Products.Delete(product); - - product = _db.Products.FindByProductName("Test2"); - Assert.Null(product); - } - } -} diff --git a/Simple.Data.OData.Tests/ExpressionFormatterTest.cs b/Simple.Data.OData.Tests/ExpressionFormatterTest.cs deleted file mode 100644 index 72d9336e3..000000000 --- a/Simple.Data.OData.Tests/ExpressionFormatterTest.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - //public class ExpressionFormatterTest - //{ - // private ExpressionFormatter _expressionFormatter = new ExpressionFormatter(null); - - // [Fact] - // public void SingleEqualsFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") == 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar eq 1", actual); - // } - - // [Fact] - // public void TwoEqualsFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") == 1 && ObjectReference.FromString("foo.quux") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("(bar eq 1 and quux eq 2)", actual); - // } - - // [Fact] - // public void SingleNotEqualsFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") != 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar ne 1", actual); - // } - - // [Fact] - // public void GreaterThanFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") > 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar gt 1", actual); - // } - - // [Fact] - // public void GreaterThanOrEqualFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") >= 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar ge 1", actual); - // } - - // [Fact] - // public void LessThanFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") < 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar lt 1", actual); - // } - - // [Fact] - // public void LessThanOrEqualFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") <= 1; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar le 1", actual); - // } - - // [Fact] - // public void EqualWithRangeFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("foo.bar") == 1.to(10); - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("(bar ge 1 and bar le 10)", actual); - // } - - // [Fact] - // public void EqualsWithAddFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("bar") + ObjectReference.FromString("1") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar add 1 eq 2", actual); - // } - - // [Fact] - // public void EqualsWithSubFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("bar") - ObjectReference.FromString("1") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar sub 1 eq 2", actual); - // } - - // [Fact] - // public void EqualsWithMulFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("bar") * ObjectReference.FromString("1") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar mul 1 eq 2", actual); - // } - - // [Fact] - // public void EqualsWithDivFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("bar") / ObjectReference.FromString("1") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar div 1 eq 2", actual); - // } - - // [Fact] - // public void EqualsWithModFormatsAsODataFilter() - // { - // var expression = ObjectReference.FromString("bar") % ObjectReference.FromString("1") == 2; - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("bar mod 1 eq 2", actual); - // } - - // [Fact] - // public void LengthFormatsAsODataFilter() - // { - // var expression = new SimpleExpression(new SimpleFunction("length", new object[] {ObjectReference.FromString("bar")}), - // 1, - // SimpleExpressionType.Equal); - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("length(bar) eq 1", actual); - // } - - // [Fact] - // public void SubstringOfFormatsAsODataFilter() - // { - // var expression = - // new SimpleExpression( - // new SimpleFunction("substringof", - // new object[] - // {ObjectReference.FromString("bar"), ObjectReference.FromString("'abc'")}), - // true, - // SimpleExpressionType.Equal); - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("substringof(bar,'abc') eq true", actual); - // } - - // [Fact] - // public void IndexOfFormatsAsODataFilter() - // { - // var expression = - // new SimpleExpression( - // new SimpleFunction("indexof", - // new object[] { ObjectReference.FromString("bar"), ObjectReference.FromString("'abc'") }), - // 10, - // SimpleExpressionType.Equal); - // var actual = _expressionFormatter.Format(expression); - // Assert.Equal("indexof(bar,'abc') eq 10", actual); - // } - //} -} diff --git a/Simple.Data.OData.Tests/FindAllTest.cs b/Simple.Data.OData.Tests/FindAllTest.cs deleted file mode 100644 index faa80fac8..000000000 --- a/Simple.Data.OData.Tests/FindAllTest.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System.Collections.Generic; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FindAllTest : TestBase - { - [Fact] - public void FindAllByName() - { - IEnumerable<dynamic> products = _db.Products.FindAllByProductName("Chai"); - - Assert.NotEmpty(products); - } - - [Fact] - public void FindAllByHomogenizedName() - { - IEnumerable<dynamic> products = _db.Products.FindAllByProduct_Name("Chai"); - - Assert.NotEmpty(products); - } - - [Fact] - public void FindAllByNameWithSpecificLength() - { - IEnumerable<dynamic> products = _db.Products.FindAll(_db.Products.ProductName.Length() == 4); - - Assert.NotEmpty(products); - } - - [Fact] - public void FindAllByNameCount() - { - var count = _db.Products.FindAllByProductName("Chai").Count(); - - Assert.Equal(1, count); - } - - [Fact] - public void FindAllByNameWithTotalCount() - { - Promise<int> count; - IEnumerable<dynamic> products = _db.Products.FindAllByProductName("Chai").WithTotalCount(out count).Take(1); - - Assert.NotEmpty(products); - Assert.Equal(1, count); - } - - [Fact] - public void All() - { - IEnumerable<dynamic> products = _db.Products.All(); - - Assert.NotEmpty(products); - } - - [Fact] - public void AllWithHomogenizedName() - { - IEnumerable<dynamic> orderDetails = _db.Order_Details.All(); - - Assert.NotEmpty(orderDetails); - } - - [Fact] - public void AllCount() - { - var count = _db.Products.All().Count(); - - Assert.True(count > 0); - } - - [Fact] - public void AllWithTotalCount() - { - Promise<int> count; - IEnumerable<dynamic> products = _db.Products.All().WithTotalCount(out count).Take(1); - - Assert.NotEmpty(products); - Assert.True(count > 1); - } - } -} diff --git a/Simple.Data.OData.Tests/FindAssociationTest.cs b/Simple.Data.OData.Tests/FindAssociationTest.cs deleted file mode 100644 index 0332377c7..000000000 --- a/Simple.Data.OData.Tests/FindAssociationTest.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FindAssociationTest : TestBase - { - [Fact] - public void FindAllProductsFromCategory() - { - // expected request: Products?$filter=Category/CategoryName+eq+%27Beverages%27 - IEnumerable<dynamic> products = _db.Products.FindAll(_db.Products.Category.CategoryName == "Beverages"); - - Assert.NotEmpty(products); - foreach (var product in products) - { - Assert.True(product.ProductID > 0); - Assert.Equal(1, product.CategoryID); - } - } - - [Fact] - public void FindAllEmployeesFromSuperior() - { - // expected request: Employees?$filter=Superior/FirstName+eq+%27Nancy%27 and Superior/LastName+eq+%27Davolio%27 - IEnumerable<dynamic> employees = _db.Employees.FindAll(_db.Employees.Superior.FirstName == "Andrew" && _db.Employees.Superior.LastName == "Fuller"); - - Assert.NotEmpty(employees); - foreach (var employee in employees) - { - Assert.True(employee.EmployeeID > 0); - Assert.Equal(2, employee.ReportsTo); - } - } - - [Fact] - public void FindAllOrdersFromEmployee() - { - // expected request: Orders?$filter=Employee/FirstName+eq+%27Andrew%27 and Employee/LastName+eq+%27Fuller%27 - IEnumerable<dynamic> orders = _db.Orders.FindAll(_db.Orders.Employee.FirstName == "Andrew" && _db.Orders.Employee.LastName == "Fuller"); - - Assert.NotEmpty(orders); - foreach (var order in orders) - { - Assert.Equal(2, order.EmployeeID); - } - } - - [Fact] - public void FindAllCustomerOrders() - { - // expected request: Customers('ALFKI')/Orders - IEnumerable<dynamic> orders = _db.Customers.Orders.FindAll(_db.Customers.CustomerID == "ALFKI"); - - Assert.NotEmpty(orders); - foreach (var order in orders) - { - Assert.True(order.OrderID > 0); - Assert.Equal("ALFKI", order.CustomerID); - } - } - - [Fact] - public void FindAllOrderOrderDetails() - { - // expected request: Orders(10952)/OrderDetails - IEnumerable<dynamic> orderDetails = _db.Orders.OrderDetails.FindAll(_db.Orders.OrderID == 10952); - - Assert.NotEmpty(orderDetails); - foreach (var details in orderDetails) - { - Assert.True(details.ProductID > 0); - Assert.Equal(10952, details.OrderID); - } - } - - [Fact] - public void FindAllEmployeeSubordinates() - { - // expected request: Employees(1)/Subordinates - IEnumerable<dynamic> subordinates = _db.Employees.Subordinates.FindAll(_db.Employees.EmployeeID == 2); - - Assert.NotEmpty(subordinates); - foreach (var subordinate in subordinates) - { - Assert.True(subordinate.EmployeeID > 0); - Assert.Equal(2, subordinate.ReportsTo); - } - } - - [Fact] - public void GetEmployeeSuperior() - { - // expected request: Employees(1)/Superior - var superior = _db.Employees.Superior.Get(1); - - Assert.NotNull(superior); - Assert.Equal(2, superior.EmployeeID); - } - - [Fact] - public void FindEmployeeSuperior() - { - // expected request: Employees(1)/Superior - var superior = _db.Employees.Superior.Find(_db.Employees.EmployeeID == 1); - - Assert.NotNull(superior); - Assert.Equal(2, superior.EmployeeID); - } - - [Fact] - public void FindAllEmployeeSuperiors() - { - // expected request: Employees(1)/Superior - IEnumerable<dynamic> superiors = _db.Employees.Superior.FindAll(_db.Employees.EmployeeID == 1); - - Assert.NotEmpty(superiors); - Assert.Equal(1, superiors.Count()); - Assert.Equal(2, superiors.First().EmployeeID); - } - } -} diff --git a/Simple.Data.OData.Tests/FindExpandTest.cs b/Simple.Data.OData.Tests/FindExpandTest.cs deleted file mode 100644 index 13ebf85f8..000000000 --- a/Simple.Data.OData.Tests/FindExpandTest.cs +++ /dev/null @@ -1,77 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FindExpandTest : TestBase - { - [Fact] - public void FindCategoryByNameExpandProducts() - { - // expected request: Categories?expand=Products&$filter=CategoryName+eq+'Beverages' - var category = _db.Category.WithProducts().FindByCategoryName("Beverages"); - - Assert.Equal("Beverages", category.CategoryName); - Assert.True(category.Products.Count > 0); - } - - [Fact] - public void FindAllCategoriesWithProducts() - { - // expected request: Categories?expand=Products - var categories = _db.Category.All().WithProducts().ToList(); - - Assert.True(categories.Count > 0); - Assert.True(categories[0].Products.Count > 0); - } - - [Fact] - public void FindAllProductsWithCategory() - { - // expected request: Products?expand=Category - var products = _db.Products.All().WithCategory().ToList(); - - Assert.True(products.Count > 0); - Assert.Equal("Beverages", products[0].Category.CategoryName); - } - - [Fact] - public void FindAllProductsWithCategoryOrderByProductName() - { - // expected request: Products?$orderby=ProductName&$expand=Category - var products = _db.Products.All().WithCategory().OrderBy(_db.Products.ProductName).ToList(); - - Assert.True(products.Count > 0); - Assert.Equal("Meat/Poultry", products[0].Category.CategoryName); - } - - [Fact] - public void GetCustomerExpandOrders() - { - // expected request: Customers('ALFKI')?$expand=Orders - var customer = _db.Customer.WithOrders().Get("ALFKI"); - - Assert.Equal("ALFKI", customer.CustomerID); - Assert.True(customer.Orders.Count > 0); - } - - [Fact] - public void FindAllEmployeesExpandSubordinates() - { - // expected request: Employees?$expand=Subordinates - var employees = _db.Employees.All().WithSubordinates().ToList(); - - Assert.True(employees.Count > 0); - Assert.True(employees[0].Subordinates.Count == 0); - Assert.True(employees[1].Subordinates.Count > 0); - } - - [Fact] - public void FindEmployeeWithSuperior() - { - // expected request: Employees?$expand=Superior&$filter=FirstName+eq+%27Nancy%27 and LastName+eq+%27Davolio%27 - var employee = _db.Employees.WithSuperior().FindByFirstNameAndLastName("Nancy", "Davolio"); - Assert.NotNull(employee); - Assert.NotNull(employee.Superior); - } - } -} diff --git a/Simple.Data.OData.Tests/FindExtraClausesTest.cs b/Simple.Data.OData.Tests/FindExtraClausesTest.cs deleted file mode 100644 index e68192d93..000000000 --- a/Simple.Data.OData.Tests/FindExtraClausesTest.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Microsoft.CSharp.RuntimeBinder; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FindExtraClausesTest : TestBase - { - [Fact] - public void AllSelect() - { - IEnumerable<dynamic> products = _db.Products.All() - .Select(_db.Products.ProductID); - - Assert.True(products.First().ProductID > 0); - Assert.Throws<RuntimeBinderException>(() => products.First().ProductName); - } - - [Fact] - public void AllTake() - { - IEnumerable<dynamic> products = _db.Products.All() - .Take(1); - - Assert.Equal(1, products.Count()); - } - - [Fact] - public void AllSkip() - { - IEnumerable<dynamic> products = _db.Products.All() - .Skip(1); - - Assert.Equal(76, products.Count()); - } - - [Fact] - public void AllSkipTake() - { - IEnumerable<dynamic> products = _db.Products.All() - .Skip(2) - .Take(1); - - Assert.Equal(1, products.Count()); - } - - [Fact] - public void AllOrderByAscending() - { - IEnumerable<dynamic> products = _db.Products.All() - .OrderBy(_db.Products.ProductName); - - Assert.Equal("Alice Mutton", products.First().ProductName); - } - - [Fact] - public void AllOrderByDescending() - { - IEnumerable<dynamic> products = _db.Products.All() - .OrderByDescending(_db.Products.ProductName); - - Assert.Equal("Zaanse koeken", products.First().ProductName); - } - - [Fact] - public void AllOrderByDescendingSelect() - { - IEnumerable<dynamic> products = _db.Products.All() - .OrderByDescending(_db.Products.ProductName) - .Select(_db.Products.ProductName); - - Assert.Equal("Zaanse koeken", products.First().ProductName); - } - } -} diff --git a/Simple.Data.OData.Tests/FindOneTest.cs b/Simple.Data.OData.Tests/FindOneTest.cs deleted file mode 100644 index 9ee3e451e..000000000 --- a/Simple.Data.OData.Tests/FindOneTest.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FindOneTest : TestBase - { - [Fact] - public void FindOne() - { - var product = _db.Products.FindByProductName("Chai"); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameEqual() - { - var product = _db.Products.Find(_db.Products.ProductName == "Chai"); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameEqualToLower() - { - var product = _db.Products.Find(_db.Products.ProductName.ToLower() == "chai"); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameWithSpecificLength() - { - var product = _db.Products.Find(_db.Products.ProductName.Length() == 4); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameStartsWith() - { - var product = _db.Products.Find(_db.Products.ProductName.StartsWith("Ch") == true); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameContainsEqualsTrue() - { - var product = _db.Products.Find(_db.Products.ProductName.Contains("ai") == true); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameContainsEqualsFalse() - { - var product = _db.Products.Find(_db.Products.ProductName.Contains("ai") == false); - - Assert.Equal("Chang", product.ProductName); - } - - [Fact] - public void FindWhereNameIndexOf() - { - var product = _db.Products.Find(_db.Products.ProductName.IndexOf("ai") == 2); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameEqualSubstring() - { - var product = _db.Products.Find(_db.Products.ProductName.Substring(1) == "hai"); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void FindWhereNameEqualWithInvalidFunction() - { - Assert.Throws<NotSupportedException>( - () => _db.Products.Find(_db.Products.ProductName.InvalidFunction() == "Chai")); - } - } -} diff --git a/Simple.Data.OData.Tests/FunctionTest.cs b/Simple.Data.OData.Tests/FunctionTest.cs deleted file mode 100644 index 23c6faac3..000000000 --- a/Simple.Data.OData.Tests/FunctionTest.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class FunctionTest : TestBase - { - [Fact] - public void ParseInt() - { - var result = _db.ParseInt(number: "1"); - - Assert.Equal(1, result.ToScalarList()[0]); - } - - [Fact] - public void GetProductsByRatingWithNonEmptyResultSet() - { - var db = Database.Opener.Open("http://services.odata.org/OData/OData.svc/"); - IEnumerable<dynamic> products = db.GetProductsByRating(rating: 3); - - Assert.NotEmpty(products); - foreach (var product in products) - { - Assert.Equal(3, product.Rating); - } - } - - [Fact] - public void GetProductsByRatingWithEmptyResultSet() - { - var db = Database.Opener.Open("http://services.odata.org/OData/OData.svc/"); - IEnumerable<dynamic> products = db.GetProductsByRating(rating: 999); - - Assert.Empty(products); - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData.Tests/GetTest.cs b/Simple.Data.OData.Tests/GetTest.cs deleted file mode 100644 index d85dae6cf..000000000 --- a/Simple.Data.OData.Tests/GetTest.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class GetTest : TestBase - { - [Fact] - public void GetBySingleNumericKey() - { - var product = _db.Products.Get(1); - - Assert.Equal("Chai", product.ProductName); - } - - [Fact] - public void GetBySingleStringKey() - { - var customer = _db.Customers.Get("ALFKI"); - - Assert.Equal("ALFKI", customer.CustomerID); - } - - [Fact] - public void GetByCompoundKey() - { - var orderDetails = _db.OrderDetails.Get(10248, 11); - - Assert.Equal(10248, orderDetails.OrderID); - } - } -} diff --git a/Simple.Data.OData.Tests/InheritanceTest.cs b/Simple.Data.OData.Tests/InheritanceTest.cs deleted file mode 100644 index 1e1600198..000000000 --- a/Simple.Data.OData.Tests/InheritanceTest.cs +++ /dev/null @@ -1,232 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class InheritanceTest : TestBase - { - [Fact] - public void FindAllTransports() - { - IEnumerable<dynamic> transports = _db.Transport.All(); - - Assert.NotEmpty(transports); - foreach (var transport in transports) - { - if (transport.TransportID == 1) - { - Assert.Equal("Titanic", transport.ShipName); - } - else if (transport.TransportID == 2) - { - Assert.Equal("123456", transport.TruckNumber); - } - IEnumerable<string> propertyNames = transport.GetDynamicMemberNames(); - Assert.False(propertyNames.Contains(ODataFeed.ResourceTypeLiteral)); - } - } - - [Fact] - public void FindAllShips() - { - IEnumerable<dynamic> ships = _db.Ships.All(); - - Assert.Equal(1, ships.Count()); - Assert.Equal("Titanic", ships.First().ShipName); - } - - [Fact] - public void FindAllShipsWithResourceTypes() - { - dynamic db = Database.Opener.Open(new ODataFeed { Url = _service.ServiceUri.AbsoluteUri, IncludeResourceTypeInEntryProperties = true }); - IEnumerable<dynamic> ships = db.Ships.All(); - - Assert.Equal(1, ships.Count()); - Assert.Equal("Titanic", ships.First().ShipName); - Assert.Equal("Ships", ships.First().__resourcetype); - } - - [Fact] - public void FindOneShip() - { - IEnumerable<dynamic> ships = _db.Ships.FindAll(_db.Ships.ShipName == "Titanic"); - - Assert.Equal(1, ships.Count()); - Assert.Equal("Titanic", ships.First().ShipName); - } - - [Fact] - public void InsertShip() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - - Assert.Equal("Test1", ship.ShipName); - } - - [Fact] - public void InsertShipIncludeResourceType() - { - dynamic db = Database.Opener.Open(new ODataFeed { Url = _service.ServiceUri.AbsoluteUri, IncludeResourceTypeInEntryProperties = true }); - var ship = db.Transport.Insert(ShipName: "Test1", __resourcetype: "Ships"); - - Assert.Equal("Test1", ship.ShipName); - } - - [Fact] - public void InsertTruck() - { - var truck = _db.Trucks.Insert(TruckNumber: "Test2"); - - Assert.Equal("Test2", truck.TruckNumber); - } - - [Fact] - public void UpdateShipByKeyField() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - - _db.Ships.UpdateByTransportID(TransportID: ship.TransportID, ShipName: "Test2"); - - ship = _db.Transport.FindByTransportID(ship.TransportID); - Assert.Equal("Test2", ship.ShipName); - } - - [Fact] - public void UpdateShipByObject() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - - ship.ShipName = "Test2"; - _db.Ships.Update(ship); - - ship = _db.Transport.FindByTransportID(ship.TransportID); - Assert.Equal("Test2", ship.ShipName); - } - - [Fact] - public void UpdateShipByObjectIncludeResourceType() - { - dynamic db = Database.Opener.Open(new ODataFeed { Url = _service.ServiceUri.AbsoluteUri, IncludeResourceTypeInEntryProperties = true }); - var ship = db.Ships.Insert(ShipName: "Test1"); - - ship.ShipName = "Test2"; - ship.__resourcetype = "Ships"; - db.Transport.Update(ship); - - ship = db.Transport.FindByTransportID(ship.TransportID); - Assert.Equal("Test2", ship.ShipName); - } - - [Fact] - public void DeleteShipByKeyField() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - var count = _db.Transport.All().Count(); - - _db.Transport.DeleteByTransportID(ship.TransportID); - - Assert.Equal(count-1, _db.Transport.All().Count()); - } - - [Fact] - public void DeleteShipByObject() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - var count = _db.Transport.All().Count(); - - _db.Ships.Delete(ship); - - Assert.Equal(count - 1, _db.Transport.All().Count()); - } - - [Fact] - public void DeleteTransportByObjectIncludeResourceType() - { - dynamic db = Database.Opener.Open(new ODataFeed { Url = _service.ServiceUri.AbsoluteUri, IncludeResourceTypeInEntryProperties = true }); - var ship = db.Ships.Insert(ShipName: "Test1"); - var count = db.Transport.All().Count(); - - db.Transport.Delete(ship); - - Assert.Equal(count - 1, db.Transport.All().Count()); - } - - [Fact] - public void InsertUpdateDeleteTransportIncludeResourceType() - { - dynamic db = Database.Opener.Open(new ODataFeed { Url = _service.ServiceUri.AbsoluteUri, IncludeResourceTypeInEntryProperties = true }); - - var transport = db.Transport.Insert(ShipName: "Test1", __resourcetype: "Ships"); - transport = db.Transport.FindByTransportID(transport.TransportID); - Assert.Equal("Test1", transport.ShipName); - - transport.ShipName = "Test2"; - db.Transport.Update(transport); - transport = db.Transport.FindByTransportID(transport.TransportID); - Assert.Equal("Test2", transport.ShipName); - - var count = db.Transport.All().Count(); - db.Transport.Delete(transport); - Assert.Equal(count - 1, db.Transport.All().Count()); - } - - [Fact] - public void BatchInsert() - { - using (var tx = _db.BeginTransaction()) - { - tx.Ships.Insert(ShipName: "Test1"); - tx.Trucks.Insert(TruckNumber: "Test2"); - tx.Commit(); - } - - bool shipFound = false; - bool truckFound = false; - IEnumerable<dynamic> transports = _db.Transports.All(); - foreach (var transport in transports) - { - foreach (var item in transport) - { - if (item.Key == "ShipName") - shipFound = item.Value == "Test1"; - else if (item.Key == "TruckNumber") - truckFound = item.Value == "Test2"; - } - } - Assert.True(shipFound); - Assert.True(truckFound); - } - - [Fact] - public void BatchUpdate() - { - var ship = _db.Ships.Insert(ShipName: "Test1"); - var truck = _db.Trucks.Insert(TruckNumber: "Test2"); - - using (var tx = _db.BeginTransaction()) - { - tx.Ships.UpdateByTransportID(TransportID : ship.TransportID, ShipName: "Test3"); - tx.Trucks.UpdateByTransportID(TransportID: truck.TransportID, TruckNumber: "Test4"); - tx.Commit(); - } - - bool shipFound = false; - bool truckFound = false; - IEnumerable<dynamic> transports = _db.Transports.All(); - foreach (var transport in transports) - { - foreach (var item in transport) - { - if (item.Key == "ShipName") - shipFound = item.Value == "Test3"; - else if (item.Key == "TruckNumber") - truckFound = item.Value == "Test4"; - } - } - Assert.True(shipFound); - Assert.True(truckFound); - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData.Tests/InsertTest.cs b/Simple.Data.OData.Tests/InsertTest.cs deleted file mode 100644 index c82c4c038..000000000 --- a/Simple.Data.OData.Tests/InsertTest.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class InsertTest : TestBase - { - [Fact] - public void Insert() - { - var product = _db.Products.Insert(ProductName: "Test1", UnitPrice: 18m); - - Assert.Equal("Test1", product.ProductName); - } - - [Fact] - public void InsertAutogeneratedID() - { - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m); - - Assert.True(product.ProductID > 0); - } - - [Fact] - public void InsertObject() - { - var expando = new ExpandoObject(); - var properties = expando as IDictionary<String, object>; - properties["ProductName"] = "Test9"; - properties["UnitPrice"] = 18m; - var product = _db.Products.Insert(expando); - - Assert.True(product.ProductID > 0); - } - - [Fact] - public void InsertProductWithCategoryByID() - { - var category = _db.Categories.Insert(CategoryName: "Test3"); - var product = _db.Products.Insert(ProductName: "Test4", UnitPrice: 18m, CategoryID: category.CategoryID); - - Assert.Equal("Test4", product.ProductName); - Assert.Equal(category.CategoryID, product.CategoryID); - category = _db.Category.WithProducts().FindByCategoryName("Test3"); - Assert.True(category.Products.Count == 1); - } - - [Fact] - public void InsertProductWithCategoryByAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test5"); - var product = _db.Products.Insert(ProductName: "Test6", UnitPrice: 18m, Category: category); - - Assert.Equal("Test6", product.ProductName); - Assert.Equal(category.CategoryID, product.CategoryID); - category = _db.Category.WithProducts().FindByCategoryName("Test5"); - Assert.True(category.Products.Count == 1); - } - - [Fact] - public void InsertProductObjectWithCategoryByAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test7"); - var productRecord = new { ProductName = "Test8", UnitPrice = 18m, Category = category}; - var product = _db.Products.Insert(productRecord); - - Assert.Equal("Test8", product.ProductName); - Assert.Equal(category.CategoryID, product.CategoryID); - category = _db.Category.WithProducts().FindByCategoryName("Test7"); - Assert.True(category.Products.Count == 1); - } - } -} diff --git a/Simple.Data.OData.Tests/Properties/AssemblyInfo.cs b/Simple.Data.OData.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index b763b0271..000000000 --- a/Simple.Data.OData.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.Data.OData.Tests")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("667c92f8-0279-4f7a-9e6c-e4421dc860d0")] diff --git a/Simple.Data.OData.Tests/Simple.Data.OData.Tests.csproj b/Simple.Data.OData.Tests/Simple.Data.OData.Tests.csproj deleted file mode 100644 index 4e8a28b7f..000000000 --- a/Simple.Data.OData.Tests/Simple.Data.OData.Tests.csproj +++ /dev/null @@ -1,131 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{96E43534-0CDC-4ECA-972E-4536055F8C63}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.Data.OData.Tests</RootNamespace> - <AssemblyName>Simple.Data.OData.Tests</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="Microsoft.Data.Edm, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Edm.5.2.0\lib\net40\Microsoft.Data.Edm.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.OData, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.OData.5.2.0\lib\net40\Microsoft.Data.OData.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.5.2.0\lib\net40\Microsoft.Data.Services.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services.Client, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.Client.5.2.0\lib\net40\Microsoft.Data.Services.Client.dll</HintPath> - </Reference> - <Reference Include="Simple.Data, Version=0.18.3.1, Culture=neutral, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Simple.Data.Core.0.18.3.1\lib\net40\Simple.Data.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.ComponentModel.DataAnnotations" /> - <Reference Include="System.Core" /> - <Reference Include="System.Data.Entity" /> - <Reference Include="System.Data.Entity.Design" /> - <Reference Include="System.ServiceModel" /> - <Reference Include="System.ServiceModel.Web" /> - <Reference Include="System.Spatial, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\System.Spatial.5.2.0\lib\net40\System.Spatial.dll</HintPath> - </Reference> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - <Reference Include="xunit, Version=1.9.1.1600, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\xunit.1.9.1\lib\net20\xunit.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="DeleteTest.cs" /> - <Compile Include="ExpressionFormatterTest.cs" /> - <Compile Include="FindAllTest.cs" /> - <Compile Include="FindExpandTest.cs" /> - <Compile Include="FindOneTest.cs" /> - <Compile Include="FindExtraClausesTest.cs" /> - <Compile Include="FunctionTest.cs" /> - <Compile Include="GetTest.cs" /> - <Compile Include="InheritanceTest.cs" /> - <Compile Include="InsertTest.cs" /> - <Compile Include="FindAssociationTest.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="SpecialTest.cs" /> - <Compile Include="TestBase.cs" /> - <Compile Include="TransactionTest.cs" /> - <Compile Include="UpdateTest.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="App.config"> - <SubType>Designer</SubType> - </None> - <None Include="packages.config"> - <SubType>Designer</SubType> - </None> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Simple.Data.OData.NorthwindModel\Simple.Data.OData.NorthwindModel.csproj"> - <Project>{2A909E4D-6493-4D36-9FDE-786B89F9A387}</Project> - <Name>Simple.Data.OData.NorthwindModel</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.Data.OData\Simple.Data.OData.csproj"> - <Project>{E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}</Project> - <Name>Simple.Data.OData</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.OData.TestUtils\Simple.OData.TestUtils.csproj"> - <Project>{858775EA-ECF6-458E-AD96-CF67CF730395}</Project> - <Name>Simple.OData.TestUtils</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.Data.OData.Tests/SpecialTest.cs b/Simple.Data.OData.Tests/SpecialTest.cs deleted file mode 100644 index 549fe52a0..000000000 --- a/Simple.Data.OData.Tests/SpecialTest.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class SpecialTest - { - private const string _nugetUrl = "http://packages.nuget.org/v1/FeedService.svc/"; - private const string _odataOrgUrl = "http://services.odata.org/OData/OData.svc/"; - - public SpecialTest() - { - } - - [Fact] - public void FindFromFeedWithMediaLink() - { - dynamic db = Database.Opener.Open(_nugetUrl); - var package = db.Packages.FindByTitle("Simple.Data.Core"); - - Assert.Equal("Simple.Data.Core", package.Title); - } - - [Fact] - public void FindByComplexTypeFromODataOrg() - { - dynamic db = Database.Opener.Open(_odataOrgUrl); - var supplier = db.Suppliers.Find(db.Suppliers.Address.City == "Redmond"); - - Assert.Equal("Redmond", supplier.Address.City); - } - } -} diff --git a/Simple.Data.OData.Tests/TestBase.cs b/Simple.Data.OData.Tests/TestBase.cs deleted file mode 100644 index bb1ce98da..000000000 --- a/Simple.Data.OData.Tests/TestBase.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Simple.Data.OData.NorthwindModel; -using Simple.OData.TestUtils; - -namespace Simple.Data.OData.Tests -{ - public class TestBase : IDisposable - { - protected TestService _service; - protected dynamic _db; - - public TestBase() - { - _service = new TestService(typeof(NorthwindService)); - _db = Database.Opener.Open(_service.ServiceUri); - Database.SetPluralizer(new EntityPluralizer()); - } - - public void Dispose() - { - IEnumerable<dynamic> products = _db.Products.FindAll(_db.Products.ProductName.StartsWith("Test") == true); - products.ToList().ForEach(x => _db.Products.Delete(ProductID: x.ProductID)); - IEnumerable<dynamic> categories = _db.Categories.FindAll(_db.Categories.CategoryName.StartsWith("Test") == true); - categories.ToList().ForEach(x => _db.Categories.Delete(CategoryID: x.CategoryID)); - IEnumerable<dynamic> transport = _db.Transport.FindAll(_db.Transports.TransportID > 2); - transport.ToList().ForEach(x => _db.Transport.Delete(TransportID: x.TransportID)); - - if (_service != null) - { - _service.Dispose(); - _service = null; - } - } - } -} diff --git a/Simple.Data.OData.Tests/TransactionTest.cs b/Simple.Data.OData.Tests/TransactionTest.cs deleted file mode 100644 index 261c2f375..000000000 --- a/Simple.Data.OData.Tests/TransactionTest.cs +++ /dev/null @@ -1,236 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class TransactionTest : TestBase - { - [Fact] - public void InsertOneTransCommit() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test1", UnitPrice: 21m); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test1"); - Assert.True(product.ProductID > 0); - } - - [Fact] - public void InsertOneTransRollback() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test2", UnitPrice: 21m); - tx.Rollback(); - } - - var product = _db.Products.FindByProductName("Test2"); - Assert.Null(product); - } - - [Fact] - public void InsertTwoTransCommit() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test3", UnitPrice: 21m); - tx.Products.Insert(ProductName: "Test4", UnitPrice: 22m); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test3"); - Assert.Equal(21m, product.UnitPrice); - product = _db.Products.FindByProductName("Test4"); - Assert.Equal(22m, product.UnitPrice); - } - - [Fact] - public void InsertTwoTransRollback() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test5", UnitPrice: 21m); - tx.Products.Insert(ProductName: "Test6", UnitPrice: 22m); - tx.Rollback(); - } - - var product = _db.Products.FindByProductName("Test5"); - Assert.Null(product); - product = _db.Products.FindByProductName("Test6"); - Assert.Null(product); - } - - [Fact] - public void InsertUpdateSameEntitySingleTrans() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test7", UnitPrice: 21m); - tx.Products.UpdateByProductName(ProductName: "Test7", UnitPrice: 22m); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test7"); - Assert.Equal(21m, product.UnitPrice); - } - - [Fact] - public void InsertUpdateDiffEntitiesSingleTrans() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test8", UnitPrice: 21m); - tx.Commit(); - } - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test9", UnitPrice: 22m); - tx.Products.UpdateByProductName(ProductName: "Test8", UnitPrice: 23m); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test8"); - Assert.Equal(23m, product.UnitPrice); - } - - [Fact] - public void InsertUpdateDeleteSameEntitySingleTrans() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test10", UnitPrice: 21m); - tx.Products.UpdateByProductName(ProductName: "Test10", UnitPrice: 22m); - tx.Products.Delete(ProductName: "Test10"); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test10"); - Assert.Equal(21m, product.UnitPrice); - } - - [Fact] - public void InsertUpdateDeleteDiffEntitiesSingleTrans() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test11", UnitPrice: 21m); - tx.Products.Insert(ProductName: "Test12", UnitPrice: 22m); - tx.Commit(); - } - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test13", UnitPrice: 23m); - tx.Products.UpdateByProductName(ProductName: "Test11", UnitPrice: 24m); - tx.Products.Delete(ProductName: "Test12"); - tx.Commit(); - } - - var product = _db.Products.FindByProductName("Test11"); - Assert.Equal(24m, product.UnitPrice); - product = _db.Products.FindByProductName("Test12"); - Assert.Null(product); - product = _db.Products.FindByProductName("Test13"); - Assert.Equal(23m, product.UnitPrice); - } - - [Fact] - public void InsertUpdateDeleteSeparateTrans() - { - using (var tx = _db.BeginTransaction()) - { - tx.Products.Insert(ProductName: "Test14", UnitPrice: 21m); - tx.Commit(); - } - var product = _db.Products.FindByProductName("Test14"); - Assert.Equal(21m, product.UnitPrice); - - using (var tx = _db.BeginTransaction()) - { - tx.Products.UpdateByProductName(ProductName: "Test14", UnitPrice: 22m); - tx.Commit(); - } - product = _db.Products.FindByProductName("Test14"); - Assert.Equal(22m, product.UnitPrice); - - using (var tx = _db.BeginTransaction()) - { - tx.Products.Delete(ProductName: "Test14"); - tx.Commit(); - } - product = _db.Products.FindByProductName("Test14"); - Assert.Null(product); - } - - [Fact] - public void InsertSingleEntityWithSingleAssociationSingleTrans() - { - dynamic category; - using (var tx = _db.BeginTransaction()) - { - category = tx.Categories.Insert(CategoryName: "Test15"); - tx.Products.Insert(ProductName: "Test16", UnitPrice: 18m, Category: category); - tx.Commit(); - } - - category = _db.Categories.FindByCategoryName("Test15"); - var product = _db.Products.WithCategory().FindByProductName("Test16"); - Assert.Equal(category.CategoryName, product.Category.CategoryName); - } - - [Fact] - public void InsertSingleEntityWithMultipleAssociationsSingleTrans() - { - dynamic category; - using (var tx = _db.BeginTransaction()) - { - var product1 = tx.Products.Insert(ProductName: "Test17", UnitPrice: 18m); - var product2 = tx.Products.Insert(ProductName: "Test18", UnitPrice: 19m); - category = tx.Categories.Insert(CategoryName: "Test19", Products: new[] { product1, product2 }); - tx.Commit(); - } - - category = _db.Categories.WithProducts().FindByCategoryName("Test19"); - Assert.Equal(2, category.Products.Count); - } - - [Fact] - public void UpdateAssociationsSingleTrans() - { - var category = _db.Categories.Insert(CategoryName: "Test20"); - var product = _db.Products.Insert(ProductName: "Test21", UnitPrice: 18m, CategoryID: 1); - - using (var tx = _db.BeginTransaction()) - { - tx.Products.UpdateByProductName(ProductName: "Test21", Category: category); - tx.Commit(); - } - - category = _db.Categories.WithProducts().FindByCategoryName("Test20"); - Assert.Equal(1, category.Products.Count); - } - - [Fact] - public void RemoveAssociationsSingleTrans() - { - dynamic category; - dynamic product; - using (var tx = _db.BeginTransaction()) - { - category = tx.Categories.Insert(CategoryName: "Test22"); - product = tx.Products.Insert(ProductName: "Test23", UnitPrice: 18m, CategoryID: 1); - tx.Commit(); - } - - using (var tx = _db.BeginTransaction()) - { - tx.Products.UpdateByProductName(ProductName: "Test23", Category: null); - tx.Commit(); - } - - product = _db.Products.FindByProductName("Test23"); - Assert.Null(product.CategoryID); - } - } -} diff --git a/Simple.Data.OData.Tests/UpdateTest.cs b/Simple.Data.OData.Tests/UpdateTest.cs deleted file mode 100644 index e6ed8238e..000000000 --- a/Simple.Data.OData.Tests/UpdateTest.cs +++ /dev/null @@ -1,111 +0,0 @@ -using Xunit; - -namespace Simple.Data.OData.Tests -{ - public class UpdateTest : TestBase - { - [Fact] - public void UpdateSingleField() - { - _db.Products.UpdateByProductName(ProductName: "Chai", UnitPrice: 123m); - - var product = _db.Products.FindByProductName("Chai"); - Assert.Equal(123m, product.UnitPrice); - } - - [Fact] - public void UpdateObject() - { - var product = _db.Products.FindByProductID(1); - product.UnitPrice = 123m; - - _db.Products.Update(product); - - product = _db.Products.FindByProductID(1); - Assert.Equal(123m, product.UnitPrice); - } - - [Fact] - public void AddSingleAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test1"); - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m); - - _db.Products.UpdateByProductName(ProductName: "Test2", Category: category); - - product = _db.Products.FindByProductName("Test2"); - Assert.Equal(category.CategoryID, product.CategoryID); - category = _db.Category.WithProducts().FindByCategoryName("Test1"); - Assert.True(category.Products.Count == 1); - } - - [Fact] - public void UpdateSingleAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test1"); - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m, CategoryID : 1); - - _db.Products.UpdateByProductName(ProductName: "Test2", Category: category); - - product = _db.Products.FindByProductName("Test2"); - Assert.Equal(category.CategoryID, product.CategoryID); - category = _db.Category.WithProducts().FindByCategoryName("Test1"); - Assert.True(category.Products.Count == 1); - } - - [Fact] - public void RemoveSingleAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test6"); - var product = _db.Products.Insert(ProductName: "Test7", UnitPrice: 18m, Category: category); - product = _db.Products.FindByProductName("Test7"); - _db.Products.UpdateByProductName(ProductName: "Test7", Category: category); - product = _db.Products.FindByProductName("Test7"); - Assert.Equal(category.CategoryID, product.CategoryID); - - _db.Products.UpdateByProductName(ProductName: "Test7", Category: null); - - product = _db.Products.FindByProductName("Test7"); - Assert.Null(product.CategoryID); - } - - [Fact] - public void UpdateFieldsAndAddAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test1"); - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m, CategoryID: 1); - - _db.Products.UpdateByProductName(ProductName: "Test2", UnitPrice: 19m, Category: category); - - product = _db.Products.FindByProductName("Test2"); - Assert.Equal(19m, product.UnitPrice); - Assert.Equal(category.CategoryID, product.CategoryID); - } - - [Fact] - public void UpdateFieldsAndRemoveAssociation() - { - var category = _db.Categories.Insert(CategoryName: "Test1"); - var product = _db.Products.Insert(ProductName: "Test2", UnitPrice: 18m, CategoryID: 1); - - _db.Products.UpdateByProductName(ProductName: "Test2", UnitPrice: 19m, Category: null); - - product = _db.Products.FindByProductName("Test2"); - Assert.Equal(19m, product.UnitPrice); - Assert.Null(product.CategoryID); - } - - [Fact] - public void UpdateMultipleAssociations() - { - var category = _db.Categories.Insert(CategoryName: "Test3"); - var product1 = _db.Products.Insert(ProductName: "Test4", UnitPrice: 21m, CategoryID: 1); - var product2 = _db.Products.Insert(ProductName: "Test5", UnitPrice: 22m, CategoryID: 1); - - _db.Categories.UpdateByCategoryName(CategoryName: "Test3", Products: new[] { product1, product2 }); - - category = _db.Category.WithProducts().FindByCategoryName("Test3"); - Assert.Equal(2, category.Products.Count); - } - } -} diff --git a/Simple.Data.OData.Tests/packages.config b/Simple.Data.OData.Tests/packages.config deleted file mode 100644 index 14387b4d7..000000000 --- a/Simple.Data.OData.Tests/packages.config +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Microsoft.Data.Edm" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.OData" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services.Client" version="5.2.0" targetFramework="net40" /> - <package id="Simple.Data.Core" version="0.18.3.1" targetFramework="net40" /> - <package id="System.Spatial" version="5.2.0" targetFramework="net40" /> - <package id="xunit" version="1.9.1" /> -</packages> \ No newline at end of file diff --git a/Simple.Data.OData/CommandBuilder.cs b/Simple.Data.OData/CommandBuilder.cs deleted file mode 100644 index 532932a1e..000000000 --- a/Simple.Data.OData/CommandBuilder.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.Linq; -using System.Collections.Generic; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - class CommandBuilder - { - private bool _excludeResourceTypeExpressions; - private readonly Dictionary<Type, Func<SimpleQueryClauseBase, QueryCommand, bool>> _processors; - - public CommandBuilder(bool excludeResourceTypeExpressions) - { - _excludeResourceTypeExpressions = excludeResourceTypeExpressions; - _processors = new Dictionary<Type, Func<SimpleQueryClauseBase, QueryCommand, bool>> - { - { typeof(OrderByClause), (x,y) => TryApplyOrderByClause((OrderByClause)x, y) }, - { typeof(SelectClause), (x,y) => TryApplySelectClause((SelectClause)x, y) }, - { typeof(SkipClause), (x,y) => TryApplySkipClause((SkipClause)x, y) }, - { typeof(TakeClause), (x,y) => TryApplyTakeClause((TakeClause)x, y) }, - { typeof(WhereClause), (x,y) => TryApplyWhereClause((WhereClause)x, y) }, - { typeof(WithClause), (x,y) => TryApplyWithClause((WithClause)x, y) }, - { typeof(WithCountClause), (x,y) => TryApplyWithCountClause((WithCountClause)x, y) }, - }; - } - - public QueryCommand BuildCommand(string tablePath, SimpleExpression criteria) - { - return new QueryCommand() - { - TablePath = tablePath, - Criteria = criteria, - FilterExpression = new ExpressionConverter(_excludeResourceTypeExpressions).ConvertExpression(criteria), - }; - } - - public QueryCommand BuildCommand(SimpleQuery query) - { - var cmd = new QueryCommand(); - - var unprocessedClauses = new Queue<SimpleQueryClauseBase>(query.Clauses); - Func<SimpleQueryClauseBase, QueryCommand, bool> processor; - while (unprocessedClauses.Count > 0) - { - var clause = unprocessedClauses.Peek(); - var clauseType = clause.GetType(); - - if (!_processors.TryGetValue(clauseType, out processor) || !processor(clause, cmd)) - break; - - cmd.ProcessedClauses.Push(unprocessedClauses.Dequeue()); - } - - cmd.TablePath = query.TableName; - cmd.UnprocessedClauses = unprocessedClauses; - return cmd; - } - - public QueryCommand BuildCommand(string tablePath, object[] keyValues) - { - return new QueryCommand() { TablePath = tablePath, KeyValues = keyValues.ToList() }; - } - - private bool TryApplyWithClause(WithClause clause, QueryCommand cmd) - { - cmd.Expand.Add(clause.ObjectReference.GetName()); - return true; - } - - private bool TryApplyOrderByClause(OrderByClause clause, QueryCommand cmd) - { - if (cmd.SkipCount.HasValue || cmd.TakeCount.HasValue) - return false; - - cmd.Order.Add(new SimpleOrderByItem(clause.Reference, clause.Direction)); - return true; - } - - private bool TryApplySelectClause(SelectClause clause, QueryCommand cmd) - { - if (cmd.Columns.Any()) - return false; - - cmd.Columns.AddRange(clause.Columns); - return true; - } - - private bool TryApplySkipClause(SkipClause clause, QueryCommand cmd) - { - if (cmd.SkipCount.HasValue || cmd.TakeCount.HasValue) - return false; - - cmd.SkipCount = clause.Count; - return true; - } - - private bool TryApplyTakeClause(TakeClause clause, QueryCommand cmd) - { - if (cmd.TakeCount.HasValue) - return false; - - cmd.TakeCount = clause.Count; - return true; - } - - private bool TryApplyWhereClause(WhereClause clause, QueryCommand cmd) - { - if (cmd.SkipCount.HasValue || cmd.TakeCount.HasValue) - return false; - - cmd.Criteria = cmd.Criteria == null - ? clause.Criteria - : new SimpleExpression(cmd.Criteria, clause.Criteria, SimpleExpressionType.And); - - cmd.FilterExpression = new ExpressionConverter(_excludeResourceTypeExpressions).ConvertExpression(cmd.Criteria); - - return true; - } - - private bool TryApplyWithCountClause(WithCountClause clause, QueryCommand cmd) - { - cmd.SetTotalCount = clause.SetCount; - return true; - } - } -} diff --git a/Simple.Data.OData/ExpressionConverter.cs b/Simple.Data.OData/ExpressionConverter.cs deleted file mode 100644 index 62bdb0770..000000000 --- a/Simple.Data.OData/ExpressionConverter.cs +++ /dev/null @@ -1,135 +0,0 @@ -using System.Linq; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - public class ExpressionConverter - { - private readonly bool _excludeResourceTypeExpressions; - - public ExpressionConverter(bool excludeResourceTypeExpressions) - { - _excludeResourceTypeExpressions = excludeResourceTypeExpressions; - } - - public FilterExpression ConvertExpression(SimpleExpression expression) - { - return Convert(expression); - } - - public string GetReferencedResourceType(SimpleExpression expression) - { - return FindResourceType(expression); - } - - private FilterExpression Convert(object value) - { - if (value is SimpleExpression) - return Convert(value as SimpleExpression); - else if (value is FunctionReference) - return Convert(value as FunctionReference); - else if (value is SimpleReference) - return Convert(value as SimpleReference); - else - return ODataFilter.ExpressionFromValue(value); - } - - private FilterExpression Convert(SimpleExpression expression) - { - switch (expression.Type) - { - case SimpleExpressionType.And: - if (IsResourceTypeExpression(expression.LeftOperand)) - return Convert(expression.RightOperand); - else if (IsResourceTypeExpression(expression.RightOperand)) - return Convert(expression.LeftOperand); - else - return Convert(expression.LeftOperand) && Convert(expression.RightOperand); - case SimpleExpressionType.Or: - if (IsResourceTypeExpression(expression.LeftOperand)) - return Convert(expression.RightOperand); - else if (IsResourceTypeExpression(expression.RightOperand)) - return Convert(expression.LeftOperand); - else - return Convert(expression.LeftOperand) || Convert(expression.RightOperand); - case SimpleExpressionType.Equal: - return Convert(expression.LeftOperand) == Convert(expression.RightOperand); - case SimpleExpressionType.NotEqual: - return Convert(expression.LeftOperand) != Convert(expression.RightOperand); - case SimpleExpressionType.GreaterThan: - return Convert(expression.LeftOperand) > Convert(expression.RightOperand); - case SimpleExpressionType.GreaterThanOrEqual: - return Convert(expression.LeftOperand) >= Convert(expression.RightOperand); - case SimpleExpressionType.LessThan: - return Convert(expression.LeftOperand) < Convert(expression.RightOperand); - case SimpleExpressionType.LessThanOrEqual: - return Convert(expression.LeftOperand) <= Convert(expression.RightOperand); - case SimpleExpressionType.Function: - return Convert(expression.LeftOperand); - default: - return null; - } - } - - private FilterExpression Convert(SimpleReference reference) - { - var formattedReference = reference.GetAliasOrName(); - if (reference is ObjectReference) - { - formattedReference = string.Join(".", (reference as ObjectReference).GetAllObjectNames().Skip(1)); - } - return ODataFilter.ExpressionFromReference(formattedReference); - } - - private FilterExpression Convert(FunctionReference function) - { - return ODataFilter.ExpressionFromFunction(function.Name, - function.Argument.GetAliasOrName(), - function.AdditionalArguments); - } - - private string FindResourceType(object value) - { - if (value is SimpleExpression) - return FindResourceType(value as SimpleExpression); - else - return null; - } - - private string FindResourceType(SimpleExpression expression) - { - string resourceType = null; - switch (expression.Type) - { - case SimpleExpressionType.And: - case SimpleExpressionType.Or: - resourceType = FindResourceType(expression.LeftOperand); - resourceType = resourceType ?? FindResourceType(expression.RightOperand); - break; - case SimpleExpressionType.Equal: - if (expression.LeftOperand is ObjectReference && - (expression.LeftOperand as ObjectReference).GetAliasOrName() == ODataFeed.ResourceTypeLiteral) - resourceType = expression.RightOperand.ToString(); - break; - } - return resourceType; - } - - private bool IsResourceTypeExpression(object value) - { - if (!_excludeResourceTypeExpressions) - return false; - - var expression = value as SimpleExpression; - if (expression != null && expression.Type == SimpleExpressionType.Equal) - { - if (expression.LeftOperand is ObjectReference && - (expression.LeftOperand as ObjectReference).GetAliasOrName() == ODataFeed.ResourceTypeLiteral) - { - return true; - } - } - return false; - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData/IDatabaseOpenerExtensions.cs b/Simple.Data.OData/IDatabaseOpenerExtensions.cs deleted file mode 100644 index 4a69e7049..000000000 --- a/Simple.Data.OData/IDatabaseOpenerExtensions.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Net; - -namespace Simple.Data.OData -{ - public static class IDatabaseOpenerExtensions - { - public static dynamic Open(this IDatabaseOpener opener, string url) - { - return opener.Open("OData", CreateSettings(url, null, false, null, null)); - } - - public static dynamic Open(this IDatabaseOpener opener, Uri uri) - { - return opener.Open("OData", CreateSettings(uri.AbsoluteUri, null, false, null, null)); - } - - public static dynamic Open(this IDatabaseOpener opener, ODataFeed settings) - { - return opener.Open("OData", CreateSettings( - settings.Url, - settings.Credentials, - settings.IncludeResourceTypeInEntryProperties, - settings.BeforeRequest, - settings.AfterResponse)); - } - - private static object CreateSettings( - string url, - ICredentials credentials, - bool includeResourceTypeInEntryProperties, - Action<HttpWebRequest> beforeRequest, - Action<HttpWebResponse> afterResponse) - { - return new - { - Url = url, - Credentials = credentials, - IncludeResourceTypeInEntryProperties = includeResourceTypeInEntryProperties, - BeforeRequest = beforeRequest, - AfterResponse = afterResponse, - }; - } - } -} diff --git a/Simple.Data.OData/ODataAdapterTransaction.cs b/Simple.Data.OData/ODataAdapterTransaction.cs deleted file mode 100644 index 60d9b2380..000000000 --- a/Simple.Data.OData/ODataAdapterTransaction.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - class ODataAdapterTransaction : IAdapterTransaction - { - private readonly ODataTableAdapter _adapter; - private readonly ODataBatch _batch; - - public ODataAdapterTransaction(ODataTableAdapter adapter) - { - _adapter = adapter; - _batch = new ODataBatch(_adapter.ClientSettings); - } - - public string Name - { - get { return null; } - } - - public ODataBatch Batch - { - get { return _batch; } - } - - public void Commit() - { - _batch.Complete(); - } - - public void Rollback() - { - _batch.Cancel(); - } - - public void Dispose() - { - _batch.Dispose(); - } - } -} diff --git a/Simple.Data.OData/ODataFeed.cs b/Simple.Data.OData/ODataFeed.cs deleted file mode 100644 index 6e72f1264..000000000 --- a/Simple.Data.OData/ODataFeed.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using System.Net; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - public class ODataFeed - { - private readonly ODataClientSettings _clientSettings = new ODataClientSettings(); - - internal ODataClientSettings ClientSettings - { - get { return _clientSettings; } - } - - public string Url - { - get { return _clientSettings.UrlBase; } - set { _clientSettings.UrlBase = value; } - } - - public ICredentials Credentials - { - get { return _clientSettings.Credentials; } - set { _clientSettings.Credentials = value; } - } - - public bool IncludeResourceTypeInEntryProperties - { - get { return _clientSettings.IncludeResourceTypeInEntryProperties; } - set { _clientSettings.IncludeResourceTypeInEntryProperties = value; } - } - - public Action<HttpWebRequest> BeforeRequest - { - get { return _clientSettings.BeforeRequest; } - set { _clientSettings.BeforeRequest = value; } - } - - public Action<HttpWebResponse> AfterResponse - { - get { return _clientSettings.AfterResponse; } - set { _clientSettings.AfterResponse = value; } - } - - public const string ResourceTypeLiteral = "__resourcetype"; - - public ODataFeed() - { - } - - public ODataFeed(string url, ICredentials credentials = null) - { - this.Url = url; - this.Credentials = credentials; - } - - internal ODataFeed(dynamic expando) - { - this.Url = expando.Url; - this.Credentials = expando.Credentials; - this.IncludeResourceTypeInEntryProperties = expando.IncludeResourceTypeInEntryProperties; - this.BeforeRequest = expando.BeforeRequest; - this.AfterResponse = expando.AfterResponse; - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData/ODataProviderException.cs b/Simple.Data.OData/ODataProviderException.cs deleted file mode 100644 index 3674255dd..000000000 --- a/Simple.Data.OData/ODataProviderException.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; - -namespace Simple.Data.OData -{ - [Serializable] - public class ODataAdapterException : AdapterException - { - public ODataAdapterException() - : base(typeof(ODataTableAdapter)) - { - } - - public ODataAdapterException(string message, IDbCommand command) - : base(message, typeof(ODataTableAdapter)) - { - CommandText = command.CommandText; - Parameters = command.Parameters.Cast<IDbDataParameter>() - .ToDictionary(p => p.ParameterName, p => p.Value); - } - - public ODataAdapterException(string commandText, IEnumerable<KeyValuePair<string, object>> parameters) - : base(typeof(ODataTableAdapter)) - { - CommandText = commandText; - Parameters = parameters.ToDictionary(x => x.Key, x => x.Value); - } - - - public ODataAdapterException(string message) - : base(message, typeof(ODataTableAdapter)) - { - } - - public ODataAdapterException(string message, string commandText, IEnumerable<KeyValuePair<string, object>> parameters) - : base(message, typeof(ODataTableAdapter)) - { - CommandText = commandText; - Parameters = parameters.ToDictionary(x => x.Key, x => x.Value); - } - - public ODataAdapterException(string message, Exception inner) - : base(message, inner, typeof(ODataTableAdapter)) - { - } - - protected ODataAdapterException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - - public IDictionary<string, object> Parameters - { - get { return Data.Contains("Parameters") ? ((KeyValuePair<string, object>[])Data["Parameters"]).ToDictionary(x => x.Key, x => x.Value) : null; } - private set { Data["Parameters"] = value.ToArray(); } - } - - public string CommandText - { - get { return Data.Contains("CommandText") ? Data["CommandText"].ToString() : null; } - private set { Data["CommandText"] = value; } - } - } -} diff --git a/Simple.Data.OData/ODataTableAdapter.cs b/Simple.Data.OData/ODataTableAdapter.cs deleted file mode 100644 index 5a5aca546..000000000 --- a/Simple.Data.OData/ODataTableAdapter.cs +++ /dev/null @@ -1,300 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.Composition; -using System.Linq; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - [Export("OData", typeof(Adapter))] - public partial class ODataTableAdapter : Adapter - { - private ODataClientSettings _clientSettings; - private ISchema _schema; - - internal ODataClientSettings ClientSettings - { - get { return _clientSettings; } - } - - internal ISchema GetSchema() - { - return _schema ?? (_schema = ODataClient.GetSchema(_clientSettings.UrlBase, _clientSettings.Credentials)); - } - - protected override void OnSetup() - { - base.OnSetup(); - - var odataFeed = new ODataFeed(this.Settings); - _clientSettings = odataFeed.ClientSettings; - _schema = ODataClient.GetSchema(_clientSettings.UrlBase, _clientSettings.Credentials); - } - - public override IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria) - { - return FindByExpression(tableName, criteria); - } - - public override IDictionary<string, object> GetKey(string tableName, IDictionary<string, object> record) - { - return FindTable(tableName).GetKey(tableName, record); - } - - public override IList<string> GetKeyNames(string tableName) - { - return FindTable(tableName).GetKeyNames(); - } - - public override IDictionary<string, object> Get(string tableName, params object[] keyValues) - { - return FindByKey(tableName, keyValues); - } - - public override IEnumerable<IDictionary<string, object>> RunQuery(SimpleQuery query, out IEnumerable<SimpleQueryClauseBase> unhandledClauses) - { - return FindByQuery(query, out unhandledClauses); - } - - public override IDictionary<string, object> Insert(string tableName, IDictionary<string, object> data, bool resultRequired) - { - return InsertOne(tableName, data, resultRequired, null); - } - - public override int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria) - { - return UpdateByExpression(tableName, data, criteria, null); - } - - public override int Delete(string tableName, SimpleExpression criteria) - { - return DeleteByExpression(tableName, criteria, null); - } - - public override bool IsExpressionFunction(string functionName, params object[] args) - { - return false; - } - - private IEnumerable<IDictionary<string, object>> FindByExpression(string tableName, SimpleExpression criteria) - { - var baseTable = GetBaseTable(tableName); - var concreteTableName = baseTable == null ? tableName : baseTable.ActualName; - - var cmd = GetCommandBuilder().BuildCommand(concreteTableName, criteria); - return GetODataClientCommand(cmd).FindEntries(); - } - - private IEnumerable<IDictionary<string, object>> FindByQuery(SimpleQuery query, out IEnumerable<SimpleQueryClauseBase> unhandledClauses) - { - var cmd = GetCommandBuilder().BuildCommand(query); - unhandledClauses = cmd.UnprocessedClauses; - var clientCommand = GetODataClientCommand(cmd); - - IEnumerable<IDictionary<string, object>> results; - if (cmd.SetTotalCount == null) - { - results = clientCommand.FindEntries(cmd.IsScalarResult); - } - else - { - int totalCount; - results = clientCommand.FindEntries(out totalCount); - cmd.SetTotalCount(totalCount); - } - return results; - } - - private IDictionary<string, object> FindByKey(string tableName, object[] keyValues) - { - var baseTable = GetBaseTable(tableName); - var concreteTableName = baseTable == null ? tableName : baseTable.ActualName; - - var cmd = GetCommandBuilder().BuildCommand(concreteTableName, keyValues); - return GetODataClientCommand(cmd).FindEntries().SingleOrDefault(); - } - - private IDictionary<string, object> InsertOne(string tableName, - IDictionary<string, object> data, bool resultRequired, IAdapterTransaction transaction) - { - tableName = EvaluateConcreteTableName(tableName, data, null); - CheckInsertablePropertiesAreAvailable(tableName, data); - var tablePath = GetTablePath(tableName); - - var client = GetODataClient(transaction); - - return client.InsertEntry(tablePath, data, resultRequired); - } - - private int UpdateByExpression(string tableName, - IDictionary<string, object> data, SimpleExpression criteria, IAdapterTransaction transaction) - { - tableName = EvaluateConcreteTableName(tableName, data, criteria); - var tablePath = GetTablePath(tableName); - var concreteTableName = tablePath.Split('/').Last(); - - var cmd = GetCommandBuilder().BuildCommand(concreteTableName, criteria); - var clientCommand = GetODataClientCommand(cmd); - var client = GetODataClient(transaction); - - return clientCommand.FilterIsKey ? - client.UpdateEntry(tablePath, clientCommand.FilterAsKey, data) : - client.UpdateEntries(tablePath, clientCommand.CommandText, data); - } - - private int DeleteByExpression(string tableName, - SimpleExpression criteria, IAdapterTransaction transaction) - { - tableName = EvaluateConcreteTableName(tableName, null, criteria); - var tablePath = GetTablePath(tableName); - var concreteTableName = tablePath.Split('/').Last(); - - var cmd = GetCommandBuilder().BuildCommand(concreteTableName, criteria); - var clientCommand = GetODataClientCommand(cmd); - var client = GetODataClient(transaction); - - return clientCommand.FilterIsKey ? - client.DeleteEntry(tablePath, clientCommand.FilterAsKey) : - client.DeleteEntries(tablePath, clientCommand.CommandText); - } - - private ODataClient GetODataClient(IAdapterTransaction transaction = null) - { - ODataClient client; - var adapterTransaction = transaction as ODataAdapterTransaction; - if (adapterTransaction != null) - { - client = new ODataClient(adapterTransaction.Batch); - } - else - { - client = new ODataClient(_clientSettings); - } - - var adapterPluralizer = Database.GetPluralizer(); - if (adapterPluralizer != null) - { - var clientPluralizer = new Pluralizer(adapterPluralizer.IsPlural, adapterPluralizer.IsSingular, - adapterPluralizer.Pluralize, adapterPluralizer.Singularize); - ODataClient.SetPluralizer(clientPluralizer); - } - - return client; - } - - private IClientWithCommand GetODataClientCommand(QueryCommand cmd) - { - var linkNames = cmd.TablePath.Split('.'); - var client = GetODataClient(); - - var tableName = linkNames.First(); - var baseTable = GetBaseTable(tableName); - var derivedTable = GetAsDerivedTable(tableName); - var clientCommand = derivedTable != null - ? client.From(baseTable.ActualName).As(derivedTable.ActualName) - : client.From(tableName); - - if (cmd.NamedKeyValues != null && cmd.NamedKeyValues.Count > 0) - clientCommand = clientCommand.Key(cmd.NamedKeyValues); - else if (cmd.KeyValues != null && cmd.KeyValues.Count > 0) - clientCommand = clientCommand.Key(cmd.KeyValues); - - if (!ReferenceEquals(cmd.FilterExpression, null)) - clientCommand = clientCommand.Filter(cmd.FilterExpression); - - if (cmd.Expand.Count > 0) - clientCommand = clientCommand.Expand(cmd.Expand); - - if (cmd.SkipCount.HasValue) - clientCommand = clientCommand.Skip(cmd.SkipCount.Value); - - if (cmd.TakeCount.HasValue) - clientCommand = clientCommand.Top(cmd.TakeCount.Value); - - if (cmd.Order.Count > 0) - clientCommand = clientCommand.OrderBy( - cmd.Order.Select(x => - new KeyValuePair<string, bool>(x.Reference.GetAliasOrName(), - x.Direction == OrderByDirection.Descending))); - - if (cmd.Columns.Count == 1 && cmd.Columns.First().GetType() == typeof(CountSpecialReference)) - { - clientCommand = clientCommand.Count(); - cmd.IsScalarResult = true; - } - else if (cmd.Columns.Count > 0) - { - clientCommand = clientCommand.Select(cmd.Columns.Select(x => x.GetAliasOrName())); - } - - linkNames.Skip(1).ToList().ForEach(x => clientCommand = clientCommand.NavigateTo(x)); - - return clientCommand; - } - - private void CheckInsertablePropertiesAreAvailable(string tableName, IEnumerable<KeyValuePair<string, object>> data) - { - Table table = FindTable(tableName); - data = data.Where(kvp => table.HasColumn(kvp.Key)); - if (!data.Any()) - { - throw new SimpleDataException("No properties were found which could be mapped to the database."); - } - } - - private CommandBuilder GetCommandBuilder() - { - return new CommandBuilder(this.ClientSettings.IncludeResourceTypeInEntryProperties); - } - - private Table FindTable(string tableName) - { - Table table = null; - if (!GetSchema().HasTable(tableName)) - table = GetAsDerivedTable(tableName); - if (table == null) - table = GetSchema().FindTable(tableName); - return table; - } - - private Table GetBaseTable(string tableName) - { - return GetSchema().Tables.SingleOrDefault(x => x.HasDerivedTable(tableName)); - } - - private Table GetAsDerivedTable(string tableName) - { - var baseTable = GetBaseTable(tableName); - return baseTable == null ? null : baseTable.FindDerivedTable(tableName); - } - - private string GetTablePath(string tableName) - { - var baseTable = GetBaseTable(tableName); - var derivedTable = GetAsDerivedTable(tableName); - var baseTableName = baseTable == null ? tableName : baseTable.ActualName; - var derivedTableName = derivedTable == null ? null : derivedTable.ActualName; - return derivedTableName == null ? baseTableName : string.Join("/", baseTableName, derivedTableName); - } - - private string EvaluateConcreteTableName(string tableName, IDictionary<string, object> data, SimpleExpression criteria) - { - if (!this.ClientSettings.IncludeResourceTypeInEntryProperties) - return tableName; - - if (data != null && data.ContainsKey(ODataFeed.ResourceTypeLiteral)) - { - tableName = data[ODataFeed.ResourceTypeLiteral].ToString(); - data.Remove(ODataFeed.ResourceTypeLiteral); - } - else if (criteria != null) - { - var converter = new ExpressionConverter(true); - var resourceType = converter.GetReferencedResourceType(criteria); - if (!string.IsNullOrEmpty(resourceType)) - tableName = resourceType; - } - return tableName; - } - } -} diff --git a/Simple.Data.OData/ODataTableAdapterWithFunctions.cs b/Simple.Data.OData/ODataTableAdapterWithFunctions.cs deleted file mode 100644 index 14d8a3212..000000000 --- a/Simple.Data.OData/ODataTableAdapterWithFunctions.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - public partial class ODataTableAdapter : IAdapterWithFunctions - { - public bool IsValidFunction(string functionName) - { - return GetSchema().HasFunction(functionName); - } - - public IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> Execute(string functionName, IDictionary<string, object> parameters) - { - return ExecuteFunction(functionName, parameters, null); - } - - public IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> Execute(string functionName, IDictionary<string, object> parameters, IAdapterTransaction transaction) - { - return ExecuteFunction(functionName, parameters, transaction); - } - - private IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(string functionName, IDictionary<string, object> parameters, IAdapterTransaction transaction) - { - return GetODataClient(transaction).ExecuteFunction(functionName, parameters); - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData/ODataTableAdapterWithTransactions.cs b/Simple.Data.OData/ODataTableAdapterWithTransactions.cs deleted file mode 100644 index 9c7d03571..000000000 --- a/Simple.Data.OData/ODataTableAdapterWithTransactions.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - public partial class ODataTableAdapter : IAdapterWithTransactions - { - public IAdapterTransaction BeginTransaction(string name, System.Data.IsolationLevel isolationLevel = System.Data.IsolationLevel.Unspecified) - { - return BeginTransaction(); - } - - public IAdapterTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel = System.Data.IsolationLevel.Unspecified) - { - return new ODataAdapterTransaction(this); - } - - public IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria, IAdapterTransaction transaction) - { - return this.Find(tableName, criteria); - } - - public IDictionary<string, object> Get(string tableName, IAdapterTransaction transaction, params object[] parameterValues) - { - return this.Get(tableName, parameterValues); - } - - public IEnumerable<IDictionary<string, object>> RunQuery(SimpleQuery query, IAdapterTransaction transaction, out IEnumerable<SimpleQueryClauseBase> unhandledClauses) - { - return this.RunQuery(query, out unhandledClauses); - } - - public IDictionary<string, object> Insert(string tableName, IDictionary<string, object> data, IAdapterTransaction transaction, bool resultRequired) - { - return InsertOne(tableName, data, resultRequired, transaction); - } - - public IEnumerable<IDictionary<string, object>> InsertMany(string tableName, IEnumerable<IDictionary<string, object>> data, IAdapterTransaction transaction, Func<IDictionary<string, object>, Exception, bool> onError, bool resultRequired) - { - return this.InsertMany(tableName, data, onError, resultRequired); - } - - public int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria, IAdapterTransaction transaction) - { - return UpdateByExpression(tableName, data, criteria, transaction); - } - - public int UpdateMany(string tableName, IList<IDictionary<string, object>> dataList, IEnumerable<string> criteriaFieldNames, IAdapterTransaction transaction) - { - return this.UpdateMany(tableName, dataList, criteriaFieldNames); - } - - public int UpdateMany(string tableName, IEnumerable<IDictionary<string, object>> dataList, IAdapterTransaction transaction, IList<string> keyFields) - { - return this.UpdateMany(tableName, dataList, keyFields); - } - - public int UpdateMany(string tableName, IEnumerable<IDictionary<string, object>> dataList, IAdapterTransaction transaction) - { - return this.UpdateMany(tableName, dataList); - } - - public int Delete(string tableName, SimpleExpression criteria, IAdapterTransaction transaction) - { - return DeleteByExpression(tableName, criteria, transaction); - } - } -} diff --git a/Simple.Data.OData/Properties/AssemblyInfo.cs b/Simple.Data.OData/Properties/AssemblyInfo.cs deleted file mode 100644 index 1b6707bc4..000000000 --- a/Simple.Data.OData/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.Data.OData")] -[assembly: AssemblyDescription("OData provider for the Simple.Data data access library.")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("faa7eb1a-4e98-4a89-81f8-4df6e29cdf7f")] - -[assembly: InternalsVisibleTo("Simple.Data.OData.Tests")] diff --git a/Simple.Data.OData/QueryCommand.cs b/Simple.Data.OData/QueryCommand.cs deleted file mode 100644 index 7cc57cb9f..000000000 --- a/Simple.Data.OData/QueryCommand.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using Simple.OData.Client; - -namespace Simple.Data.OData -{ - class QueryCommand - { - private readonly List<string> _expand; - private readonly List<SimpleReference> _columns; - private readonly List<SimpleOrderByItem> _order; - - public SimpleExpression Criteria { get; set; } - public FilterExpression FilterExpression { get; set; } - public List<object> KeyValues { get; set; } - public Dictionary<string, object> NamedKeyValues { get; set; } - public List<SimpleReference> Columns { get { return _columns; } } - public List<string> Expand { get { return _expand; } } - public List<SimpleOrderByItem> Order { get { return _order; } } - public int? SkipCount { get; set; } - public int? TakeCount { get; set; } - public Action<int> SetTotalCount { get; set; } - public bool IsScalarResult { get; set; } - - public string TablePath { get; set; } - public Stack<SimpleQueryClauseBase> ProcessedClauses { get; private set; } - public IEnumerable<SimpleQueryClauseBase> UnprocessedClauses { get; set; } - - public QueryCommand() - { - this.ProcessedClauses = new Stack<SimpleQueryClauseBase>(); - _columns = new List<SimpleReference>(); - _order = new List<SimpleOrderByItem>(); - _expand = new List<string>(); - } - } -} \ No newline at end of file diff --git a/Simple.Data.OData/Simple.Data.OData.csproj b/Simple.Data.OData/Simple.Data.OData.csproj deleted file mode 100644 index ea1171a14..000000000 --- a/Simple.Data.OData/Simple.Data.OData.csproj +++ /dev/null @@ -1,91 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.Data.OData</RootNamespace> - <AssemblyName>Simple.Data.OData</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="Simple.Data, Version=0.18.3.1, Culture=neutral, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Simple.Data.Core.0.18.3.1\lib\net40\Simple.Data.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.ComponentModel.Composition" /> - <Reference Include="System.Core" /> - <Reference Include="System.Web" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="ExpressionConverter.cs" /> - <Compile Include="ODataAdapterTransaction.cs" /> - <Compile Include="ODataProviderException.cs" /> - <Compile Include="ODataFeed.cs" /> - <Compile Include="ODataTableAdapterWithFunctions.cs" /> - <Compile Include="ODataTableAdapterWithTransactions.cs" /> - <Compile Include="CommandBuilder.cs" /> - <Compile Include="IDatabaseOpenerExtensions.cs" /> - <Compile Include="ODataTableAdapter.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="QueryCommand.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - <None Include="Simple.Data.OData.nuspec" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Simple.NExtLib\Simple.NExtLib.csproj"> - <Project>{4a191fad-dc1d-46fc-a941-7deb2c8c4c15}</Project> - <Name>Simple.NExtLib</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.OData.Client\Simple.OData.Client.csproj"> - <Project>{c20a3959-4895-41f8-86e2-7ded294fd904}</Project> - <Name>Simple.OData.Client</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.Data.OData/Simple.Data.OData.nuspec b/Simple.Data.OData/Simple.Data.OData.nuspec deleted file mode 100644 index 7f99acb64..000000000 --- a/Simple.Data.OData/Simple.Data.OData.nuspec +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> -<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <id>Simple.Data.OData</id> - <version>$version$</version> - <authors>$author$</authors> - <owners>Mark Rendle, Vagif Abilov</owners> - <description>$description$</description> - <projectUrl>https://github.com/simplefx/Simple.OData</projectUrl> - <licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl> - <iconUrl>http://simplefx.org/images/simpledata100x100.png</iconUrl> - <tags>odata data .net40 rest</tags> - <language>en-us</language> - <dependencies> - <dependency id="Simple.Data.Core" version="0.18.1.0" /> - <dependency id="Simple.OData.Client" version="0.12.1.0" /> - </dependencies> - </metadata> - <files> - </files> -</package> diff --git a/Simple.Data.OData/packages.config b/Simple.Data.OData/packages.config deleted file mode 100644 index 962ea230a..000000000 --- a/Simple.Data.OData/packages.config +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Simple.Data.Core" version="0.18.3.1" targetFramework="net40" /> - <package id="Simple.OData.Client" version="0.10.0.0" targetFramework="net40" /> -</packages> \ No newline at end of file diff --git a/Simple.NExtLib.TestUtils/ContainTest.cs b/Simple.NExtLib.TestUtils/ContainTest.cs deleted file mode 100644 index 88e3c9bd2..000000000 --- a/Simple.NExtLib.TestUtils/ContainTest.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - using Xunit; - - public class ContainTest : IEnumerableTest - { - public void RunTest<T>(T expected, IEnumerable<T> actual) - { - Assert.True(actual.Contains(expected)); - } - } -} diff --git a/Simple.NExtLib.TestUtils/EqualTest.cs b/Simple.NExtLib.TestUtils/EqualTest.cs deleted file mode 100644 index 5eeaa1eb1..000000000 --- a/Simple.NExtLib.TestUtils/EqualTest.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - using Xunit; - - public class EqualTest : IBinaryTest - { - public void Run<T>(T expected, T actual) - { - Assert.Equal(expected, actual); - } - } -} diff --git a/Simple.NExtLib.TestUtils/GenericBinaryTest.cs b/Simple.NExtLib.TestUtils/GenericBinaryTest.cs deleted file mode 100644 index 3662aabed..000000000 --- a/Simple.NExtLib.TestUtils/GenericBinaryTest.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - public class GenericBinaryTest - { - } -} diff --git a/Simple.NExtLib.TestUtils/IBinaryTest.cs b/Simple.NExtLib.TestUtils/IBinaryTest.cs deleted file mode 100644 index 67c92f829..000000000 --- a/Simple.NExtLib.TestUtils/IBinaryTest.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - public interface IBinaryTest - { - void Run<T>(T expected, T actual); - } -} diff --git a/Simple.NExtLib.TestUtils/IEnumerableTest.cs b/Simple.NExtLib.TestUtils/IEnumerableTest.cs deleted file mode 100644 index 667440a90..000000000 --- a/Simple.NExtLib.TestUtils/IEnumerableTest.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - public interface IEnumerableTest - { - void RunTest<T>(T expected, IEnumerable<T> actual); - } -} diff --git a/Simple.NExtLib.TestUtils/Properties/AssemblyInfo.cs b/Simple.NExtLib.TestUtils/Properties/AssemblyInfo.cs deleted file mode 100644 index 39833032a..000000000 --- a/Simple.NExtLib.TestUtils/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("NExtLib.Unit")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ec152b00-d243-4378-9248-162d78b72a04")] diff --git a/Simple.NExtLib.TestUtils/ShouldExtensions.cs b/Simple.NExtLib.TestUtils/ShouldExtensions.cs deleted file mode 100644 index de189065c..000000000 --- a/Simple.NExtLib.TestUtils/ShouldExtensions.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NExtLib.TestExtensions; - -namespace NExtLib.Unit -{ - using Xunit; - - public static class ShouldExtensions - { - public static void ShouldEqual<T>(this T actual, T expected) - { - Assert.Equal(expected, actual); - } - - public static void ShouldEqual<T>(this T actual, T expected, string message) - { - Assert.Equal(expected, actual); - } - - public static void ShouldBeNull<T>(this T actual) - where T : class - { - Assert.Null(actual); - } - - public static void ShouldNotBeNull<T>(this T actual) - where T : class - { - Assert.NotNull(actual); - } - - public static void Should<T>(this T actual, IBinaryTest equal, T expected) - { - if (equal == null) throw new ArgumentNullException("equal"); - - equal.Run(expected, actual); - } - - public static void Should<T>(this IEnumerable<T> actual, IEnumerableTest test, T expected) - { - if (test == null) throw new ArgumentNullException("test"); - - test.RunTest(expected, actual); - } - } -} diff --git a/Simple.NExtLib.TestUtils/Simple.NExtLib.TestUtils.csproj b/Simple.NExtLib.TestUtils/Simple.NExtLib.TestUtils.csproj deleted file mode 100644 index 65f30a8df..000000000 --- a/Simple.NExtLib.TestUtils/Simple.NExtLib.TestUtils.csproj +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{072F8BE4-81C1-4276-A9A5-1AEC87A84265}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.NExtLib.TestUtils</RootNamespace> - <AssemblyName>Simple.NExtLib.TestUtils</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - <Reference Include="xunit, Version=1.9.1.1600, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\xunit.1.9.1\lib\net20\xunit.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="ContainTest.cs" /> - <Compile Include="EqualTest.cs" /> - <Compile Include="GenericBinaryTest.cs" /> - <Compile Include="IBinaryTest.cs" /> - <Compile Include="IEnumerableTest.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="ShouldExtensions.cs" /> - <Compile Include="TestBase.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.NExtLib.TestUtils/TestBase.cs b/Simple.NExtLib.TestUtils/TestBase.cs deleted file mode 100644 index 02d484268..000000000 --- a/Simple.NExtLib.TestUtils/TestBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace NExtLib.TestExtensions -{ - public abstract class TestBase - { - protected static readonly IBinaryTest Equal = new EqualTest(); - protected static readonly IEnumerableTest Contain = new ContainTest(); - } -} diff --git a/Simple.NExtLib.TestUtils/packages.config b/Simple.NExtLib.TestUtils/packages.config deleted file mode 100644 index ddb8e81db..000000000 --- a/Simple.NExtLib.TestUtils/packages.config +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="xunit" version="1.9.1" /> -</packages> \ No newline at end of file diff --git a/Simple.NExtLib.Tests/DateTimeExtensionsTests.cs b/Simple.NExtLib.Tests/DateTimeExtensionsTests.cs deleted file mode 100644 index 03b72bc47..000000000 --- a/Simple.NExtLib.Tests/DateTimeExtensionsTests.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Xunit; - -namespace Simple.NExtLib.Tests -{ - - public class DateTimeExtensionsTests - { - [Fact] - public void ToIso8601String_formats_dates_correctly() - { - var date = new DateTime(2010, 2, 17, 13, 12, 34, 0, DateTimeKind.Utc); - - Assert.Equal("2010-02-17T13:12:34.0000000Z", date.ToIso8601String()); - } - } -} diff --git a/Simple.NExtLib.Tests/Linq/EnumerableExtensionTests.cs b/Simple.NExtLib.Tests/Linq/EnumerableExtensionTests.cs deleted file mode 100644 index c92114129..000000000 --- a/Simple.NExtLib.Tests/Linq/EnumerableExtensionTests.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.Generic; -using NExtLib.Unit; -using Xunit; -using Simple.NExtLib.Linq; - -namespace Simple.NExtLib.Tests.Linq -{ - public class EnumerableExtensionTests - { - private readonly IEnumerable<string> TestList = new List<string> { "Foo", "Bar", "Quux" }; - - [Fact] - public void TestWithIndex() - { - int expectedIndex = 0; - - foreach (var item in TestList.WithIndex()) - { - item.Item2.ShouldEqual(expectedIndex); - expectedIndex++; - } - } - } -} diff --git a/Simple.NExtLib.Tests/Properties/AssemblyInfo.cs b/Simple.NExtLib.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index c2855e984..000000000 --- a/Simple.NExtLib.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("NExtLib.Unit.Tests")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fc845d30-b32d-4e62-86c8-0999a399e720")] diff --git a/Simple.NExtLib.Tests/Properties/Resources.Designer.cs b/Simple.NExtLib.Tests/Properties/Resources.Designer.cs deleted file mode 100644 index 71e6de8e2..000000000 --- a/Simple.NExtLib.Tests/Properties/Resources.Designer.cs +++ /dev/null @@ -1,138 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated by a tool. -// Runtime Version:4.0.30319.269 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </auto-generated> -//------------------------------------------------------------------------------ - -namespace Simple.NExtLib.Tests.Properties { - using System; - - - /// <summary> - /// A strongly-typed resource class, for looking up localized strings, etc. - /// </summary> - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// <summary> - /// Returns the cached ResourceManager instance used by this class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Simple.NExtLib.Tests.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// <summary> - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8"?> - ///<statuses> - ///<status> - ///<created_at>Tue Apr 07 22:52:51 +0000 2009</created_at> - ///<id>1472669360</id> - ///<text>Tweet one.</text> - ///<source><a href="http://www.tweetdeck.com/">TweetDeck</a></source> - ///<truncated>false</truncated> - ///<in_reply_to_status_id></in_reply_to_status_id> - ///<in_reply_to_user_id></in_reply_to_user_id> - ///<favorited>false</favorited> - ///<in_reply_to_screen_name></in_reply_to_screen_name> - ///<user> - ///<id>1401881</id> - ///<name>Doug Williams</name> - ///<screen_name>dougw [rest of string was truncated]";. - /// </summary> - internal static string TwitterStatusesSample { - get { - return ResourceManager.GetString("TwitterStatusesSample", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<root xmlns="http://schemas.next.lib/tests"> - /// <child> - /// <sub>Foo</sub> - /// </child> - /// <child> - /// <sub>Bar</sub> - /// </child> - ///</root>. - /// </summary> - internal static string XmlWithDefaultNamespace { - get { - return ResourceManager.GetString("XmlWithDefaultNamespace", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<root> - /// <child> - /// <sub>Foo</sub> - /// </child> - /// <child> - /// <sub>Bar</sub> - /// </child> - ///</root>. - /// </summary> - internal static string XmlWithNoNamespace { - get { - return ResourceManager.GetString("XmlWithNoNamespace", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<root xmlns:c="http://schemas.next.lib/tests"> - /// <c:child> - /// <c:sub>Foo</c:sub> - /// </c:child> - /// <c:child> - /// <c:sub>Bar</c:sub> - /// </c:child> - ///</root>. - /// </summary> - internal static string XmlWithPrefixedNamespace { - get { - return ResourceManager.GetString("XmlWithPrefixedNamespace", resourceCulture); - } - } - } -} diff --git a/Simple.NExtLib.Tests/Properties/Resources.resx b/Simple.NExtLib.Tests/Properties/Resources.resx deleted file mode 100644 index 4136d43fd..000000000 --- a/Simple.NExtLib.Tests/Properties/Resources.resx +++ /dev/null @@ -1,134 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> - <data name="TwitterStatusesSample" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\Resources\TwitterStatusesSample.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> - </data> - <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> - <data name="XmlWithDefaultNamespace" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\Resources\XmlWithDefaultNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> - </data> - <data name="XmlWithNoNamespace" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\Resources\XmlWithNoNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> - </data> - <data name="XmlWithPrefixedNamespace" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\Resources\XmlWithPrefixedNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> - </data> -</root> \ No newline at end of file diff --git a/Simple.NExtLib.Tests/Simple.NExtLib.Tests.csproj b/Simple.NExtLib.Tests/Simple.NExtLib.Tests.csproj deleted file mode 100644 index 06d74c1d4..000000000 --- a/Simple.NExtLib.Tests/Simple.NExtLib.Tests.csproj +++ /dev/null @@ -1,107 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{8DF17038-537D-45BE-B229-C99EECBB4EDC}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.NExtLib.Tests</RootNamespace> - <AssemblyName>Simple.NExtLib.Tests</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - <Reference Include="xunit, Version=1.9.1.1600, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\xunit.1.9.1\lib\net20\xunit.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="DateTimeExtensionsTests.cs" /> - <Compile Include="Linq\EnumerableExtensionTests.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="Properties\Resources.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>Resources.resx</DependentUpon> - </Compile> - <Compile Include="StringExtensionTests.cs" /> - <Compile Include="Xml\Linq\XElementExtensionsTests.cs" /> - <Compile Include="Xml\XmlElementAsDictionaryReadTests.cs" /> - <Compile Include="Xml\XmlElementAsDictionaryWriteTests.cs" /> - <Compile Include="Xml\XmlAttributesAsDictionaryReadTests.cs" /> - <Compile Include="Xml\XmlAttributesAsDictionaryWriteTests.cs" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Properties\Resources.resx"> - <Generator>ResXFileCodeGenerator</Generator> - <LastGenOutput>Resources.Designer.cs</LastGenOutput> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - <None Include="Resources\XmlWithDefaultNamespace.txt" /> - </ItemGroup> - <ItemGroup> - <None Include="Resources\XmlWithNoNamespace.txt" /> - </ItemGroup> - <ItemGroup> - <None Include="Resources\XmlWithPrefixedNamespace.txt" /> - </ItemGroup> - <ItemGroup> - <None Include="Resources\TwitterStatusesSample.txt" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Simple.NExtLib.TestUtils\Simple.NExtLib.TestUtils.csproj"> - <Project>{072F8BE4-81C1-4276-A9A5-1AEC87A84265}</Project> - <Name>Simple.NExtLib.TestUtils</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.NExtLib\Simple.NExtLib.csproj"> - <Project>{4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}</Project> - <Name>Simple.NExtLib</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.NExtLib.Tests/StringExtensionTests.cs b/Simple.NExtLib.Tests/StringExtensionTests.cs deleted file mode 100644 index 79fbf9760..000000000 --- a/Simple.NExtLib.Tests/StringExtensionTests.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Xunit; -using NExtLib; -using NExtLib.Unit; - -namespace Simple.NExtLib.Tests -{ - - public class StringExtensionTests - { - [Fact] - public void EnsureStartsWith_should_prefix_string() - { - var actual = "bar".EnsureStartsWith("foo"); - - actual.ShouldEqual("foobar"); - } - - [Fact] - public void EnsureStartsWith_should_not_prefix_string() - { - var actual = "foobar".EnsureStartsWith("foo"); - - actual.ShouldEqual("foobar"); - } - } -} diff --git a/Simple.NExtLib.Tests/Xml/Linq/XElementExtensionsTests.cs b/Simple.NExtLib.Tests/Xml/Linq/XElementExtensionsTests.cs deleted file mode 100644 index edcb44e69..000000000 --- a/Simple.NExtLib.Tests/Xml/Linq/XElementExtensionsTests.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Xunit; -using System.Xml.Linq; -using NExtLib.Unit; - -namespace Simple.NExtLib.Tests.Xml.Linq -{ - - public class XElementExtensionsTests - { - [Fact] - public void TestXElementWithDefaultNamespace() - { - var element = XElement.Parse(Properties.Resources.XmlWithDefaultNamespace); - var list = element.Elements(null, "child").ToList(); - list.Count.ShouldEqual(2); - list[0].Element(null, "sub").Value.ShouldEqual("Foo"); - list[1].Element(null, "sub").Value.ShouldEqual("Bar"); - } - - [Fact] - public void TestXElementWithNoNamespace() - { - var element = XElement.Parse(Properties.Resources.XmlWithNoNamespace); - var list = element.Elements(null, "child").ToList(); - list.Count.ShouldEqual(2); - list[0].Element(null, "sub").Value.ShouldEqual("Foo"); - list[1].Element(null, "sub").Value.ShouldEqual("Bar"); - } - - [Fact] - public void TestXElementWithPrefixedNamespace() - { - var element = XElement.Parse(Properties.Resources.XmlWithPrefixedNamespace); - var list = element.Elements("c", "child").ToList(); - list.Count.ShouldEqual(2); - list[0].Element("c", "sub").Value.ShouldEqual("Foo"); - list[1].Element("c", "sub").Value.ShouldEqual("Bar"); - } - } -} diff --git a/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryReadTests.cs b/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryReadTests.cs deleted file mode 100644 index 0fa9b45aa..000000000 --- a/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryReadTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NExtLib.Unit; -using Xunit; -using System.Xml.Linq; -using Simple.NExtLib.Xml; - -namespace Simple.NExtLib.Tests.Xml -{ - - public class XmlAttributesAsDictionaryReadTests - { - [Fact] - public void ReadWithNoNamespace() - { - var xml = new XmlElementAsDictionary(XElement.Parse(@"<foo bar=""quux""/>")); - xml.Attributes["bar"].ShouldEqual("quux"); - } - - [Fact] - public void ReadWithDefaultNamespace() - { - var xml = new XmlElementAsDictionary(XElement.Parse(@"<foo bar=""quux"" xmlns=""www.test.org""/>")); - xml.Attributes["bar"].ShouldEqual("quux"); - } - - [Fact] - public void ReadWithPrefixedNamespace() - { - var xml = new XmlElementAsDictionary(XElement.Parse(@"<foo xmlns:q=""www.test.org"" q:bar=""quux""/>")); - xml.Attributes["q:bar"].ShouldEqual("quux"); - } - } -} diff --git a/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryWriteTests.cs b/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryWriteTests.cs deleted file mode 100644 index 713c367ec..000000000 --- a/Simple.NExtLib.Tests/Xml/XmlAttributesAsDictionaryWriteTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NExtLib.Unit; -using Xunit; -using Simple.NExtLib.Xml; - -namespace Simple.NExtLib.Tests.Xml -{ - - public class XmlAttributesAsDictionaryWriteTests - { - [Fact] - public void PlainAttributeValueCheck() - { - var xml = new XmlElementAsDictionary("foo"); - xml.Attributes["bar"] = "quux"; - - xml.ToElement().Attribute("bar").Value.ShouldEqual("quux"); - } - - [Fact] - public void DefaultNamespaceAttributeValueCheck() - { - var xml = new XmlElementAsDictionary("foo", "www.test.org"); - xml.Attributes["bar"] = "quux"; - - xml.ToElement().Attribute(xml.ToElement().GetDefaultNamespace() + "bar").Value.ShouldEqual("quux"); - } - - [Fact] - public void PrefixedNamespaceAttributeValueCheck() - { - var xml = new XmlElementAsDictionary("foo"); - xml.AddPrefixedNamespace("q", "www.test.org"); - xml.Attributes["q:bar"] = "quux"; - - xml.ToElement().Attribute(xml.ToElement().GetNamespaceOfPrefix("q") + "bar").Value.ShouldEqual("quux"); - } - } -} diff --git a/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryReadTests.cs b/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryReadTests.cs deleted file mode 100644 index 17c81f319..000000000 --- a/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryReadTests.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NExtLib.Unit; -using Xunit; -using Simple.NExtLib.Tests.Properties; -using Simple.NExtLib.Xml; - -namespace Simple.NExtLib.Tests.Xml -{ - - public class XmlElementAsDictionaryReadTests - { - private static IEnumerable<XmlElementAsDictionary> ParseDescendantsUnderTest - { - get { return XmlElementAsDictionary.ParseDescendants(Resources.TwitterStatusesSample, "status"); } - } - - [Fact] - public void FirstDescendantIsTweetOne() - { - XmlElementAsDictionary actual = ParseDescendantsUnderTest.First(); - actual["text"].Value.ShouldEqual("Tweet one."); - } - - [Fact] - public void SecondDescendantIsTweetTwo() - { - XmlElementAsDictionary actual = ParseDescendantsUnderTest.Skip(1).First(); - actual["text"].Value.ShouldEqual("Tweet two."); - } - - [Fact] - public void ParseDescendantsReturnsTwoItems() - { - ParseDescendantsUnderTest.Count().ShouldEqual(2); - } - - [Fact] - public void UserNameReturnedCorrectly() - { - var one = ParseDescendantsUnderTest.First(); - - one["user"]["name"].Value.ShouldEqual("Doug Williams"); - } - } -} \ No newline at end of file diff --git a/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryWriteTests.cs b/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryWriteTests.cs deleted file mode 100644 index 169371fb4..000000000 --- a/Simple.NExtLib.Tests/Xml/XmlElementAsDictionaryWriteTests.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NExtLib.Unit; -using Xunit; -using System.Xml.Linq; -using System.Diagnostics; -using Simple.NExtLib.Xml; - -namespace Simple.NExtLib.Tests.Xml -{ - - public class XmlElementAsDictionaryWriteTests - { - [Fact] - public void StringConstructorShouldCreateEmptyElementWithNoNamespace() - { - var actual = new XmlElementAsDictionary("foo"); - - actual.ToElement().Name.LocalName.ShouldEqual("foo"); - actual.ToElement().Name.Namespace.ShouldEqual(XNamespace.None); - } - - [Fact] - public void TwoStringConstructorShouldCreateEmptyElementWithNamespace() - { - var actual = new XmlElementAsDictionary("foo", "www.test.org"); - - actual.ToElement().Name.LocalName.ShouldEqual("foo"); - actual.ToElement().Name.Namespace.NamespaceName.ShouldEqual("www.test.org"); - } - - [Fact] - public void TwoStringConstructorWithPrefixShouldCreateEmptyElementWithPrefixedNamespace() - { - var actual = new XmlElementAsDictionary("a:foo", "www.test.org"); - - actual.ToElement().Name.LocalName.ShouldEqual("foo"); - actual.ToElement().Name.Namespace.ShouldEqual(actual.ToElement().GetNamespaceOfPrefix("a")); - actual.Attributes["xmlns:a"].ShouldEqual("www.test.org"); - } - - [Fact] - public void UnsetAttributeShouldBeNull() - { - var actual = new XmlElementAsDictionary("foo"); - actual.Attributes["bar"].ShouldBeNull(); - } - - [Fact] - public void SetAttributeShouldBeSet() - { - var actual = new XmlElementAsDictionary("foo"); - actual.Attributes["bar"] = "Fnord"; - actual.Attributes["bar"].ShouldEqual("Fnord"); - } - - [Fact] - public void AttributeWithPrefixShouldHaveCorrectNamespace() - { - var actual = new XmlElementAsDictionary("foo"); - actual.AddPrefixedNamespace("x", "www.test.org"); - actual.Attributes["x:bar"] = "Fnord"; - - var xname = actual.ToElement().GetNamespaceOfPrefix("x") + "bar"; - XAttribute attr; - (attr = actual.ToElement().Attribute(xname)).ShouldNotBeNull(); - attr.Value.ShouldEqual("Fnord"); - } - - [Fact] - public void EmptyElementCreationWithClear() - { - var xml = new XmlElementAsDictionary("foo"); - xml["bar"].Clear(); - var actual = xml.ToElement(); - actual.ShouldNotBeNull(); - actual.Value.ShouldEqual(string.Empty); - } - - [Fact] - public void CountShouldGetReflectNumberOfElements() - { - var xml = new XmlElementAsDictionary("foo"); - xml["bar"].Clear(); - - xml.Count.ShouldEqual(1); - - xml.ToElement().Elements().Count().ShouldEqual(1); - } - } -} diff --git a/Simple.NExtLib.Tests/packages.config b/Simple.NExtLib.Tests/packages.config deleted file mode 100644 index ddb8e81db..000000000 --- a/Simple.NExtLib.Tests/packages.config +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="xunit" version="1.9.1" /> -</packages> \ No newline at end of file diff --git a/Simple.NExtLib/Async/AsyncException.cs b/Simple.NExtLib/Async/AsyncException.cs deleted file mode 100644 index c87b2c210..000000000 --- a/Simple.NExtLib/Async/AsyncException.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib.Async -{ - [Serializable] - public class AsyncException : Exception - { - public AsyncException() { } - public AsyncException(string message) : base(message) { } - public AsyncException(string message, Exception inner) : base(message, inner) { } - protected AsyncException( - System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) { } - } -} diff --git a/Simple.NExtLib/Async/Future.cs b/Simple.NExtLib/Async/Future.cs deleted file mode 100644 index b1843cb8e..000000000 --- a/Simple.NExtLib/Async/Future.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Simple.NExtLib.Async; - -namespace Simple.NExtLib.Async -{ - public static class Future - { - /// <summary> - /// Creates an instance of <see cref="Future`1"/>. - /// </summary> - /// <typeparam name="T">The type of value represented by the Future.</typeparam> - /// <param name="func">The <see cref="Func`1"/> delegate that will return the value.</param> - /// <returns>A new instance of <see cref="Future`1"/>.</returns> - /// <remarks>This method exists only to provide type-inference convenience.</remarks> - public static Future<T> Create<T>(Func<T> func) - { - return new Future<T>(func); - } - } -} diff --git a/Simple.NExtLib/Async/Future`1.cs b/Simple.NExtLib/Async/Future`1.cs deleted file mode 100644 index 769b8113c..000000000 --- a/Simple.NExtLib/Async/Future`1.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; - -namespace Simple.NExtLib.Async -{ - public class Future<T> - { - private readonly Action _action; - private readonly IAsyncResult _asyncResult; - private readonly object _lock = new object(); - private bool _ended; - private T _value; - private Exception _error; - - public Future(Func<T> func) - { - if (func == null) throw new ArgumentNullException("func"); - - _action = () => Run(func); - _asyncResult = _action.BeginInvoke(null, null); - } - - public T Value - { - get - { - JoinAction(); - - if (_error != null) throw new AsyncException(Properties.Resources.Async_AsyncExceptionMessage, _error); - return _value; - } - } - - private void Run(Func<T> func) - { - try - { - _value = func(); - } - catch (Exception ex) - { - if (ex is SystemException) throw; - - _error = ex; - _value = default(T); - } - } - - private void JoinAction() - { - if (!_ended) - { - lock (_lock) - { - if (!_ended) - { - _action.EndInvoke(_asyncResult); - _ended = true; - } - } - } - } - } -} diff --git a/Simple.NExtLib/DateTimeExtensions.cs b/Simple.NExtLib/DateTimeExtensions.cs deleted file mode 100644 index bce9108db..000000000 --- a/Simple.NExtLib/DateTimeExtensions.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib -{ - public static class DateTimeExtensions - { - /// <summary> - /// Formats the DateTime to the ISO 8601 standard, to maximum precision. - /// </summary> - /// <param name="dateTime">The date time.</param> - /// <returns>String formatted like "2008-10-01T15:25:05.2852025Z"</returns> - public static string ToIso8601String(this DateTime dateTime) - { - return dateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); - } - - /// <summary> - /// Formats the DateTimeOffset to the ISO 8601 standard, to maximum precision. - /// </summary> - /// <param name="dateTimeOffset">The date time offset.</param> - /// <returns>String formatted like "2008-10-01T15:25:05.2852025Z"</returns> - public static string ToIso8601String(this DateTimeOffset dateTimeOffset) - { - return dateTimeOffset.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); - } - - /// <summary> - /// Formats the TimeSpan to the ISO 8601 standard, to maximum precision. - /// </summary> - /// <param name="timeSpan">The timespan.</param> - /// <returns>String formatted like "2008-10-01T15:25:05.2852025Z"</returns> - public static string ToIso8601String(this TimeSpan timeSpan) - { - return timeSpan.ToString("HH:mm:ss.fffffffZ"); - } - } -} diff --git a/Simple.NExtLib/Func.cs b/Simple.NExtLib/Func.cs deleted file mode 100644 index bdd145a0e..000000000 --- a/Simple.NExtLib/Func.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib -{ - public static class Func - { - public static Func<TIn, TOut> NoOp<TIn, TOut>() - where TIn : TOut - { - return (x) => x; - } - } -} diff --git a/Simple.NExtLib/IO/QuickIO.cs b/Simple.NExtLib/IO/QuickIO.cs deleted file mode 100644 index 5938d9314..000000000 --- a/Simple.NExtLib/IO/QuickIO.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib.IO -{ - public static class QuickIO - { - public static string StreamToString(Stream stream) - { - string result; - - using (var reader = new StreamReader(stream)) - { - result = reader.ReadToEnd(); - } - - return result; - } - - public static Stream StringToStream(string str) - { - return new MemoryStream(Encoding.UTF8.GetBytes(str)); - } - } -} diff --git a/Simple.NExtLib/Linq/EnumerableExtensions.cs b/Simple.NExtLib/Linq/EnumerableExtensions.cs deleted file mode 100644 index 72b4ab5c7..000000000 --- a/Simple.NExtLib/Linq/EnumerableExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib.Linq -{ - public static class EnumerableExtensions - { - public static IEnumerable<Tuple<T, int>> WithIndex<T>(this IEnumerable<T> source) - { - int index = 0; - return source.Select(item => Tuple.Create(item, index++)); - } - - public static IEnumerable<T> OrIfEmpty<T>(this IEnumerable<T> source, IEnumerable<T> alternate) - { - return source.Any() ? source : alternate; - } - } -} diff --git a/Simple.NExtLib/Linq/EnumerableOfKeyValuePairExtensions.cs b/Simple.NExtLib/Linq/EnumerableOfKeyValuePairExtensions.cs deleted file mode 100644 index c60ad3996..000000000 --- a/Simple.NExtLib/Linq/EnumerableOfKeyValuePairExtensions.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace System.Linq -{ - public static class EnumerableOfKeyValuePairExtensions - { - public static Dictionary<TKey, TValue> ToDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source) - { - Dictionary<TKey, TValue> dictionary; - - if ((dictionary = source as Dictionary<TKey, TValue>) == null) - { - dictionary = source.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); - } - - return dictionary; - } - - public static IDictionary<TKey, TValue> ToIDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source) - { - Dictionary<TKey, TValue> dictionary; - - if ((dictionary = source as Dictionary<TKey, TValue>) == null) - { - dictionary = source.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); - } - - return dictionary; - } - } -} diff --git a/Simple.NExtLib/Linq/TupleEnumerableExtensions.cs b/Simple.NExtLib/Linq/TupleEnumerableExtensions.cs deleted file mode 100644 index 30369609a..000000000 --- a/Simple.NExtLib/Linq/TupleEnumerableExtensions.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib.Linq -{ - public static class TupleEnumerableExtensions - { - public static bool Any<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.Any(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static bool All<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.All(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static int Count<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.Count(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static long LongCount<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.LongCount(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> First<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.First(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> FirstOrDefault<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.FirstOrDefault(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> Last<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.Last(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> LastOrDefault<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.LastOrDefault(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static IEnumerable<TResult> Select<T1, T2, TResult>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, TResult> selector) - { - return source.Select(tuple => selector(tuple.Item1, tuple.Item2)); - } - - public static IEnumerable<TResult> SelectMany<T1, T2, TResult>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, IEnumerable<TResult>> selector) - { - return source.SelectMany(tuple => selector(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> Single<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.Single(tuple => predicate(tuple.Item1, tuple.Item2)); - } - - public static Tuple<T1, T2> SingleOrDefault<T1, T2>(this IEnumerable<Tuple<T1, T2>> source, - Func<T1, T2, bool> predicate) - { - return source.SingleOrDefault(tuple => predicate(tuple.Item1, tuple.Item2)); - } - } -} diff --git a/Simple.NExtLib/Properties/AssemblyInfo.cs b/Simple.NExtLib/Properties/AssemblyInfo.cs deleted file mode 100644 index 8ae67de11..000000000 --- a/Simple.NExtLib/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("NExtLib")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4ad3854e-d691-4546-9bf7-637fcbf035dc")] diff --git a/Simple.NExtLib/Properties/Resources.Designer.cs b/Simple.NExtLib/Properties/Resources.Designer.cs deleted file mode 100644 index 16e854709..000000000 --- a/Simple.NExtLib/Properties/Resources.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated by a tool. -// Runtime Version:4.0.30319.1 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </auto-generated> -//------------------------------------------------------------------------------ - -namespace Simple.NExtLib.Properties { - using System; - - - /// <summary> - /// A strongly-typed resource class, for looking up localized strings, etc. - /// </summary> - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// <summary> - /// Returns the cached ResourceManager instance used by this class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Simple.NExtLib.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// <summary> - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// <summary> - /// Looks up a localized string similar to An error occurred during execution.. - /// </summary> - internal static string Async_AsyncExceptionMessage { - get { - return ResourceManager.GetString("Async_AsyncExceptionMessage", resourceCulture); - } - } - } -} diff --git a/Simple.NExtLib/Properties/Resources.resx b/Simple.NExtLib/Properties/Resources.resx deleted file mode 100644 index 413141d86..000000000 --- a/Simple.NExtLib/Properties/Resources.resx +++ /dev/null @@ -1,123 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <data name="Async_AsyncExceptionMessage" xml:space="preserve"> - <value>An error occurred during execution.</value> - </data> -</root> \ No newline at end of file diff --git a/Simple.NExtLib/Simple.NExtLib.csproj b/Simple.NExtLib/Simple.NExtLib.csproj deleted file mode 100644 index c55a81693..000000000 --- a/Simple.NExtLib/Simple.NExtLib.csproj +++ /dev/null @@ -1,96 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.NExtLib</RootNamespace> - <AssemblyName>Simple.NExtLib</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Runtime.Serialization" /> - <Reference Include="System.ServiceModel" /> - <Reference Include="System.ServiceModel.Web" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="Async\AsyncException.cs" /> - <Compile Include="Async\Future.cs" /> - <Compile Include="Async\Future`1.cs" /> - <Compile Include="DateTimeExtensions.cs" /> - <Compile Include="Func.cs" /> - <Compile Include="IO\QuickIO.cs" /> - <Compile Include="Linq\EnumerableOfKeyValuePairExtensions.cs" /> - <Compile Include="Linq\EnumerableExtensions.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="Properties\Resources.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>Resources.resx</DependentUpon> - </Compile> - <Compile Include="StringExtensions.cs" /> - <Compile Include="Linq\TupleEnumerableExtensions.cs" /> - <Compile Include="TupleExtensions.cs" /> - <Compile Include="WebRequestExtensions.cs" /> - <Compile Include="WebResponseExtensions.cs" /> - <Compile Include="Xml\Linq\XAttributeExtensions.cs" /> - <Compile Include="Xml\Linq\XElementExtensions.cs" /> - <Compile Include="Xml\Syndication\SyndicationItemExtensions.cs" /> - <Compile Include="Xml\XElementAsDictionaryExtension.cs" /> - <Compile Include="Xml\XmlAttributesAsDictionary.cs" /> - <Compile Include="Xml\XmlElementAsDictionary.cs" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Properties\Resources.resx"> - <Generator>ResXFileCodeGenerator</Generator> - <LastGenOutput>Resources.Designer.cs</LastGenOutput> - <SubType>Designer</SubType> - </EmbeddedResource> - </ItemGroup> - <ItemGroup /> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.NExtLib/StringExtensions.cs b/Simple.NExtLib/StringExtensions.cs deleted file mode 100644 index 9bb1e1131..000000000 --- a/Simple.NExtLib/StringExtensions.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib -{ - public static class StringExtensions - { - public static string EnsureStartsWith(this string source, string value) - { - return (source == null || source.StartsWith(value)) ? source : value + source; - } - } -} diff --git a/Simple.NExtLib/TupleExtensions.cs b/Simple.NExtLib/TupleExtensions.cs deleted file mode 100644 index 5128a2167..000000000 --- a/Simple.NExtLib/TupleExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Simple.NExtLib -{ - public static class TupleExtensions - { - public static void Run<T1, T2>(this Tuple<T1, T2> tuple, Action<T1, T2> action) - { - action(tuple.Item1, tuple.Item2); - } - - public static void IfGood<T>(this Tuple<bool, T> tuple, Action<T> action) - { - if (tuple.Item1) - { - action(tuple.Item2); - } - } - } -} diff --git a/Simple.NExtLib/WebRequestExtensions.cs b/Simple.NExtLib/WebRequestExtensions.cs deleted file mode 100644 index 339685cc6..000000000 --- a/Simple.NExtLib/WebRequestExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; - -namespace Simple.NExtLib -{ - public static class WebRequestExtensions - { - public static void SetContent(this WebRequest request, string content) - { - using (var writer = new System.IO.StreamWriter(request.GetRequestStream())) - { - writer.Write(content); - } - } - } -} diff --git a/Simple.NExtLib/WebResponseExtensions.cs b/Simple.NExtLib/WebResponseExtensions.cs deleted file mode 100644 index 758d2dead..000000000 --- a/Simple.NExtLib/WebResponseExtensions.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Xml.Linq; -using System.IO; -using System.Xml; - -namespace Simple.NExtLib -{ - public static class WebResponseExtensions - { - public static XElement GetXmlContent(this WebResponse response) - { - XElement xml; - - using (var sr = new StreamReader(response.GetResponseStream())) - { - xml = XElement.Load(sr); - } - - return xml; - } - - public static XmlReader GetResponseReader(this WebResponse response) - { - return XmlReader.Create(response.GetResponseStream()); - } - } -} diff --git a/Simple.NExtLib/Xml/Linq/XAttributeExtensions.cs b/Simple.NExtLib/Xml/Linq/XAttributeExtensions.cs deleted file mode 100644 index 7b6af891c..000000000 --- a/Simple.NExtLib/Xml/Linq/XAttributeExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace System.Xml.Linq -{ - public static class XAttributeExtensions - { - /// <summary> - /// Returns the string value of the Attribute or <c>null</c> if the attribute is null. - /// Null-safe, eliminates need for null-checking. - /// </summary> - /// <param name="attribute">The attribute.</param> - /// <returns></returns> - public static string ValueOrDefault(this XAttribute attribute) - { - return attribute != null ? attribute.Value : null; - } - } -} diff --git a/Simple.NExtLib/Xml/Linq/XElementExtensions.cs b/Simple.NExtLib/Xml/Linq/XElementExtensions.cs deleted file mode 100644 index 972846e12..000000000 --- a/Simple.NExtLib/Xml/Linq/XElementExtensions.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace System.Xml.Linq -{ - /// <summary> - /// Extension methods for <see cref="XElement"/>. - /// </summary> - public static class XElementExtensions - { - public static XElement Element(this XElement element, string prefix, string name) - { - return Elements(element, prefix, name).FirstOrDefault(); - } - - public static IEnumerable<XElement> Elements(this XElement element, string prefix, string name) - { - if (string.IsNullOrEmpty(prefix)) - { - return element.Elements().Where( - x => x.Name.LocalName == name && element.GetPrefixOfNamespace(x.Name.Namespace) == null); - } - - return element.Elements(ResolvePrefix(element, prefix) + name); - } - - public static IEnumerable<XElement> Descendants(this XElement element, string prefix, string name) - { - var result = element.Descendants(ResolvePrefix(element, prefix) + name); - - if (result.Any()) return result; - - if (string.IsNullOrEmpty(prefix)) - { - return element.Descendants().Where( - x => x.Name.LocalName == name && element.GetPrefixOfNamespace(x.Name.Namespace) == null); - } - - return XElement.EmptySequence; - } - - public static XAttribute Attribute(this XElement element, string prefix, string name) - { - return element.Attribute(ResolvePrefix(element, prefix) + name); - } - - private static XNamespace ResolvePrefix(XElement element, string prefix) - { - return string.IsNullOrEmpty(prefix) ? element.GetDefaultNamespace() : element.GetNamespaceOfPrefix(prefix); - } - - public static string ValueOrDefault(this XElement element) - { - return element == null ? string.Empty : element.Value; - } - } -} diff --git a/Simple.NExtLib/Xml/Syndication/SyndicationItemExtensions.cs b/Simple.NExtLib/Xml/Syndication/SyndicationItemExtensions.cs deleted file mode 100644 index 4a818e51e..000000000 --- a/Simple.NExtLib/Xml/Syndication/SyndicationItemExtensions.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; -using System.ServiceModel.Syndication; - -namespace Simple.NExtLib.Xml.Syndication -{ - public static class SyndicationItemExtensions - { - public static XElement ContentAsXElement(this SyndicationItem item) - { - var content = item.Content as XmlSyndicationContent; - - if (content == null) return null; - - return XElement.ReadFrom(content.GetReaderAtContent()) as XElement; - } - - public static IEnumerable<XElement> ContentsAsXElements(this SyndicationFeed feed) - { - XElement content; - - foreach (var item in feed.Items) - { - if ((content = item.ContentAsXElement()) != null) - { - yield return content; - } - } - } - } -} diff --git a/Simple.NExtLib/Xml/XElementAsDictionaryExtension.cs b/Simple.NExtLib/Xml/XElementAsDictionaryExtension.cs deleted file mode 100644 index a6d7f7aba..000000000 --- a/Simple.NExtLib/Xml/XElementAsDictionaryExtension.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; - -namespace Simple.NExtLib.Xml -{ - public static class XElementAsDictionaryExtension - { - public static XmlElementAsDictionary AsDictionary(this XElement element) - { - return new XmlElementAsDictionary(element); - } - - public static XName ResolveName(this XElement element, string name) - { - if (name.Contains(':')) - { - var bits = name.Split(':'); - if (bits.Length != 2) throw new ArgumentException("name"); - - var ns = element.GetNamespaceOfPrefix(bits[0]); - if (ns == null) throw new ArgumentException("name"); - - return ns + bits[1]; - } - else if (element.GetDefaultNamespace() != null) - { - return element.GetDefaultNamespace() + name; - } - else - { - return name; - } - } - - public static string FormatName(this XElement element, XName name) - { - if (name.Namespace == null) return name.LocalName; - if (name.Namespace == element.GetDefaultNamespace()) return name.LocalName; - string prefix = element.GetPrefixOfNamespace(name.Namespace); - if (!string.IsNullOrEmpty(prefix)) return prefix + ":" + name.LocalName; - return name.ToString(); - } - } -} diff --git a/Simple.NExtLib/Xml/XmlAttributesAsDictionary.cs b/Simple.NExtLib/Xml/XmlAttributesAsDictionary.cs deleted file mode 100644 index 654c9300b..000000000 --- a/Simple.NExtLib/Xml/XmlAttributesAsDictionary.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; - -namespace Simple.NExtLib.Xml -{ - public class XmlAttributesAsDictionary - { - private readonly XElement _element; - - public XmlAttributesAsDictionary(XElement element) - { - _element = element; - } - - public string this[string name] - { - get - { - var attr = _element.Attribute(_element.ResolveName(name)) ?? _element.Attribute(name); - if (attr == null) return null; - return attr.Value; - } - - set - { - var xname = _element.ResolveName(name); - var attr = _element.Attribute(xname); - - if (attr == null) - { - _element.Add(new XAttribute(xname, value)); - } - else - { - attr.Value = value; - } - } - } - } -} diff --git a/Simple.NExtLib/Xml/XmlElementAsDictionary.cs b/Simple.NExtLib/Xml/XmlElementAsDictionary.cs deleted file mode 100644 index 1cc92e842..000000000 --- a/Simple.NExtLib/Xml/XmlElementAsDictionary.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; -using System.IO; -using Simple.NExtLib.IO; -using Simple.NExtLib.Linq; - -namespace Simple.NExtLib.Xml -{ - public class XmlElementAsDictionary - { - private readonly XElement _element; - - public XmlElementAsDictionary(string name) - { - _element = new XElement(name); - } - - public XmlElementAsDictionary(string name, string defaultNamespace) - { - _element = XElement.Parse(string.Format(@"<{0} xmlns{1}=""{2}""/>", name, GetPrefixPart(name), defaultNamespace)); - } - - public XmlElementAsDictionary(XElement element) - { - _element = element; - } - - public XmlElementAsDictionary this[string name] - { - get - { - var xname = _element.ResolveName(name); - - return new XmlElementAsDictionary(_element.Element(xname) ?? CreateElement(xname)); - } - } - - public IEnumerable<string> Keys - { - get { return _element.Elements().Select(element => _element.FormatName(element.Name)); } - } - - public string Value - { - get - { - return _element.Value; - } - set - { - _element.Value = value; - } - } - - public void Clear() - { - _element.RemoveAll(); - } - - public int Count - { - get { return _element.Elements().Count(); } - } - - private XElement CreateElement(XName name) - { - var element = new XElement(name); - _element.Add(element); - return element; - } - - public override string ToString() - { - return _element.ToString(); - } - - public void AddPrefixedNamespace(string prefix, string @namespace) - { - _element.Add(new XAttribute(XNamespace.Xmlns + prefix, @namespace)); - } - - public XmlAttributesAsDictionary Attributes - { - get { return new XmlAttributesAsDictionary(_element); } - } - - public XElement ToElement() - { - return new XElement(_element); - } - - public XDocument ToDocument() - { - return new XDocument(_element); - } - - public XDocument ToDocument(XDeclaration declaration) - { - return new XDocument(declaration, _element); - } - - public bool ContainsKey(string name) - { - return ContainsKey(_element.ResolveName(name)); - } - - private bool ContainsKey(XName name) - { - return _element.Elements(name).Any(); - } - - public bool Remove(string name) - { - return Remove(_element.ResolveName(name)); - } - - private bool Remove(XName name) - { - var elementToRemove = _element.Element(name); - - if (elementToRemove == null) return false; - - elementToRemove.Remove(); - - return true; - } - - private static string GetPrefixPart(string name) - { - if (name.Contains(':')) - { - var bits = name.Split(':'); - if (bits.Length != 2) throw new ArgumentException("name"); - return ":" + bits[0]; - } - - return ""; - } - - public static XmlElementAsDictionary Parse(string text) - { - if (text == null) throw new ArgumentNullException("text"); - - return new XmlElementAsDictionary(XElement.Parse(text)); - } - - public static XmlElementAsDictionary Parse(Stream stream) - { - if (stream == null) throw new ArgumentNullException("stream"); - - return Parse(QuickIO.StreamToString(stream)); - } - - public static IEnumerable<XmlElementAsDictionary> ParseDescendants(string text, string elementName) - { - var element = XElement.Parse(text); - var xname = element.ResolveName(elementName); - - return element.Descendants(xname) - .OrIfEmpty(element.Descendants(elementName)) - .Select(e => new XmlElementAsDictionary(e)); - } - } -} diff --git a/Simple.OData.Client.Tests/App.config b/Simple.OData.Client.Tests/App.config deleted file mode 100644 index cb905b0aa..000000000 --- a/Simple.OData.Client.Tests/App.config +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <connectionStrings> - <add name="NorthwindEntities" connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="Data Source=Northwind.sdf"" providerName="System.Data.EntityClient" /> - </connectionStrings> -</configuration> \ No newline at end of file diff --git a/Simple.OData.Client.Tests/FilterAsKeyTests.cs b/Simple.OData.Client.Tests/FilterAsKeyTests.cs deleted file mode 100644 index 4b7d33acd..000000000 --- a/Simple.OData.Client.Tests/FilterAsKeyTests.cs +++ /dev/null @@ -1,179 +0,0 @@ -using System; -using Xunit; - -namespace Simple.OData.Client.Tests -{ - public class FilterAsKeyTests : TestBase - { - [Fact] - public void FindAllByFilterAsKeyEqual() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(x.ProductID == 1); - string commandText = command.CommandText; - Assert.Equal("Products(1)", commandText); - } - - [Fact] - public void FindAllByFilterAsKeyNotEqual() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(x.ProductID != 1); - string commandText = command.CommandText; - Assert.Equal("Products?$filter=ProductID%20ne%201", commandText); - } - - [Fact] - public void FindAllByFilterAsNotKeyEqual() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(!(x.ProductID == 1)); - string commandText = command.CommandText; - Assert.Equal("Products?$filter=not(ProductID%20eq%201)", commandText); - } - - [Fact] - public void FindAllByFilterAsKeyEqualLong() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(x.ProductID == 1L); - string commandText = command.CommandText; - Assert.Equal("Products(1L)", commandText); - } - - [Fact] - public void FindAllByFilterAsKeyEqualAndExtraClause() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(x.ProductID == 1 && x.ProductName == "abc"); - string commandText = command.CommandText; - Assert.Equal("Products?$filter=ProductID%20eq%201%20and%20ProductName%20eq%20'abc'", commandText); - } - - [Fact] - public void FindAllByFilterAsKeyEqualDuplicateClause() - { - var x = ODataFilter.Expression; - var command = _client - .From("Products") - .Filter(x.ProductID == 1 && x.ProductID == 1); - string commandText = command.CommandText; - Assert.Equal("Products(1)", commandText); - } - - [Fact] - public void FindAllByFilterAsCompleteCompoundKey() - { - var x = ODataFilter.Expression; - var command = _client - .From("OrderDetails") - .Filter(x.OrderID == 1 && x.ProductID == 2); - string commandText = command.CommandText; - Assert.Equal("Order_Details(OrderID=1,ProductID=2)", commandText); - } - - [Fact] - public void FindAllByFilterAsInCompleteCompoundKey() - { - var x = ODataFilter.Expression; - var command = _client - .From("OrderDetails") - .Filter(x.OrderID == 1); - string commandText = command.CommandText; - Assert.Equal("Order_Details?$filter=OrderID%20eq%201", commandText); - } - - [Fact] - public void FindAllEmployeeSuperiors() - { - var x = ODataFilter.Expression; - var command = _client - .From("Employees") - .Filter(x.EmployeeID == 1) - .NavigateTo("Superior"); - string commandText = command.CommandText; - Assert.Equal("Employees(1)/Superior", commandText); - } - - [Fact] - public void FindAllCustomerOrders() - { - var x = ODataFilter.Expression; - var command = _client - .From("Customers") - .Filter(x.CustomerID == "ALFKI") - .NavigateTo("Orders"); - string commandText = command.CommandText; - Assert.Equal("Customers('ALFKI')/Orders", commandText); - } - - [Fact] - public void FindAllEmployeeSubordinates() - { - var x = ODataFilter.Expression; - var command = _client - .From("Employees") - .Filter(x.EmployeeID == 2) - .NavigateTo("Subordinates"); - string commandText = command.CommandText; - Assert.Equal("Employees(2)/Subordinates", commandText); - } - - [Fact] - public void FindAllOrderOrderDetails() - { - var x = ODataFilter.Expression; - var command = _client - .From("Orders") - .Filter(x.OrderID == 10952) - .NavigateTo("OrderDetails"); - string commandText = command.CommandText; - Assert.Equal("Orders(10952)/Order_Details", commandText); - } - - [Fact] - public void FindEmployeeSuperior() - { - var x = ODataFilter.Expression; - var command = _client - .From("Employees") - .Filter(x.EmployeeID == 1) - .NavigateTo("Superior"); - string commandText = command.CommandText; - Assert.Equal("Employees(1)/Superior", commandText); - } - - [Fact] - public void FindAllFromBaseTableByFilterAsKeyEqual() - { - var x = ODataFilter.Expression; - var command = _client - .From("Transport") - .Filter(x.TransportID == 1); - string commandText = command.CommandText; - Assert.Equal("Transport(1)", commandText); - } - - [Fact] - public void FindAllFromDerivedTableByFilterAsKeyEqual() - { - var x = ODataFilter.Expression; - var command = _client - .From("Transport") - .As("Ship") - .Filter(x.TransportID == 1); - string commandText = command.CommandText; - Assert.Equal("Transport/NorthwindModel.Ship(1)", commandText); - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client.Tests/FilterExpressionTests.cs b/Simple.OData.Client.Tests/FilterExpressionTests.cs deleted file mode 100644 index 5b18738b5..000000000 --- a/Simple.OData.Client.Tests/FilterExpressionTests.cs +++ /dev/null @@ -1,312 +0,0 @@ -using System; -using Xunit; - -namespace Simple.OData.Client.Tests -{ - public class FilterExpressionTests - { - [Fact] - public void And() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID == 1 && x.ProductName == "Chai"; - Assert.Equal("CategoryID eq 1 and ProductName eq 'Chai'", filter.ToString()); - } - - [Fact] - public void Or() - { - var x = ODataFilter.Expression; - var filter = x.ProductName == "Chai" || x.CategoryID == 1; - Assert.Equal("ProductName eq 'Chai' or CategoryID eq 1", filter.ToString()); - } - - [Fact] - public void Not() - { - var x = ODataFilter.Expression; - var filter = !(x.ProductName == "Chai"); - Assert.Equal("not(ProductName eq 'Chai')", filter.ToString()); - } - - [Fact] - public void Precedence() - { - var x = ODataFilter.Expression; - var filter = (x.CategoryID == 1 || x.CategoryID == 2) && x.ProductName == "Chai"; - Assert.Equal("(CategoryID eq 1 or CategoryID eq 2) and ProductName eq 'Chai'", filter.ToString()); - } - - [Fact] - public void EqualString() - { - var x = ODataFilter.Expression; - var filter = x.ProductName == "Chai"; - Assert.Equal("ProductName eq 'Chai'", filter.ToString()); - } - - [Fact] - public void EqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID == 1; - Assert.Equal("CategoryID eq 1", filter.ToString()); - } - - [Fact] - public void NotEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID != 1; - Assert.Equal("CategoryID ne 1", filter.ToString()); - } - - [Fact] - public void GreaterNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID > 1; - Assert.Equal("CategoryID gt 1", filter.ToString()); - } - - [Fact] - public void GreaterOrEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID >= 1.5; - Assert.Equal("CategoryID ge 1.5", filter.ToString()); - } - - [Fact] - public void LessNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID < 1; - Assert.Equal("CategoryID lt 1", filter.ToString()); - } - - [Fact] - public void LessOrEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID <= 1; - Assert.Equal("CategoryID le 1", filter.ToString()); - } - - [Fact] - public void AddEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID + 1 == 2; - Assert.Equal("CategoryID add 1 eq 2", filter.ToString()); - } - - [Fact] - public void SubEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID - 1 == 2; - Assert.Equal("CategoryID sub 1 eq 2", filter.ToString()); - } - - [Fact] - public void MulEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID * 1 == 2; - Assert.Equal("CategoryID mul 1 eq 2", filter.ToString()); - } - - [Fact] - public void DivEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID / 1 == 2; - Assert.Equal("CategoryID div 1 eq 2", filter.ToString()); - } - - [Fact] - public void ModEqualNumeric() - { - var x = ODataFilter.Expression; - var filter = x.CategoryID % 1 == 2; - Assert.Equal("CategoryID mod 1 eq 2", filter.ToString()); - } - - [Fact] - public void LengthOfStringEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Length() == 4; - Assert.Equal("length(ProductName) eq 4", filter.ToString()); - } - - [Fact] - public void StringToLowerEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.ToLower() == "chai"; - Assert.Equal("tolower(ProductName) eq 'chai'", filter.ToString()); - } - - [Fact] - public void StringToUpperEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.ToUpper() == "CHAI"; - Assert.Equal("toupper(ProductName) eq 'CHAI'", filter.ToString()); - } - - [Fact] - public void StringStartsWithEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.StartsWith("Ch") == true; - Assert.Equal("startswith(ProductName,'Ch') eq true", filter.ToString()); - } - - [Fact] - public void StringEndsWithEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.EndsWith("Ch") == true; - Assert.Equal("endswith(ProductName,'Ch') eq true", filter.ToString()); - } - - [Fact] - public void StringContainsEqualTrue() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Contains("ai") == true; - Assert.Equal("substringof('ai',ProductName) eq true", filter.ToString()); - } - - [Fact] - public void StringContainsEqualFalse() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Contains("ai") == false; - Assert.Equal("substringof('ai',ProductName) eq false", filter.ToString()); - } - - [Fact] - public void IndexOfStringEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.IndexOf("ai") == 1; - Assert.Equal("indexof(ProductName,'ai') eq 1", filter.ToString()); - } - - [Fact] - public void SubstringWithPositionEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Substring(1) == "hai"; - Assert.Equal("substring(ProductName,1) eq 'hai'", filter.ToString()); - } - - [Fact] - public void SubstringWithPositionAndLengthEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Substring(1,2) == "ha"; - Assert.Equal("substring(ProductName,1,2) eq 'ha'", filter.ToString()); - } - - [Fact] - public void ReplaceStringEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Replace("a","o") == "Choi"; - Assert.Equal("replace(ProductName,'a','o') eq 'Choi'", filter.ToString()); - } - - [Fact] - public void TrimEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Trim() == "Chai"; - Assert.Equal("trim(ProductName) eq 'Chai'", filter.ToString()); - } - - [Fact] - public void ConcatEqual() - { - var x = ODataFilter.Expression; - var filter = x.ProductName.Concat("Chai") == "ChaiChai"; - Assert.Equal("concat(ProductName,'Chai') eq 'ChaiChai'", filter.ToString()); - } - - [Fact] - public void DayEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Day == 1; - Assert.Equal("day(CreationTime) eq 1", filter.ToString()); - } - - [Fact] - public void MonthEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Month == 2; - Assert.Equal("month(CreationTime) eq 2", filter.ToString()); - } - - [Fact] - public void YearEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Year == 3; - Assert.Equal("year(CreationTime) eq 3", filter.ToString()); - } - - [Fact] - public void HourEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Hour == 4; - Assert.Equal("hour(CreationTime) eq 4", filter.ToString()); - } - - [Fact] - public void MinuteEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Minute == 5; - Assert.Equal("minute(CreationTime) eq 5", filter.ToString()); - } - - [Fact] - public void SecondEqual() - { - var x = ODataFilter.Expression; - var filter = x.CreationTime.Second == 6; - Assert.Equal("second(CreationTime) eq 6", filter.ToString()); - } - - [Fact] - public void RoundEqual() - { - var x = ODataFilter.Expression; - var filter = x.Price.Round() == 1; - Assert.Equal("round(Price) eq 1", filter.ToString()); - } - - [Fact] - public void FloorEqual() - { - var x = ODataFilter.Expression; - var filter = x.Price.Floor() == 1; - Assert.Equal("floor(Price) eq 1", filter.ToString()); - } - - [Fact] - public void CeilingEqual() - { - var x = ODataFilter.Expression; - var filter = x.Price.Ceiling() == 2; - Assert.Equal("ceiling(Price) eq 2", filter.ToString()); - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client.Tests/ODataClientTests.cs b/Simple.OData.Client.Tests/ODataClientTests.cs deleted file mode 100644 index f0f327f9d..000000000 --- a/Simple.OData.Client.Tests/ODataClientTests.cs +++ /dev/null @@ -1,286 +0,0 @@ -using System; -using System.Linq; -using Xunit; - -namespace Simple.OData.Client.Tests -{ - using Entry = System.Collections.Generic.Dictionary<string, object>; - - public class ODataClientTests : TestBase - { - [Fact] - public void FindEntries() - { - var products = _client.FindEntries("Products"); - Assert.True(products.Count() > 0); - } - - [Fact] - public void FindEntryExisting() - { - var product = _client.FindEntry("Products?$filter=ProductName eq 'Chai'"); - Assert.Equal("Chai", product["ProductName"]); - } - - [Fact] - public void FindEntryExistingExpressionFilter() - { - var x = ODataFilter.Expression; - string filter = _client.FormatFilter("Products", x.ProductName == "Chai"); - var product = _client.FindEntry(filter); - Assert.Equal("Chai", product["ProductName"]); - } - - [Fact] - public void FindEntryNonExisting() - { - var product = _client.FindEntry("Products?$filter=ProductName eq 'XYZ'"); - Assert.Null(product); - } - - [Fact] - public void GetEntryExisting() - { - var product = _client.GetEntry("Products", new Entry() { { "ProductID", 1 } }); - Assert.Equal("Chai", product["ProductName"]); - } - - [Fact] - public void GetEntryExistingCompoundKey() - { - var orderDetail = _client.GetEntry("OrderDetails", new Entry() { { "OrderID", 10248 }, { "ProductID", 11 } }); - Assert.Equal(11, orderDetail["ProductID"]); - } - - [Fact] - public void GetEntryNonExisting() - { - Assert.Throws<WebRequestException>(() => _client.GetEntry("Products", new Entry() { { "ProductID", -1 } })); - } - - [Fact] - public void FindBaseClassEntryExpressionFilter() - { - var x = ODataFilter.Expression; - string filter = _client.FormatFilter("Transport", x.TransportID == 1); - var ship = _client.FindEntry(filter); - Assert.Equal("Titanic", ship["ShipName"]); - } - - [Fact] - public void FindDerivedClassEntryExpressionFilter() - { - var x = ODataFilter.Expression; - string filter = _client.FormatFilter("Transport/Ships", x.ShipName == "Titanic"); - var ship = _client.FindEntry(filter); - Assert.Equal("Titanic", ship["ShipName"]); - } - - [Fact] - public void InsertEntryWithResult() - { - var product = _client.InsertEntry("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 18m } }, true); - - Assert.Equal("Test1", product["ProductName"]); - } - - [Fact] - public void InsertEntryNoResult() - { - var product = _client.InsertEntry("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 18m } }, false); - - Assert.Null(product); - } - - [Fact] - public void InsertEntrySubcollection() - { - var ship = _client.InsertEntry("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); - - Assert.Equal("Test1", ship["ShipName"]); - } - - [Fact] - public void UpdateEntry() - { - var key = new Entry() { { "ProductID", 1 } }; - _client.UpdateEntry("Products", key, new Entry() { { "ProductName", "Chai" }, { "UnitPrice", 123m } }); - - var product = _client.GetEntry("Products", key); - Assert.Equal(123m, product["UnitPrice"]); - } - - [Fact] - public void UpdateEntrySubcollection() - { - var ship = _client.InsertEntry("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); - var key = new Entry() { { "TransportID", ship["TransportID"] } }; - _client.UpdateEntry("Transport/Ships", key, new Entry() { { "ShipName", "Test2" } }); - - ship = _client.GetEntry("Transport", key); - Assert.Equal("Test2", ship["ShipName"]); - } - - [Fact] - public void UpdateEntrySubcollectionWithResourceType() - { - var clientSettings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - IncludeResourceTypeInEntryProperties = true, - }; - var client = new ODataClient(clientSettings); - var ship = client.InsertEntry("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); - var key = new Entry() { { "TransportID", ship["TransportID"] } }; - client.UpdateEntry("Transport/Ships", key, new Entry() { { "ShipName", "Test2" }, { ODataCommand.ResourceTypeLiteral, "Ships" } }); - - ship = client.GetEntry("Transport", key); - Assert.Equal("Test2", ship["ShipName"]); - } - - [Fact] - public void DeleteEntry() - { - var product = _client.InsertEntry("Products", new Entry() { { "ProductName", "Test3" }, { "UnitPrice", 18m } }, true); - product = _client.FindEntry("Products?$filter=ProductName eq 'Test3'"); - Assert.NotNull(product); - - _client.DeleteEntry("Products", product); - - product = _client.FindEntry("Products?$filter=ProductName eq 'Test3'"); - Assert.Null(product); - } - - [Fact] - public void DeleteEntrySubCollection() - { - var ship = _client.InsertEntry("Transport/Ships", new Entry() { { "ShipName", "Test3" } }, true); - ship = _client.FindEntry("Transport?$filter=TransportID eq " + ship["TransportID"]); - Assert.NotNull(ship); - - _client.DeleteEntry("Transport", ship); - - ship = _client.FindEntry("Transport?$filter=TransportID eq " + ship["TransportID"]); - Assert.Null(ship); - } - - [Fact] - public void DeleteEntrySubCollectionWithResourceType() - { - var clientSettings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - IncludeResourceTypeInEntryProperties = true, - }; - var client = new ODataClient(clientSettings); - var ship = client.InsertEntry("Transport/Ships", new Entry() { { "ShipName", "Test3" } }, true); - ship = client.FindEntry("Transport?$filter=TransportID eq " + ship["TransportID"]); - Assert.NotNull(ship); - - client.DeleteEntry("Transport", ship); - - ship = client.FindEntry("Transport?$filter=TransportID eq " + ship["TransportID"]); - Assert.Null(ship); - } - - [Fact] - public void LinkEntry() - { - var category = _client.InsertEntry("Categories", new Entry() { { "CategoryName", "Test4" } }, true); - var product = _client.InsertEntry("Products", new Entry() { { "ProductName", "Test5" } }, true); - - _client.LinkEntry("Products", product, "Category", category); - - product = _client.FindEntry("Products?$filter=ProductName eq 'Test5'"); - Assert.NotNull(product["CategoryID"]); - Assert.Equal(category["CategoryID"], product["CategoryID"]); - } - - [Fact] - public void UnlinkEntry() - { - var category = _client.InsertEntry("Categories", new Entry() { { "CategoryName", "Test6" } }, true); - var product = _client.InsertEntry("Products", new Entry() { { "ProductName", "Test7" }, { "CategoryID", category["CategoryID"] } }, true); - product = _client.FindEntry("Products?$filter=ProductName eq 'Test7'"); - Assert.NotNull(product["CategoryID"]); - Assert.Equal(category["CategoryID"], product["CategoryID"]); - - _client.UnlinkEntry("Products", product, "Category"); - - product = _client.FindEntry("Products?$filter=ProductName eq 'Test7'"); - Assert.Null(product["CategoryID"]); - } - - [Fact] - public void ExecuteScalarFunction() - { - var result = _client.ExecuteFunction("ParseInt", new Entry() { { "number", "1" } }); - Assert.Equal(1, result.First().First().First().Value); - } - - [Fact] - public void BatchWithSuccess() - { - using (var batch = new ODataBatch(_service.ServiceUri.AbsoluteUri)) - { - var client = new ODataClient(batch); - client.InsertEntry("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); - client.InsertEntry("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 20m } }, false); - batch.Complete(); - } - - var product = _client.FindEntry("Products?$filter=ProductName eq 'Test1'"); - Assert.NotNull(product); - product = _client.FindEntry("Products?$filter=ProductName eq 'Test2'"); - Assert.NotNull(product); - } - - [Fact] - public void BatchWithPartialFailures() - { - using (var batch = new ODataBatch(_service.ServiceUri.AbsoluteUri)) - { - var client = new ODataClient(batch); - client.InsertEntry("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); - client.InsertEntry("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 10m }, { "SupplierID", 0xFFFF } }, false); - Assert.Throws<WebRequestException>(() => batch.Complete()); - } - } - - [Fact] - public void BatchWithAllFailures() - { - using (var batch = new ODataBatch(_service.ServiceUri.AbsoluteUri)) - { - var client = new ODataClient(batch); - client.InsertEntry("Products", new Entry() { { "UnitPrice", 10m } }, false); - client.InsertEntry("Products", new Entry() { { "UnitPrice", 20m } }, false); - Assert.Throws<WebRequestException>(() => batch.Complete()); - } - } - - [Fact] - public void InterceptRequest() - { - var settings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - BeforeRequest = x => x.Method = "PUT", - }; - var client = new ODataClient(settings); - Assert.Throws<WebRequestException>(() => client.FindEntries("Products")); - } - - [Fact] - public void InterceptResponse() - { - var settings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - AfterResponse = x => { throw new InvalidOperationException(); }, - }; - var client = new ODataClient(settings); - Assert.Throws<InvalidOperationException>(() => client.FindEntries("Products")); - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client.Tests/ODataCommandTests.cs b/Simple.OData.Client.Tests/ODataCommandTests.cs deleted file mode 100644 index 4a50a7977..000000000 --- a/Simple.OData.Client.Tests/ODataCommandTests.cs +++ /dev/null @@ -1,332 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -using Entry = System.Collections.Generic.Dictionary<string, object>; - -namespace Simple.OData.Client.Tests -{ - public class ODataCommandTests : TestBase - { - [Fact] - public void Filter() - { - var products = _client - .From("Products") - .Filter("ProductName eq 'Chai'") - .FindEntries(); - Assert.Equal("Chai", products.Single()["ProductName"]); - } - - public void FilterExpression() - { - var x = ODataFilter.Expression; - var products = _client - .From("Products") - .Filter(x.ProductName == "Chai") - .FindEntries(); - Assert.Equal("Chai", products.Single()["ProductName"]); - } - - [Fact] - public void Get() - { - var category = _client - .From("Categories") - .Key(1) - .FindEntry(); - Assert.Equal(1, category["CategoryID"]); - } - - [Fact] - public void SkipOne() - { - var products = _client - .From("Products") - .Skip(1) - .FindEntries(); - Assert.Equal(76, products.Count()); - } - - [Fact] - public void TopOne() - { - var products = _client - .From("Products") - .Top(1) - .FindEntries(); - Assert.Equal(1, products.Count()); - } - - [Fact] - public void TopOneExpression() - { - var x = ODataFilter.Expression; - IEnumerable<dynamic> products = _client - .From("Products") - .Filter(x.ProductName == "Chai") - .Top(1) - .FindEntries(); - Assert.Equal(1, products.Count()); - } - - [Fact] - public void SkipOneTopOne() - { - var products = _client - .From("Products") - .Skip(1) - .Top(1) - .FindEntries(); - Assert.Equal(1, products.Count()); - } - - [Fact] - public void OrderBy() - { - var product = _client - .From("Products") - .OrderBy("ProductName") - .FindEntries().First(); - Assert.Equal("Alice Mutton", product["ProductName"]); - } - - [Fact] - public void OrderByDescending() - { - var product = _client - .From("Products") - .OrderByDescending("ProductName") - .FindEntries().First(); - Assert.Equal("Zaanse koeken", product["ProductName"]); - } - - [Fact] - public void SelectSingle() - { - var products = _client - .From("Products") - .Select("ProductName") - .FindEntries(); - Assert.Contains("ProductName", products.First().Keys); - Assert.DoesNotContain("ProductID", products.First().Keys); - } - - [Fact] - public void SelectSingleHomogenize() - { - var products = _client - .From("Products") - .Select("Product_Name") - .FindEntries(); - Assert.Contains("ProductName", products.First().Keys); - Assert.DoesNotContain("ProductID", products.First().Keys); - } - - [Fact] - public void SelectMultiple() - { - var products = _client - .From("Products") - .Select("ProductID", "ProductName") - .FindEntries(); - Assert.Contains("ProductName", products.First().Keys); - Assert.Contains("ProductID", products.First().Keys); - } - - [Fact] - public void Expand() - { - var product = _client - .From("Products") - .OrderBy("ProductID") - .Expand("Category") - .FindEntries().Last(); - Assert.Equal("Condiments", (product["Category"] as IDictionary<string, object>)["CategoryName"]); - } - - [Fact] - public void Count() - { - var count = _client - .From("Products") - .Count() - .FindScalar(); - Assert.Equal(77, int.Parse(count.ToString())); - } - - [Fact] - public void FilterCount() - { - var count = _client - .From("Products") - .Filter("ProductName eq 'Chai'") - .Count() - .FindScalar(); - Assert.Equal(1, int.Parse(count.ToString())); - } - - [Fact] - public void FilterExpressionCount() - { - var x = ODataFilter.Expression; - var count = _client - .From("Products") - .Filter(x.ProductName == "Chai") - .Count() - .FindScalar(); - Assert.Equal(1, int.Parse(count.ToString())); - } - - [Fact] - public void TotalCount() - { - int count; - var products = _client - .From("Products") - .FindEntries(true, out count); - Assert.Equal(77, count); - Assert.Equal(77, products.Count()); - } - - [Fact] - public void CombineAll() - { - var product = _client - .From("Products") - .OrderBy("ProductName") - .Skip(2) - .Top(1) - .Expand("Category") - .Select("Category") - .FindEntries().Single(); - Assert.Equal("Seafood", (product["Category"] as IDictionary<string, object>)["CategoryName"]); - } - - [Fact] - public void CombineAllReverse() - { - var product = _client - .From("Products") - .Select("Category") - .Expand("Category") - .Top(1) - .Skip(2) - .OrderBy("ProductName") - .FindEntries().Single(); - Assert.Equal("Seafood", (product["Category"] as IDictionary<string, object>)["CategoryName"]); - } - - [Fact] - public void NavigateToSingle() - { - var category = _client - .From("Products") - .Key(new Entry() { { "ProductID", 2 } }) - .NavigateTo("Category") - .FindEntry(); - Assert.Equal("Beverages", category["CategoryName"]); - } - - [Fact] - public void NavigateToMultiple() - { - var products = _client - .From("Categories") - .Key(2) - .NavigateTo("Products") - .FindEntries(); - Assert.Equal(12, products.Count()); - } - - [Fact] - public void NavigateToRecursive() - { - var employee = _client - .From("Employees") - .Key(14) - .NavigateTo("Superior") - .NavigateTo("Superior") - .NavigateTo("Subordinates") - .Key(3) - .FindEntry(); - Assert.Equal("Janet", employee["FirstName"]); - } - - [Fact] - public void FindBaseClassEntries() - { - var transport = _client - .From("Transport") - .FindEntries(); - Assert.Equal(2, transport.Count()); - Assert.False(transport.Any(x => x.ContainsKey(ODataCommand.ResourceTypeLiteral))); - } - - [Fact] - public void FindBaseClassEntriesWithResourceTypes() - { - var clientSettings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - IncludeResourceTypeInEntryProperties = true, - }; - var client = new ODataClient(clientSettings); - var transport = client - .From("Transport") - .FindEntries(); - Assert.Equal(2, transport.Count()); - Assert.True(transport.All(x => x.ContainsKey(ODataCommand.ResourceTypeLiteral))); - } - - [Fact] - public void FindAllDerivedClassEntries() - { - var transport = _client - .From("Transport") - .As("Ships") - .FindEntries(); - Assert.Equal("Titanic", transport.Single()["ShipName"]); - } - - [Fact] - public void FindAllDerivedClassEntriesWithResourceTypes() - { - var clientSettings = new ODataClientSettings - { - UrlBase = _service.ServiceUri.AbsoluteUri, - IncludeResourceTypeInEntryProperties = true, - }; - var client = new ODataClient(clientSettings); - var transport = client - .From("Transport") - .As("Ships") - .FindEntries(); - Assert.Equal("Titanic", transport.Single()["ShipName"]); - Assert.Equal("Ships", transport.Single()[ODataCommand.ResourceTypeLiteral]); - } - - [Fact] - public void FindDerivedClassEntry() - { - var transport = _client - .From("Transport") - .As("Ships") - .Filter("ShipName eq 'Titanic'") - .FindEntry(); - Assert.Equal("Titanic", transport["ShipName"]); - } - - [Fact] - public void FindDerivedClassEntryBaseAndDerivedFields() - { - var transport = _client - .From("Transport") - .As("Ships") - .Filter("TransportID eq 1 and ShipName eq 'Titanic'") - .FindEntry(); - Assert.Equal("Titanic", transport["ShipName"]); - } - } -} diff --git a/Simple.OData.Client.Tests/ODataFeedReaderTests.cs b/Simple.OData.Client.Tests/ODataFeedReaderTests.cs deleted file mode 100644 index 4bb7c48a8..000000000 --- a/Simple.OData.Client.Tests/ODataFeedReaderTests.cs +++ /dev/null @@ -1,212 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using Xunit; - -namespace Simple.OData.Client.Tests -{ - public class ODataFeedReaderTests - { - private ODataFeedReader _feedReader; - private const int productProperties = 10; - private const int categoryProperties = 4; - - public ODataFeedReaderTests() - { - _feedReader = new ODataFeedReader(); - } - - [Fact] - public void GetDataParsesSingleProduct() - { - string document = GetResourceAsString("SingleProduct.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties, result.First().Count); - } - - [Fact] - public void GetDataParsesMultipleProducts() - { - string document = GetResourceAsString("MultipleProducts.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(20, result.Count()); - Assert.Equal(productProperties, result.First().Count); - } - - [Fact] - public void GetDataParsesSingleProductWithCategory() - { - string document = GetResourceAsString("SingleProductWithCategory.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties + 1, result.First().Count); - Assert.Equal(categoryProperties, (result.First()["Category"] as IDictionary<string,object>).Count); - } - - [Fact] - public void GetDataParsesMultipleProductsWithCategory() - { - string document = GetResourceAsString("MultipleProductsWithCategory.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(20, result.Count()); - Assert.Equal(productProperties + 1, result.First().Count); - Assert.Equal(categoryProperties, (result.First()["Category"] as IDictionary<string, object>).Count); - } - - [Fact] - public void GetDataParsesSingleCategoryWithProducts() - { - string document = GetResourceAsString("SingleCategoryWithProducts.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(categoryProperties + 1, result.First().Count); - Assert.Equal(12, (result.First()["Products"] as IEnumerable<IDictionary<string, object>>).Count()); - Assert.Equal(productProperties, (result.First()["Products"] as IEnumerable<IDictionary<string, object>>).First().Count); - } - - [Fact] - public void GetDataParsesMultipleCategoriesWithProducts() - { - string document = GetResourceAsString("MultipleCategoriesWithProducts.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(8, result.Count()); - Assert.Equal(categoryProperties + 1, result.First().Count); - Assert.Equal(12, (result.First()["Products"] as IEnumerable<IDictionary<string, object>>).Count()); - Assert.Equal(productProperties, (result.First()["Products"] as IEnumerable<IDictionary<string, object>>).First().Count); - } - - [Fact] - public void GetDataParsesSingleProductWithComplexProperty() - { - string document = GetResourceAsString("SingleProductWithComplexProperty.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties + 1, result.First().Count); - var quantity = result.First()["Quantity"] as IDictionary<string, object>; - Assert.NotNull(quantity); - Assert.Equal(10d, quantity["Value"]); - Assert.Equal("bags", quantity["Units"]); - } - - [Fact] - public void GetDataParsesSingleProductWithCollectionOfPrimitiveProperties() - { - string document = GetResourceAsString("SingleProductWithCollectionOfPrimitiveProperties.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties + 2, result.First().Count); - var tags = result.First()["Tags"] as IList<dynamic>; - Assert.Equal(2, tags.Count); - Assert.Equal("Bakery", tags[0]); - Assert.Equal("Food", tags[1]); - var ids = result.First()["Ids"] as IList<dynamic>; - Assert.Equal(2, ids.Count); - Assert.Equal(1, ids[0]); - Assert.Equal(2, ids[1]); - } - - [Fact] - public void GetDataParsesSingleProductWithCollectionOfComplexProperties() - { - string document = GetResourceAsString("SingleProductWithCollectionOfComplexProperties.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties + 1, result.First().Count); - var tags = result.First()["Tags"] as IList<dynamic>; - Assert.Equal(2, tags.Count); - Assert.Equal("Food", tags[0]["group"]); - Assert.Equal("Bakery", tags[0]["value"]); - Assert.Equal("Food", tags[1]["group"]); - Assert.Equal("Meat", tags[1]["value"]); - } - - [Fact] - public void GetDataParsesSingleProductWithEmptyCollectionOfComplexProperties() - { - string document = GetResourceAsString("SingleProductWithEmptyCollectionOfComplexProperties.xml"); - var result = _feedReader.GetData(document); - Assert.Equal(1, result.Count()); - Assert.Equal(productProperties + 1, result.First().Count); - var tags = result.First()["Tags"] as IList<dynamic>; - Assert.Equal(0, tags.Count); - } - - [Fact] - public void GetColorsSchema() - { - ParseSchema("Colors"); - } - - [Fact] - public void GetFacebookSchema() - { - ParseSchema("Facebook"); - } - - [Fact] - public void GetFlickrSchema() - { - ParseSchema("Flickr"); - } - - [Fact] - public void GetGoogleMapsSchema() - { - ParseSchema("GoogleMaps"); - } - - [Fact] - public void GetiPhoneSchema() - { - ParseSchema("iPhone"); - } - - [Fact] - public void GetTwitterSchema() - { - ParseSchema("Twitter"); - } - - [Fact] - public void GetYouTubeSchema() - { - ParseSchema("YouTube"); - } - - [Fact] - public void GetNestedSchema() - { - ParseSchema("Nested"); - } - - [Fact] - public void GetArrayOfNestedSchema() - { - ParseSchema("ArrayOfNested"); - } - - private string GetResourceAsString(string resourceName) - { - var assembly = Assembly.GetExecutingAssembly(); - var resourceNames = assembly.GetManifestResourceNames(); - string completeResourceName = resourceNames.FirstOrDefault(o => o.EndsWith("." + resourceName, StringComparison.CurrentCultureIgnoreCase)); - using (Stream resourceStream = assembly.GetManifestResourceStream(completeResourceName)) - { - TextReader reader = new StreamReader(resourceStream); - return reader.ReadToEnd(); - } - } - - private void ParseSchema(string schemaName) - { - var document = GetResourceAsString(schemaName + ".edmx"); - var result = _feedReader.GetSchema(document); - Assert.Equal(1, result.EntityTypes.Count()); - Assert.Equal(schemaName, result.EntityTypes.First().Name); - } - } -} diff --git a/Simple.OData.Client.Tests/Properties/AssemblyInfo.cs b/Simple.OData.Client.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index a8f238694..000000000 --- a/Simple.OData.Client.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.OData.Client.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyCompany("Vagif Abilov")] -[assembly: AssemblyProduct("Simple.OData.Client")] -[assembly: AssemblyCopyright("Copyright © Vagif Abilov 2012-2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -#if(DEBUG) -[assembly: AssemblyConfiguration("Debug")] -#else -[assembly: AssemblyConfiguration("Release")] -#endif - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f3c4160f-7e74-4048-80b0-2f73c82332c8")] - -// 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/Simple.OData.Client.Tests/SchemaTests.cs b/Simple.OData.Client.Tests/SchemaTests.cs deleted file mode 100644 index c953e33fa..000000000 --- a/Simple.OData.Client.Tests/SchemaTests.cs +++ /dev/null @@ -1,171 +0,0 @@ -using System.Linq; -using Xunit; - -namespace Simple.OData.Client.Tests -{ - public class SchemaTests : TestBase - { - [Fact] - public void GetTablesCount() - { - var tables = _client.Schema.Tables; - - Assert.Equal(9, tables.Count()); - } - - [Fact] - public void FindTable() - { - var table = _client.Schema.FindTable("Customers"); - - Assert.NotNull(table); - } - - [Fact] - public void GetColumnsCount() - { - var columns = _client.Schema.FindTable("Employees").Columns; - - Assert.Equal(16, columns.Count()); - } - - [Fact] - public void FindColumn() - { - var column = _client.Schema.FindTable("Employees").FindColumn("first_name"); - - Assert.Equal("FirstName", column.ActualName); - } - - [Fact] - public void GetAssociationsCount() - { - var associations = _client.Schema.FindTable("Employees").Associations; - - Assert.Equal(3, associations.Count()); - } - - [Fact] - public void FindAssociation() - { - var association = _client.Schema.FindTable("Employees").FindAssociation("superior"); - - Assert.Equal("Employees", association.ReferenceTableName); - Assert.Equal("0..1", association.Multiplicity); - } - - [Fact] - public void GetCompoundPrimaryKey() - { - var table = _client.Schema.FindTable("OrderDetails"); - - Assert.Equal("OrderID", table.PrimaryKey[0]); - Assert.Equal("ProductID", table.PrimaryKey[1]); - } - - [Fact] - public void GetEntityTypesCount() - { - var entityTypes = _client.Schema.EntityTypes; - - Assert.Equal(11, entityTypes.Count()); - } - - [Fact] - public void GetComplexTypesCount() - { - var complexTypes = _client.Schema.ComplexTypes; - - Assert.Equal(0, complexTypes.Count()); - } - - [Fact] - public void GetSchemaAsString() - { - var schemaString = _client.SchemaAsString; - - Assert.Contains("Products", schemaString); - } - - [Fact] - public void ParseSchema() - { - var schemaString = _client.SchemaAsString; - var schema = ODataClient.ParseSchemaString(schemaString); - - var table = _client.Schema.FindTable("OrderDetails"); - Assert.NotNull(table); - } - - [Fact] - public void CheckODataOrgNorthwindSchema() - { - var client = new ODataClient("http://services.odata.org/Northwind/Northwind.svc/"); - - var table = client.Schema.FindTable("Product"); - Assert.Equal("ProductID", table.PrimaryKey[0]); - - var association = table.FindAssociation("Categories"); - Assert.Equal("Categories", association.ReferenceTableName); - Assert.Equal("0..1", association.Multiplicity); - - table = client.Schema.FindTable("Employees"); - association = table.FindAssociation("Employees"); - Assert.Equal("Employees", association.ReferenceTableName); - Assert.Equal("0..1", association.Multiplicity); - - Assert.Equal(26, client.Schema.EntityTypes.Count()); - Assert.Equal(0, client.Schema.ComplexTypes.Count()); - } - - [Fact] - public void CheckODataOrgODataSchema() - { - var client = new ODataClient("http://services.odata.org/OData/OData.svc/"); - - var table = client.Schema.FindTable("Product"); - Assert.Equal("ID", table.PrimaryKey[0]); - - var association = table.FindAssociation("Category_Products"); - Assert.Equal("Categories", association.ReferenceTableName); - Assert.Equal("0..1", association.Multiplicity); - - var function = client.Schema.FindFunction("GetProductsByRating"); - Assert.Equal(RestVerbs.GET, function.HttpMethod); - Assert.Equal("rating", function.Parameters[0]); - - Assert.Equal(3, client.Schema.EntityTypes.Count()); - Assert.Equal(1, client.Schema.ComplexTypes.Count()); - Assert.Equal(5, client.Schema.ComplexTypes.First().Properties.Count()); - } - - [Fact] - public void CheckPluralsightComSchema() - { - var client = new ODataClient("http://pluralsight.com/odata/"); - - var table = client.Schema.FindTable("Modules"); - Assert.Equal("Title", table.PrimaryKey[0]); - - Assert.NotNull(table.FindColumn("Author")); - Assert.NotNull(table.FindColumn("Description")); - - var association = table.FindAssociation("Course"); - Assert.Equal("Courses", association.ReferenceTableName); - Assert.Equal("*", association.Multiplicity); - - Assert.Equal(8, client.Schema.EntityTypes.Count()); - Assert.Equal(0, client.Schema.ComplexTypes.Count()); - } - - [Fact] - public void RetrieveSchemaFromUrlWithoutFilename() - { - var client = new ODataClient("http://vancouverdataservice.cloudapp.net/v1/impark"); - - var schema = client.Schema; - - Assert.NotEmpty(schema.Tables); - } - } -} diff --git a/Simple.OData.Client.Tests/Simple.OData.Client.Tests.csproj b/Simple.OData.Client.Tests/Simple.OData.Client.Tests.csproj deleted file mode 100644 index 426073f55..000000000 --- a/Simple.OData.Client.Tests/Simple.OData.Client.Tests.csproj +++ /dev/null @@ -1,168 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.OData.Client.Tests</RootNamespace> - <AssemblyName>Simple.OData.Client.Tests</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="Microsoft.Data.Edm, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Edm.5.2.0\lib\net40\Microsoft.Data.Edm.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.OData, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.OData.5.2.0\lib\net40\Microsoft.Data.OData.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.5.2.0\lib\net40\Microsoft.Data.Services.dll</HintPath> - </Reference> - <Reference Include="Microsoft.Data.Services.Client, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Microsoft.Data.Services.Client.5.2.0\lib\net40\Microsoft.Data.Services.Client.dll</HintPath> - </Reference> - <Reference Include="Simple.Data, Version=0.18.3.1, Culture=neutral, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Simple.Data.Core.0.18.3.1\lib\net40\Simple.Data.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Spatial, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\System.Spatial.5.2.0\lib\net40\System.Spatial.dll</HintPath> - </Reference> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - <Reference Include="xunit, Version=1.9.1.1600, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\xunit.1.9.1\lib\net20\xunit.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="FilterExpressionTests.cs" /> - <Compile Include="FilterAsKeyTests.cs" /> - <Compile Include="ODataClientTests.cs" /> - <Compile Include="ODataCommandTests.cs" /> - <Compile Include="ODataFeedReaderTests.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="SchemaTests.cs" /> - <Compile Include="TestBase.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="App.config"> - <SubType>Designer</SubType> - </None> - <None Include="packages.config" /> - <EmbeddedResource Include="Resources\Colors.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\Facebook.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\Flickr.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\GoogleMaps.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\iPhone.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\Twitter.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\YouTube.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\Nested.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\ArrayOfNested.edmx"> - <SubType>Designer</SubType> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\SingleProduct.xml" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\MultipleProducts.xml" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\MultipleCategoriesWithProducts.xml"> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="Resources\MultipleProductsWithCategory.xml" /> - <EmbeddedResource Include="Resources\SingleCategoryWithProducts.xml" /> - <EmbeddedResource Include="Resources\SingleProductWithCategory.xml" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\SingleProductWithComplexProperty.xml" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\SingleProductWithCollectionOfPrimitiveProperties.xml" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\SingleProductWithCollectionOfComplexProperties.xml"> - <SubType>Designer</SubType> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Simple.Data.OData.NorthwindModel\Simple.Data.OData.NorthwindModel.csproj"> - <Project>{2A909E4D-6493-4D36-9FDE-786B89F9A387}</Project> - <Name>Simple.Data.OData.NorthwindModel</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.OData.Client\Simple.OData.Client.csproj"> - <Project>{C20A3959-4895-41F8-86E2-7DED294FD904}</Project> - <Name>Simple.OData.Client</Name> - </ProjectReference> - <ProjectReference Include="..\Simple.OData.TestUtils\Simple.OData.TestUtils.csproj"> - <Project>{858775EA-ECF6-458E-AD96-CF67CF730395}</Project> - <Name>Simple.OData.TestUtils</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\SingleProductWithEmptyCollectionOfComplexProperties.xml" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.OData.Client.Tests/TestBase.cs b/Simple.OData.Client.Tests/TestBase.cs deleted file mode 100644 index a5addbf1c..000000000 --- a/Simple.OData.Client.Tests/TestBase.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Simple.Data.OData.NorthwindModel; -using Simple.OData.TestUtils; - -namespace Simple.OData.Client.Tests -{ - public class TestBase : IDisposable - { - protected TestService _service; - protected ODataClient _client; - - public TestBase() - { - _service = new TestService(typeof(NorthwindService)); - _client = CreateClientWithDefaultSettings(); - } - - public ODataClient CreateClientWithDefaultSettings() - { - return new ODataClient(_service.ServiceUri.AbsoluteUri); - } - - public void Dispose() - { - IEnumerable<dynamic> products = _client.FindEntries("Products"); - products.ToList().ForEach(x => - { - if (x["ProductName"].ToString().StartsWith("Test")) _client.DeleteEntry("Products", x); - }); - IEnumerable<dynamic> categories = _client.FindEntries("Categories"); - categories.ToList().ForEach(x => - { - if (x["CategoryName"].ToString().StartsWith("Test")) _client.DeleteEntry("Categories", x); - }); - IEnumerable<dynamic> transport = _client.FindEntries("Transport"); - transport.ToList().ForEach(x => - { - if (int.Parse(x["TransportID"].ToString()) > 2) _client.DeleteEntry("Transport", x); - }); - - if (_service != null) - { - _service.Dispose(); - _service = null; - } - } - } -} diff --git a/Simple.OData.Client.Tests/packages.config b/Simple.OData.Client.Tests/packages.config deleted file mode 100644 index 14387b4d7..000000000 --- a/Simple.OData.Client.Tests/packages.config +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Microsoft.Data.Edm" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.OData" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services" version="5.2.0" targetFramework="net40" /> - <package id="Microsoft.Data.Services.Client" version="5.2.0" targetFramework="net40" /> - <package id="Simple.Data.Core" version="0.18.3.1" targetFramework="net40" /> - <package id="System.Spatial" version="5.2.0" targetFramework="net40" /> - <package id="xunit" version="1.9.1" /> -</packages> \ No newline at end of file diff --git a/Simple.OData.Client.nuspec b/Simple.OData.Client.nuspec new file mode 100644 index 000000000..c6a3c50aa --- /dev/null +++ b/Simple.OData.Client.nuspec @@ -0,0 +1,73 @@ +<?xml version="1.0"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> + <id>Simple.OData.Client</id> + <authors>Vagif Abilov</authors> + <version>0.0.0.0</version> + <owners>Vagif Abilov</owners> + <icon>images/Simple.OData.Client_128x128.png</icon> + <description> + Simple.OData.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.Client contains libraries that can work with OData feeds that implement both V1-3 and V4 OData protocol. + Packages Simple.OData.V3.Client and Simple.OData.V4.Client have smaller footprints and target V1-3 and V4 respectively. + </description> + <summary> + Simple.OData.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.Client contains libraries that can work with OData feeds that implement both V1-3 and V4 OData protocol. + Packages Simple.OData.V3.Client and Simple.OData.V4.Client have smaller footprints and target V1-3 and V4 respectively. + </summary> + <projectUrl>https://github.com/object/Simple.OData.Client</projectUrl> + <license type="expression">MIT</license> + <copyright>Copyright 2012-2021 Vagif Abilov and contributors</copyright> + <language>en-us</language> + <tags>odata data rest client portable pcl netfx net40 net45 netstandard netcore mono android ios</tags> + <dependencies> + <group targetFramework="net461"> + <dependency id="Microsoft.Data.OData" version="[5.8.5,6)" /> + <dependency id="Microsoft.OData.Core" version="[7.9.4,8)" /> + <dependency id="System.Text.Json" version="[6.0.0,7)" /> + <dependency id="System.ValueTuple" version="[4.5.0,5)" /> + </group> + <group targetFramework="netstandard2.0"> + <dependency id="Microsoft.Data.OData" version="[5.8.5,6)" /> + <dependency id="Microsoft.OData.Core" version="[7.9.4,8)" /> + <dependency id="System.Text.Json" version="[6.0.0,7)" /> + </group> + </dependencies> + </metadata> + <files> + <file src="icons/Simple.OData.Client_128x128.png" target="images\" /> + <file src="icons/Simple.OData.Client_512x512.png" target="images\" /> + + <!-- NET45 --> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.dll" target="lib\net461\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.pdb" target="lib\net461\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.xml" target="lib\net461\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.dll" target="lib\net461\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.pdb" target="lib\net461\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.xml" target="lib\net461\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V3.Adapter\net461\Simple.OData.Client.V3.Adapter.dll" target="lib\net461\Simple.OData.Client.V3.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V3.Adapter\net461\Simple.OData.Client.V3.Adapter.pdb" target="lib\net461\Simple.OData.Client.V3.Adapter.pdb" /> + + <file src="build\Release\Simple.OData.Client.V4.Adapter\net461\Simple.OData.Client.V4.Adapter.dll" target="lib\net461\Simple.OData.Client.V4.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V4.Adapter\net461\Simple.OData.Client.V4.Adapter.pdb" target="lib\net461\Simple.OData.Client.V4.Adapter.pdb" /> + + + <!-- NETSTANDARD2.0 --> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.dll" target="lib\netstandard2.0\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.pdb" target="lib\netstandard2.0\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.xml" target="lib\netstandard2.0\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.dll" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.pdb" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.xml" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V3.Adapter\netstandard2.0\Simple.OData.Client.V3.Adapter.dll" target="lib\netstandard2.0\Simple.OData.Client.V3.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V3.Adapter\netstandard2.0\Simple.OData.Client.V3.Adapter.pdb" target="lib\netstandard2.0\Simple.OData.Client.V3.Adapter.pdb" /> + + <file src="build\Release\Simple.OData.Client.V4.Adapter\netstandard2.0\Simple.OData.Client.V4.Adapter.dll" target="lib\netstandard2.0\Simple.OData.Client.V4.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V4.Adapter\netstandard2.0\Simple.OData.Client.V4.Adapter.pdb" target="lib\netstandard2.0\Simple.OData.Client.V4.Adapter.pdb" /> + </files> +</package> diff --git a/Simple.OData.Client.sln b/Simple.OData.Client.sln new file mode 100644 index 000000000..5dd9154b0 --- /dev/null +++ b/Simple.OData.Client.sln @@ -0,0 +1,687 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D1D23CCD-C556-480A-8817-6FD58817A0C8}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + build.cmd = build.cmd + buildAndPack.cmd = buildAndPack.cmd + Directory.build.props = Directory.build.props + LICENSE = LICENSE + NugetPack.cmd = NugetPack.cmd + NugetPush.cmd = NugetPush.cmd + README.md = README.md + RELEASE_NOTES.md = RELEASE_NOTES.md + Simple.OData.Client.nuspec = Simple.OData.Client.nuspec + Simple.OData.V3.Client.nuspec = Simple.OData.V3.Client.nuspec + Simple.OData.V4.Client.nuspec = Simple.OData.V4.Client.nuspec + sn.snk = sn.snk + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.NorthwindModel", "src\Simple.OData.NorthwindModel\Simple.OData.NorthwindModel.csproj", "{2A909E4D-6493-4D36-9FDE-786B89F9A387}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.Core", "src\Simple.OData.Client.Core\Simple.OData.Client.Core.csproj", "{361868B8-A63E-4C74-AA87-B70E1AB22313}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.NorthwindService", "src\Simple.OData.NorthwindService\Simple.OData.NorthwindService.csproj", "{14436AD5-8995-406A-8468-F0B4DE53DFDB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.Dynamic", "src\Simple.OData.Client.Dynamic\Simple.OData.Client.Dynamic.csproj", "{C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.ProductService", "src\Simple.OData.ProductService\Simple.OData.ProductService.csproj", "{276DF698-6E22-4FF2-BAF1-09BCE205CCE5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.IntegrationTests", "src\Simple.OData.Client.IntegrationTests\Simple.OData.Client.IntegrationTests.csproj", "{812D678E-B428-41A1-BC05-8160695AD186}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.V3.Adapter", "src\Simple.OData.Client.V3.Adapter\Simple.OData.Client.V3.Adapter.csproj", "{A08B2D3D-91A6-4ECD-B7AF-5977E840E383}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.V4.Adapter", "src\Simple.OData.Client.V4.Adapter\Simple.OData.Client.V4.Adapter.csproj", "{31D1CC1D-316E-4516-A2BD-F07423B394F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApiOData.V4.Samples", "src\WebApiOData.V4.Samples\WebApiOData.V4.Samples.csproj", "{25EEBCD4-0604-4B5A-AAF5-8A788939A217}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApiOData.V4.Samples.Tests", "src\WebApiOData.V4.Samples.Tests\WebApiOData.V4.Samples.Tests.csproj", "{F01F7750-85F6-43D8-9C7B-34C75A3861E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApiOData.V3.Samples", "src\WebApiOData.V3.Samples\WebApiOData.V3.Samples.csproj", "{09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApiOData.V3.Samples.Tests", "src\WebApiOData.V3.Samples.Tests\WebApiOData.V3.Samples.Tests.csproj", "{57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ActionProviderImplementation", "src\ActionProviderImplementation\ActionProviderImplementation.csproj", "{6BE6677A-761E-4278-9059-233D775FE347}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.UnitTests", "src\Simple.OData.Client.UnitTests\Simple.OData.Client.UnitTests.csproj", "{10A14EE1-39A6-4AE2-9A30-3B5573317E2C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.Benchmarks", "src\Simple.OData.Client.Benchmarks\Simple.OData.Client.Benchmarks.csproj", "{6E44E884-4949-4330-98B8-A919F814123E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|ARM = Ad-Hoc|ARM + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Ad-Hoc|Mixed Platforms = Ad-Hoc|Mixed Platforms + Ad-Hoc|x64 = Ad-Hoc|x64 + Ad-Hoc|x86 = Ad-Hoc|x86 + AppStore|Any CPU = AppStore|Any CPU + AppStore|ARM = AppStore|ARM + AppStore|iPhone = AppStore|iPhone + AppStore|iPhoneSimulator = AppStore|iPhoneSimulator + AppStore|Mixed Platforms = AppStore|Mixed Platforms + AppStore|x64 = AppStore|x64 + AppStore|x86 = AppStore|x86 + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|Any CPU.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|ARM.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|x64.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.AppStore|x86.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|x64.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|x86.ActiveCfg = Debug|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Any CPU.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|ARM.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|iPhone.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|x64.ActiveCfg = Release|Any CPU + {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|x86.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|Any CPU.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|ARM.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|x64.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.AppStore|x86.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|Any CPU.Build.0 = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|ARM.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|x64.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Debug|x86.ActiveCfg = Debug|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|Any CPU.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|Any CPU.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|ARM.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|iPhone.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|x64.ActiveCfg = Release|Any CPU + {361868B8-A63E-4C74-AA87-B70E1AB22313}.Release|x86.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|Any CPU.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|ARM.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|x64.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.AppStore|x86.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|x64.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Debug|x86.ActiveCfg = Debug|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|Any CPU.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|ARM.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|iPhone.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|x64.ActiveCfg = Release|Any CPU + {14436AD5-8995-406A-8468-F0B4DE53DFDB}.Release|x86.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|Any CPU.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|ARM.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|x64.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.AppStore|x86.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|x64.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Debug|x86.ActiveCfg = Debug|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|Any CPU.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|ARM.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|iPhone.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|x64.ActiveCfg = Release|Any CPU + {C025FB0F-452B-4795-B9A4-64C9E6ABBEEE}.Release|x86.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|Any CPU.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|ARM.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|x64.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.AppStore|x86.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|x64.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Debug|x86.ActiveCfg = Debug|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|Any CPU.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|ARM.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|iPhone.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|x64.ActiveCfg = Release|Any CPU + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5}.Release|x86.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|Any CPU.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|ARM.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|x64.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.AppStore|x86.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|Any CPU.Build.0 = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|ARM.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|x64.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Debug|x86.ActiveCfg = Debug|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|Any CPU.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|Any CPU.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|ARM.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|iPhone.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|x64.ActiveCfg = Release|Any CPU + {812D678E-B428-41A1-BC05-8160695AD186}.Release|x86.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|Any CPU.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|ARM.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|x64.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.AppStore|x86.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|x64.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Debug|x86.ActiveCfg = Debug|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|Any CPU.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|ARM.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|iPhone.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|x64.ActiveCfg = Release|Any CPU + {A08B2D3D-91A6-4ECD-B7AF-5977E840E383}.Release|x86.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|Any CPU.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|ARM.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|x64.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.AppStore|x86.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Any CPU.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|ARM.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|iPhone.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|x64.ActiveCfg = Release|Any CPU + {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|x86.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|Any CPU.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|ARM.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|x64.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.AppStore|x86.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|ARM.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|x64.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|x86.ActiveCfg = Debug|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Any CPU.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|ARM.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|iPhone.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|x64.ActiveCfg = Release|Any CPU + {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|x86.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|Any CPU.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|ARM.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|x64.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.AppStore|x86.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|x64.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|x86.ActiveCfg = Debug|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Any CPU.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|ARM.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|iPhone.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|x64.ActiveCfg = Release|Any CPU + {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|x86.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|Any CPU.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|ARM.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|x64.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.AppStore|x86.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|x64.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Any CPU.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|ARM.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|iPhone.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|x64.ActiveCfg = Release|Any CPU + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|x86.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|Any CPU.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|ARM.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|x64.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.AppStore|x86.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|x64.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|x86.ActiveCfg = Debug|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|Any CPU.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|ARM.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|iPhone.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|x64.ActiveCfg = Release|Any CPU + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|x86.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|Any CPU.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|ARM.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|x64.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.AppStore|x86.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|x64.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Debug|x86.ActiveCfg = Debug|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|Any CPU.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|ARM.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|iPhone.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|x64.ActiveCfg = Release|Any CPU + {6BE6677A-761E-4278-9059-233D775FE347}.Release|x86.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|Mixed Platforms.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|Mixed Platforms.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|ARM.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|iPhone.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|Mixed Platforms.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|Mixed Platforms.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|x64.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|x64.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|x86.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.AppStore|x86.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|ARM.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|iPhone.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|x64.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Debug|x86.Build.0 = Debug|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|Any CPU.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|ARM.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|ARM.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|iPhone.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|iPhone.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|x64.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|x64.Build.0 = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|x86.ActiveCfg = Release|Any CPU + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C}.Release|x86.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|Mixed Platforms.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|ARM.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|iPhone.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|Mixed Platforms.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|x64.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|x64.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|x86.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.AppStore|x86.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|ARM.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|iPhone.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|x64.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|x64.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Debug|x86.Build.0 = Debug|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|Any CPU.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|ARM.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|ARM.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|iPhone.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|iPhone.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|x64.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|x64.Build.0 = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|x86.ActiveCfg = Release|Any CPU + {6E44E884-4949-4330-98B8-A919F814123E}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {2A909E4D-6493-4D36-9FDE-786B89F9A387} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {14436AD5-8995-406A-8468-F0B4DE53DFDB} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {276DF698-6E22-4FF2-BAF1-09BCE205CCE5} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {812D678E-B428-41A1-BC05-8160695AD186} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {25EEBCD4-0604-4B5A-AAF5-8A788939A217} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {F01F7750-85F6-43D8-9C7B-34C75A3861E7} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {6BE6677A-761E-4278-9059-233D775FE347} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {10A14EE1-39A6-4AE2-9A30-3B5573317E2C} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + {6E44E884-4949-4330-98B8-A919F814123E} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EB40442F-5889-4697-BEA4-39E42E12EBCB} + EndGlobalSection +EndGlobal diff --git a/Simple.OData.Client/BatchRequestBuilder.cs b/Simple.OData.Client/BatchRequestBuilder.cs deleted file mode 100644 index e39862de3..000000000 --- a/Simple.OData.Client/BatchRequestBuilder.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net; -using System.Text; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - class BatchRequestBuilder : RequestBuilder - { - private string _batchId; - private string _changesetId; - private int _contentId; - private StringBuilder _contentBuilder; - - public HttpWebRequest Request { get; private set; } - - public BatchRequestBuilder(string urlBase, ICredentials credentials = null) - : base(urlBase, credentials) - { - } - - public void BeginBatch() - { - var uri = CreateRequestUrl(ODataCommand.BatchLiteral); - this.Request = CreateWebRequest(uri); - this.Request.Method = RestVerbs.POST; - _batchId = Guid.NewGuid().ToString(); - this.Request.ContentType = string.Format("multipart/mixed; boundary=batch_{0}", _batchId); - - _contentBuilder = new StringBuilder(); - _contentBuilder.AppendLine(); - _contentBuilder.AppendLine(string.Format("--batch_{0}", _batchId)); - - _changesetId = Guid.NewGuid().ToString(); - _contentBuilder.AppendLine(string.Format("Content-Type: multipart/mixed; boundary=changeset_{0}", _changesetId)); - _contentBuilder.AppendLine(); - } - - public void EndBatch() - { - _contentBuilder.AppendLine(string.Format("--changeset_{0}--", _changesetId)); - _contentBuilder.AppendLine(string.Format("--batch_{0}--", _batchId)); - var content = this._contentBuilder.ToString(); - this.Request.ContentLength = content.Length; - this.Request.SetContent(content); - _contentBuilder.Clear(); - } - - public void CancelBatch() - { - _contentBuilder.Clear(); - } - - public override void AddCommandToRequest(HttpCommand command) - { - _contentBuilder.AppendLine(string.Format("--changeset_{0}", _changesetId)); - _contentBuilder.AppendLine("Content-Type: application/http"); - _contentBuilder.AppendLine("Content-Transfer-Encoding:binary"); - _contentBuilder.AppendLine(); - - _contentBuilder.AppendLine(string.Format("{0} {1} HTTP/{2}", command.Method, command.IsLink ? command.CommandText : CreateRequestUrl(command.CommandText), "1.1")); - - if (command.FormattedContent != null) - { - _contentBuilder.AppendLine(string.Format("Content-ID: {0}", ++_contentId)); - _contentBuilder.AppendLine(string.Format("Content-Type: {0}", command.ContentType)); - _contentBuilder.AppendLine(string.Format("Content-Length: {0}", (command.FormattedContent ?? string.Empty).Length)); - _contentBuilder.AppendLine(); - _contentBuilder.Append(command.FormattedContent); - } - - _contentBuilder.AppendLine(); - - command.Request = this.Request; - command.ContentId = _contentId; - - if (command.OriginalContent != null) - { - command.OriginalContent.Add("$Batch-ID", _batchId); - command.OriginalContent.Add("$Content-ID", command.ContentId); - } - } - - public override int GetContentId(object content) - { - var properties = content as IDictionary<string, object>; - if (properties != null) - { - object val; - if (properties.TryGetValue("$Batch-ID", out val) && val.ToString() == _batchId) - { - return properties.TryGetValue("$Content-ID", out val) ? int.Parse(val.ToString()) : 0; - } - } - return 0; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/BatchRequestRunner.cs b/Simple.OData.Client/BatchRequestRunner.cs deleted file mode 100644 index 9a7b62040..000000000 --- a/Simple.OData.Client/BatchRequestRunner.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - class BatchRequestRunner : RequestRunner - { - private RequestBuilder _requestBuilder; - - public BatchRequestRunner(RequestBuilder requestBuilder) - { - _requestBuilder = requestBuilder; - } - - public override IEnumerable<IDictionary<string, object>> FindEntries(HttpCommand command, bool scalarResult, bool setTotalCount, out int totalCount) - { - totalCount = 0; - return null; - } - - public override IDictionary<string, object> GetEntry(HttpCommand command) - { - return null; - } - - public override IDictionary<string, object> InsertEntry(HttpCommand command, bool resultRequired) - { - return command.OriginalContent; - } - - public override int UpdateEntry(HttpCommand command) - { - return 0; - } - - public override int DeleteEntry(HttpCommand command) - { - return 0; - } - - public override IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(HttpCommand command) - { - return null; - } - } -} diff --git a/Simple.OData.Client/CommandRequestBuilder.cs b/Simple.OData.Client/CommandRequestBuilder.cs deleted file mode 100644 index beecc23ff..000000000 --- a/Simple.OData.Client/CommandRequestBuilder.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Net; -using System.Text; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - class CommandRequestBuilder : RequestBuilder - { - public CommandRequestBuilder(string urlBase, ICredentials credentials) - : base(urlBase, credentials) - { - } - - public override void AddCommandToRequest(HttpCommand command) - { - var uri = CreateRequestUrl(command.CommandText); - var request = CreateWebRequest(uri); - request.Method = command.Method; - request.ContentLength = (command.FormattedContent ?? string.Empty).Length; - - // TODO: revise - //if (method == "PUT" || method == "DELETE" || method == "MERGE") - //{ - // request.Headers.Add("If-Match", "*"); - //} - - if (command.FormattedContent != null) - { - request.ContentType = command.ContentType; - request.SetContent(command.FormattedContent); - } - - command.Request = request; - } - - public override int GetContentId(object content) - { - return 0; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/CommandRequestRunner.cs b/Simple.OData.Client/CommandRequestRunner.cs deleted file mode 100644 index 951f2f870..000000000 --- a/Simple.OData.Client/CommandRequestRunner.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Net; - -namespace Simple.OData.Client -{ - class CommandRequestRunner : RequestRunner - { - private ODataFeedReader _feedReader; - - public CommandRequestRunner(bool includeResourceTypeInEntryProperties = false) - { - _feedReader = new ODataFeedReader(includeResourceTypeInEntryProperties); - } - - public override IEnumerable<IDictionary<string, object>> FindEntries(HttpCommand command, bool scalarResult, bool setTotalCount, out int totalCount) - { - using (var response = TryRequest(command.Request)) - { - totalCount = 0; - IEnumerable<IDictionary<string, object>> result = null; - if (response.StatusCode != HttpStatusCode.OK) - { - result = Enumerable.Empty<IDictionary<string, object>>(); - } - else - { - var stream = response.GetResponseStream(); - if (setTotalCount) - result = _feedReader.GetData(stream, out totalCount); - else - result = _feedReader.GetData(response.GetResponseStream(), scalarResult); - } - - return result; - } - } - - public override IDictionary<string, object> GetEntry(HttpCommand command) - { - var text = Request(command.Request); - return _feedReader.GetData(text).First(); - } - - public override IDictionary<string, object> InsertEntry(HttpCommand command, bool resultRequired) - { - var text = Request(command.Request); - if (resultRequired) - { - return _feedReader.GetData(text).First(); - } - else - { - return null; - } - } - - public override int UpdateEntry(HttpCommand command) - { - using (var response = TryRequest(command.Request)) - { - // TODO - return response.StatusCode == HttpStatusCode.OK ? 1 : 0; - } - } - - public override int DeleteEntry(HttpCommand command) - { - using (var response = TryRequest(command.Request)) - { - // TODO: check response code - return response.StatusCode == HttpStatusCode.OK ? 1 : 0; - } - } - - public override IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(HttpCommand command) - { - using (var response = TryRequest(command.Request)) - { - IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> result = null; - if (response.StatusCode != HttpStatusCode.OK) - { - result = Enumerable.Empty<IEnumerable<IDictionary<string, object>>>(); - } - else - { - result = new[] { _feedReader.GetFunctionResult(response.GetResponseStream()) }; - } - - return result; - } - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/Edm/EdmPropertyType.cs b/Simple.OData.Client/Edm/EdmPropertyType.cs deleted file mode 100644 index b121a7c46..000000000 --- a/Simple.OData.Client/Edm/EdmPropertyType.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - public abstract class EdmPropertyType - { - public abstract string Name { get; } - public override string ToString() - { - return this.Name; - } - - public static EdmPropertyType Parse(string s, IEnumerable<EdmComplexType> complexTypes, IEnumerable<EdmEntityType> entityTypes) - { - var result1 = TryParseCollectionType(s, complexTypes, entityTypes); - if (result1.Item1) - { - return result1.Item2; - } - - var result2 = TryParsePrimitiveType(s); - if (result2.Item1) - { - return result2.Item2; - } - - var result3 = TryParseComplexType(s, complexTypes); - if (result3.Item1) - { - return result3.Item2; - } - - var result4 = TryParseEntityType(s, entityTypes); - if (result4.Item1) - { - return result4.Item2; - } - - throw new ArgumentException(string.Format("Unrecognized type {0}", s)); - } - - private static Tuple<bool, EdmCollectionPropertyType> TryParseCollectionType(string s, IEnumerable<EdmComplexType> complexTypes, IEnumerable<EdmEntityType> entityTypes) - { - if (s.StartsWith("Collection(") && s.EndsWith(")")) - { - int start = s.IndexOf("("); - int end = s.LastIndexOf(")"); - var baseType = EdmPropertyType.Parse(s.Substring(start + 1, end - start - 1), complexTypes, entityTypes); - return new Tuple<bool, EdmCollectionPropertyType>(true, new EdmCollectionPropertyType() { BaseType = baseType }); - } - else - { - return new Tuple<bool, EdmCollectionPropertyType>(false, null); - } - } - - private static Tuple<bool, EdmPrimitivePropertyType> TryParsePrimitiveType(string s) - { - var result = EdmType.TryParse(s); - if (result.Item1) - { - return new Tuple<bool, EdmPrimitivePropertyType>(true, new EdmPrimitivePropertyType { Type = result.Item2 }); - } - else - { - return new Tuple<bool, EdmPrimitivePropertyType>(false, null); - } - } - - private static Tuple<bool, EdmComplexPropertyType> TryParseComplexType(string s, IEnumerable<EdmComplexType> complexTypes) - { - var result = EdmComplexType.TryParse(s, complexTypes); - if (!result.Item1) - result = EdmComplexType.TryParse(s.Split('.').Last(), complexTypes); - if (result.Item1) - { - return new Tuple<bool, EdmComplexPropertyType>(true, new EdmComplexPropertyType { Type = result.Item2 }); - } - else - { - return new Tuple<bool, EdmComplexPropertyType>(false, null); - } - } - - private static Tuple<bool, EdmEntityPropertyType> TryParseEntityType(string s, IEnumerable<EdmEntityType> entityTypes) - { - var result = EdmEntityType.TryParse(s, entityTypes); - if (!result.Item1) - result = EdmEntityType.TryParse(s.Split('.').Last(), entityTypes); - if (result.Item1) - { - return new Tuple<bool, EdmEntityPropertyType>(true, new EdmEntityPropertyType { Type = result.Item2 }); - } - else - { - return new Tuple<bool, EdmEntityPropertyType>(false, null); - } - } - } - - public class EdmPrimitivePropertyType : EdmPropertyType - { - public EdmType Type { get; set; } - public override string Name { get { return Type == null ? null : Type.Name; } } - } - - public class EdmComplexPropertyType : EdmPropertyType - { - public EdmComplexType Type { get; set; } - public override string Name { get { return Type == null ? null : Type.Name; } } - } - - public class EdmEntityPropertyType : EdmPropertyType - { - public EdmEntityType Type { get; set; } - public override string Name { get { return Type == null ? null : Type.Name; } } - } - - public class EdmCollectionPropertyType : EdmPropertyType - { - public EdmPropertyType BaseType { get; set; } - public override string Name { get { return BaseType == null ? null : string.Format("Collection({0})", BaseType.Name); } } - } -} diff --git a/Simple.OData.Client/Edm/EdmSchema.cs b/Simple.OData.Client/Edm/EdmSchema.cs deleted file mode 100644 index 4b738d575..000000000 --- a/Simple.OData.Client/Edm/EdmSchema.cs +++ /dev/null @@ -1,142 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - public sealed class EdmSchema - { - public string TypesNamespace { get; set; } - public string ContainersNamespace { get; set; } - public EdmEntityType[] EntityTypes { get; private set; } - public EdmComplexType[] ComplexTypes { get; private set; } - public EdmAssociation[] Associations { get; private set; } - public EdmEntityContainer[] EntityContainers { get; private set; } - - public EdmSchema( - string typesNamespace, - string containersNamespace, - IEnumerable<EdmEntityType> entityTypes, - IEnumerable<EdmComplexType> complexTypes, - IEnumerable<EdmAssociation> associations, - IEnumerable<EdmEntityContainer> entityContainers) - { - this.TypesNamespace = typesNamespace; - this.ContainersNamespace = containersNamespace; - this.EntityTypes = entityTypes.ToArray(); - this.ComplexTypes = complexTypes.ToArray(); - this.Associations = associations.ToArray(); - this.EntityContainers = entityContainers.ToArray(); - } - } - - public sealed class EdmEntitySet - { - public string Name { get; set; } - public string EntityType { get; set; } - } - - public sealed class EdmAssociationSet - { - public string Name { get; set; } - public string Association { get; set; } - public EdmAssociationSetEnd[] End { get; set; } - } - - public sealed class EdmEntityType - { - public string Name { get; set; } - public EdmEntityType BaseType { get; set; } - public bool Abstract { get; set; } - public bool OpenType { get; set; } - public EdmProperty[] Properties { get; set; } - public EdmKey Key { get; set; } - - public static Tuple<bool, EdmEntityType> TryParse(string s, IEnumerable<EdmEntityType> entityTypes) - { - var edmEntityType = entityTypes.SingleOrDefault(x => x.Name == s); - return Tuple.Create(edmEntityType != null, edmEntityType); - } - } - - public sealed class EdmComplexType - { - public string Name { get; set; } - public EdmProperty[] Properties { get; set; } - - public static Tuple<bool, EdmComplexType> TryParse(string s, IEnumerable<EdmComplexType> complexTypes) - { - var edmComplexType = complexTypes.SingleOrDefault(x => x.Name == s); - return Tuple.Create(edmComplexType != null, edmComplexType); - } - } - - public sealed class EdmAssociation - { - public string Name { get; set; } - public EdmAssociationEnd[] End { get; set; } - public EdmReferentialConstraint ReferentialConstraint { get; set; } - } - - public sealed class EdmEntityContainer - { - public string Name { get; set; } - public bool IsDefaulEntityContainer { get; set; } - public EdmEntitySet[] EntitySets { get; set; } - public EdmAssociationSet[] AssociationSets { get; set; } - public EdmFunctionImport[] FunctionImports { get; set; } - } - - public sealed class EdmProperty - { - public string Name { get; set; } - public EdmPropertyType Type { get; set; } - public bool Nullable { get; set; } - } - - public sealed class EdmKey - { - public string[] Properties { get; set; } - } - - public sealed class EdmAssociationEnd - { - public string Role { get; set; } - public string Type { get; set; } - public string Multiplicity { get; set; } - } - - public sealed class EdmReferentialConstraint - { - public EdmReferentialConstraintEnd Principal { get; set; } - public EdmReferentialConstraintEnd Dependent { get; set; } - } - - public sealed class EdmReferentialConstraintEnd - { - public string Role { get; set; } - public string[] Properties { get; set; } - } - - public sealed class EdmAssociationSetEnd - { - public string Role { get; set; } - public string EntitySet { get; set; } - } - - public sealed class EdmFunctionImport - { - public string Name { get; set; } - public string HttpMethod { get; set; } - public string EntitySet { get; set; } - public EdmPropertyType ReturnType { get; set; } - public EdmParameter[] Parameters { get; set; } - } - - public sealed class EdmParameter - { - public string Name { get; set; } - public EdmPropertyType Type { get; set; } - public string Mode { get; set; } - } -} diff --git a/Simple.OData.Client/Edm/EdmSchemaParser.cs b/Simple.OData.Client/Edm/EdmSchemaParser.cs deleted file mode 100644 index 579ae14bf..000000000 --- a/Simple.OData.Client/Edm/EdmSchemaParser.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml.Linq; - -namespace Simple.OData.Client -{ - static class EdmSchemaParser - { - public static EdmSchema ParseSchema(XElement element) - { - var schemaRoot = element.Descendants(null, "Schema"); - - var typesNamespace = schemaRoot - .Where(x => x.Descendants(null, "EntityType").Any()).FirstOrDefault().Attribute("Namespace").Value; - var containersNamespace = schemaRoot - .Where(x => x.Descendants(null, "EntityContainer").Any()).FirstOrDefault().Attribute("Namespace").Value; - - var complexTypes = ParseComplexTypes(schemaRoot.SelectMany(x => x.Descendants(null, "ComplexType")), typesNamespace); - var ccc = complexTypes.ToList(); - var entityTypes = ParseEntityTypes(schemaRoot.SelectMany(x => x.Descendants(null, "EntityType")), complexTypes, typesNamespace); - var associations = ParseAssociations(schemaRoot.SelectMany(x => x.Descendants(null, "Association")), complexTypes, entityTypes); - var entityContainers = ParseEntityContainers(schemaRoot.SelectMany(x => x.Descendants(null, "EntityContainer")), complexTypes, entityTypes); - - return new EdmSchema(typesNamespace, containersNamespace, entityTypes, complexTypes, associations, entityContainers); - } - - private static IEnumerable<EdmComplexType> ParseComplexTypes( - IEnumerable<XElement> elements, - string typesNamespace) - { - Func<XElement, string> GetComplexTypeName = x => String.Format("{0}.{1}", typesNamespace, x.Attribute("Name").Value); - var complexTypes = (from e in elements select new EdmComplexType { Name = GetComplexTypeName(e) }).ToList(); - elements.ToList().ForEach(e => - { - var complexType = complexTypes.Single(x => x.Name == GetComplexTypeName(e)); - complexType.Properties = (from p in e.Descendants(null, "Property") - select ParseProperty(p, complexTypes, new EdmEntityType[] { })).ToArray(); - }); - return complexTypes; - } - - private static IEnumerable<EdmEntityType> ParseEntityTypes( - IEnumerable<XElement> elements, - IEnumerable<EdmComplexType> complexTypes, - string typesNamespace) - { - var results = from e in elements - select new - { - EntityType = new EdmEntityType() - { - Name = e.Attribute("Name").Value, - Abstract = ParseBooleanAttribute(e.Attribute("Abstract")), - OpenType = ParseBooleanAttribute(e.Attribute("OpenType")), - Properties = (from p in e.Descendants(null, "Property") - select ParseProperty(p, complexTypes, new EdmEntityType[] { })).ToArray(), - Key = (from k in e.Descendants(null, "Key") - select ParseKey(k)).SingleOrDefault(), - }, - BaseType = ParseStringAttribute(e.Attribute("BaseType")), - }; - return from r in results - select new EdmEntityType() - { - Name = r.EntityType.Name, - BaseType = String.IsNullOrEmpty(r.BaseType) ? null : results.Single(y => y.EntityType.Name == r.BaseType.Split('.').Last()).EntityType, - Abstract = r.EntityType.Abstract, - OpenType = r.EntityType.OpenType, - Properties = r.EntityType.Properties, - Key = r.EntityType.Key, - }; - } - - private static IEnumerable<EdmAssociation> ParseAssociations( - IEnumerable<XElement> elements, - IEnumerable<EdmComplexType> complexTypes, - IEnumerable<EdmEntityType> entityTypes) - { - return from e in elements - select new EdmAssociation() - { - Name = e.Attribute("Name").Value, - End = (from p in e.Descendants(null, "End") - select new EdmAssociationEnd() - { - Role = p.Attribute("Role").Value, - Type = p.Attribute("Type").Value, - Multiplicity = p.Attribute("Multiplicity").Value, - }).ToArray(), - ReferentialConstraint = (from c in e.Descendants(null, "ReferentialConstraint") - select new EdmReferentialConstraint() - { - Principal = (from r in c.Descendants(null, "Principal") - select new EdmReferentialConstraintEnd() - { - Role = r.Attribute("Role").Value, - Properties = (from p in r.Descendants(null, "PropertyRef") - select p.Attribute("Name").Value).ToArray(), - } - ).Single(), - Dependent = (from r in c.Descendants(null, "Dependent") - select new EdmReferentialConstraintEnd() - { - Role = r.Attribute("Role").Value, - Properties = (from p in r.Descendants(null, "PropertyRef") - select p.Attribute("Name").Value).ToArray(), - } - ).Single(), - }).SingleOrDefault(), - }; - } - - private static IEnumerable<EdmEntityContainer> ParseEntityContainers( - IEnumerable<XElement> elements, - IEnumerable<EdmComplexType> complexTypes, - IEnumerable<EdmEntityType> entityTypes) - { - return from e in elements - select new EdmEntityContainer() - { - Name = e.Attribute("Name").Value, - IsDefaulEntityContainer = ParseBooleanAttribute(e.Attribute("m", "IsDefaultEntityContainer")), - EntitySets = (from s in e.Descendants(null, "EntitySet") - select new EdmEntitySet() - { - Name = s.Attribute("Name").Value, - EntityType = s.Attribute("EntityType").Value, - }).ToArray(), - AssociationSets = (from s in e.Descendants(null, "AssociationSet") - select new EdmAssociationSet() - { - Name = s.Attribute("Name").Value, - Association = s.Attribute("Association").Value, - End = (from n in s.Descendants(null, "End") - select new EdmAssociationSetEnd() - { - Role = n.Attribute("Role").Value, - EntitySet = n.Attribute("EntitySet").Value, - }).ToArray(), - }).ToArray(), - FunctionImports = (from s in e.Descendants(null, "FunctionImport") - select new EdmFunctionImport() - { - Name = s.Attribute("Name").Value, - HttpMethod = ParseStringAttribute(s.Attribute("m", "HttpMethod")), - ReturnType = ParseType(s.Attribute("ReturnType"), complexTypes, entityTypes), - EntitySet = ParseStringAttribute(s.Attribute("EntitySet")), - Parameters = (from p in s.Descendants(null, "Parameter") - select new EdmParameter() - { - Name = p.Attribute("Name").Value, - Type = EdmPropertyType.Parse(p.Attribute("Type").Value, complexTypes, entityTypes), - }).ToArray(), - }).ToArray(), - }; - - } - - private static EdmProperty ParseProperty( - XElement element, - IEnumerable<EdmComplexType> complexTypes, - IEnumerable<EdmEntityType> entityTypes) - { - return new EdmProperty - { - Name = element.Attribute("Name").Value, - Type = EdmPropertyType.Parse(element.Attribute("Type").Value, complexTypes, entityTypes), - Nullable = ParseBooleanAttribute(element.Attribute("Nullable")), - }; - } - - private static EdmPropertyType ParseType( - XAttribute attribute, - IEnumerable<EdmComplexType> complexTypes, - IEnumerable<EdmEntityType> entityTypes) - { - if (attribute == null || attribute.Value == null) - return null; - - var attritbuteValue = ParseStringAttribute(attribute); - return EdmPropertyType.Parse(attritbuteValue, complexTypes, entityTypes); - } - - private static EdmKey ParseKey(XElement element) - { - return new EdmKey() - { - Properties = (from p in element.Descendants(null, "PropertyRef") - select p.Attribute("Name").Value).ToArray() - }; - } - - private static bool ParseBooleanAttribute(XAttribute attribute) - { - bool result = false; - if (attribute != null) - { - Boolean.TryParse(attribute.Value, out result); - } - return result; - } - - private static string ParseStringAttribute(XAttribute attribute) - { - return attribute == null ? null : attribute.Value; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/Edm/EdmType.cs b/Simple.OData.Client/Edm/EdmType.cs deleted file mode 100644 index 19c6c698e..000000000 --- a/Simple.OData.Client/Edm/EdmType.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - public sealed class EdmType : IEquatable<EdmType> - { - public static readonly EdmType Binary = new EdmType("Edm.Binary"); - public static readonly EdmType Boolean = new EdmType("Edm.Boolean"); - public static readonly EdmType Byte = new EdmType("Edm.Byte"); - public static readonly EdmType DateTime = new EdmType("Edm.DateTime"); - public static readonly EdmType DateTimeOffset = new EdmType("Edm.DateTimeOffset"); - public static readonly EdmType Decimal = new EdmType("Edm.Decimal"); - public static readonly EdmType Double = new EdmType("Edm.Double"); - public static readonly EdmType Guid = new EdmType("Edm.Guid"); - public static readonly EdmType Int16 = new EdmType("Edm.Int16"); - public static readonly EdmType Int32 = new EdmType("Edm.Int32"); - public static readonly EdmType Int64 = new EdmType("Edm.Int64"); - public static readonly EdmType SByte = new EdmType("Edm.SByte"); - public static readonly EdmType Single = new EdmType("Edm.Single"); - public static readonly EdmType String = new EdmType("Edm.String"); - public static readonly EdmType Time = new EdmType("Edm.Time"); - - private static readonly Dictionary<Type, EdmType> EdmTypeMap = new Dictionary<Type, EdmType> - { - { typeof(byte[]), Binary }, - { typeof(bool), Boolean }, - { typeof(byte), Byte }, - { typeof(DateTime), DateTime }, - { typeof(DateTimeOffset), DateTimeOffset }, - { typeof(double), Double }, - { typeof(decimal), Decimal }, - { typeof(Guid), Guid }, - { typeof(Int16), Int16 }, - { typeof(Int32), Int32 }, - { typeof(Int64), Int64 }, - { typeof(SByte), SByte }, - { typeof(Single), Single }, - { typeof(string), String }, - { typeof(TimeSpan), Time }, - }; - - private readonly string _text; - - public string Name - { - get { return _text; } - } - - private EdmType(string text) - { - this._text = text; - } - - public static EdmType Parse(string s) - { - var result = TryParse(s); - - if (!result.Item1) throw new ArgumentOutOfRangeException(); - - return result.Item2; - } - - public static Tuple<bool, EdmType> TryParse(string s) - { - s = s.EnsureStartsWith("Edm."); - - var edmType = EnumerateTypes().FirstOrDefault(et => et._text == s); - - return Tuple.Create(edmType != null, edmType); - } - - public static EdmType FromSystemType(Type systemType) - { - if (EdmTypeMap.ContainsKey(systemType)) - { - return EdmTypeMap[systemType]; - } - - return EdmType.String; - } - - public override string ToString() - { - return _text; - } - - public override bool Equals(object obj) - { - if (obj == null) return false; - - return Equals(obj as EdmType); - } - - public override int GetHashCode() - { - return _text.GetHashCode(); - } - - public bool Equals(EdmType other) - { - if (other == null) return false; - - return other._text.Equals(_text); - } - - private static IEnumerable<EdmType> EnumerateTypes() - { - var edmTypes = from field in typeof(EdmType).GetFields(BindingFlags.Public | BindingFlags.Static) - where field.FieldType == typeof(EdmType) - select ((EdmType)field.GetValue(null)); - return edmTypes; - } - } -} diff --git a/Simple.OData.Client/Edm/EdmTypeSerializer.cs b/Simple.OData.Client/Edm/EdmTypeSerializer.cs deleted file mode 100644 index 526ae4ff0..000000000 --- a/Simple.OData.Client/Edm/EdmTypeSerializer.cs +++ /dev/null @@ -1,295 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; -using System.Linq; -using System.Xml.Linq; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - static class EdmTypeSerializer - { - private static readonly Dictionary<EdmType, Func<string, object>> Readers = new Dictionary<EdmType, Func<string, object>> - { - { EdmType.Binary, ReadEdmBinary }, - { EdmType.Boolean, ReadEdmBoolean }, - { EdmType.Byte, ReadEdmByte }, - { EdmType.DateTime, ReadEdmDateTime }, - { EdmType.DateTimeOffset, ReadEdmDateTimeOffset }, - { EdmType.Decimal, ReadEdmDecimal }, - { EdmType.Double, ReadEdmDouble }, - { EdmType.Guid, ReadEdmGuid }, - { EdmType.Int16, ReadEdmInt16 }, - { EdmType.Int32, ReadEdmInt32 }, - { EdmType.Int64, ReadEdmInt64 }, - { EdmType.SByte, ReadEdmSByte }, - { EdmType.Single, ReadEdmSingle }, - { EdmType.String, ReadEdmString }, - { EdmType.Time, ReadEdmTime }, - }; - - private static readonly Dictionary<EdmType, Func<object, string>> Writers = new Dictionary<EdmType, Func<object, string>> - { - { EdmType.Binary, WriteEdmBinary }, - { EdmType.Boolean, WriteEdmBoolean }, - { EdmType.Byte, WriteEdmByte }, - { EdmType.DateTime, WriteEdmDateTime }, - { EdmType.DateTimeOffset, WriteEdmDateTimeOffset }, - { EdmType.Decimal, WriteEdmDecimal }, - { EdmType.Double, WriteEdmDouble }, - { EdmType.Guid, WriteEdmGuid }, - { EdmType.Int16, WriteEdmInt16 }, - { EdmType.Int32, WriteEdmInt32 }, - { EdmType.Int64, WriteEdmInt64 }, - { EdmType.SByte, WriteEdmSByte }, - { EdmType.Single, WriteEdmSingle }, - { EdmType.String, WriteEdmString }, - { EdmType.Time, WriteEdmTime }, - }; - - public static KeyValuePair<string, object> Read(XElement element, string elementName = null) - { - if (element == null) throw new ArgumentNullException("element"); - - var typeAttribute = element.Attribute("m", "type").ValueOrDefault(); - object elementValue; - if (element.Attribute("m", "null").ValueOrDefault() == "true") - { - elementValue = null; - } - else if (element.HasElements) - { - if (!string.IsNullOrEmpty(typeAttribute) && typeAttribute.StartsWith("Collection(")) - { - elementValue = ReadPropertyArray(element); - } - else - { - elementValue = ReadPropertySet(element); - } - } - else if (!string.IsNullOrEmpty(typeAttribute) && typeAttribute.StartsWith("Collection(")) - { - elementValue = new object[0]; - } - else - { - var reader = GetReader(element.Attribute("m", "type").ValueOrDefault()); - elementValue = reader(element.Value); - } - - return new KeyValuePair<string, object>(elementName ?? element.Name.LocalName, elementValue); - } - - private static object ReadPropertyArray(XElement element) - { - var properties = new List<object>(); - element.Elements().ToList().ForEach(x => - { - var kvp = Read(x); - properties.Add(kvp.Value); - }); - return properties; - } - - private static object ReadPropertySet(XElement element) - { - var properties = new Dictionary<string, object>(); - element.Elements().ToList().ForEach(x => - { - var kvp = Read(x); - properties.Add(kvp.Key, kvp.Value); - }); - return properties; - } - - public static void Write(XElement container, KeyValuePair<string, object> kvp) - { - var element = new XElement(container.GetNamespaceOfPrefix("d") + kvp.Key); ; - - if (kvp.Value == null) - { - element.SetAttributeValue(container.GetNamespaceOfPrefix("m") + "null", "true"); - } - else - { - var type = EdmType.FromSystemType(kvp.Value.GetType()); - if (type != EdmType.String) - { - element.SetAttributeValue(container.GetNamespaceOfPrefix("m") + "type", type.ToString()); - } - element.SetValue(Writers[type](kvp.Value)); - } - - container.Add(element); - } - - public static object ReadEdmBinary(string source) - { - return Convert.FromBase64String(source); - } - - public static object ReadEdmBoolean(string source) - { - return source.Equals("true", StringComparison.InvariantCultureIgnoreCase); - } - - public static object ReadEdmByte(string source) - { - return Byte.Parse(source); - } - - public static object ReadEdmDateTime(string source) - { - return DateTime.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmDateTimeOffset(string source) - { - return DateTimeOffset.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmDouble(string source) - { - return Double.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmDecimal(string source) - { - return Decimal.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmGuid(string source) - { - return new Guid(source); - } - - public static object ReadEdmInt16(string source) - { - return Int16.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmInt32(string source) - { - return Int32.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmInt64(string source) - { - return Int64.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmSByte(string source) - { - return SByte.Parse(source); - } - - public static object ReadEdmSingle(string source) - { - return Single.Parse(source, CultureInfo.InvariantCulture); - } - - public static object ReadEdmString(string source) - { - return source; - } - - public static object ReadEdmTime(string source) - { - return TimeSpan.Parse(source, CultureInfo.InvariantCulture); - } - - public static string WriteEdmBinary(object source) - { - return Convert.ToBase64String((byte[])source); - } - - public static string WriteEdmBoolean(object source) - { - return (Boolean)source ? "true" : "false"; - } - - public static string WriteEdmByte(object source) - { - return ((Byte)source).ToString(); - } - - public static string WriteEdmDateTime(object source) - { - if (((DateTime)source).Kind != DateTimeKind.Utc) - { - Trace.WriteLine("Non-UTC DateTime specified to EdmTypeSerializer", "Simple.Data.OData.Warnings"); - } - - return ((DateTime)source).ToIso8601String(); - } - - public static string WriteEdmDateTimeOffset(object source) - { - return ((DateTimeOffset)source).ToIso8601String(); - } - - public static string WriteEdmDouble(object source) - { - return ((Double)source).ToString(CultureInfo.InvariantCulture); - } - - public static string WriteEdmDecimal(object source) - { - return ((Decimal)source).ToString(CultureInfo.InvariantCulture); - } - - public static string WriteEdmGuid(object source) - { - return ((Guid)source).ToString(); - } - - public static string WriteEdmInt16(object source) - { - return ((Int16)source).ToString(); - } - - public static string WriteEdmInt32(object source) - { - return ((Int32)source).ToString(); - } - - public static string WriteEdmInt64(object source) - { - return ((Int64)source).ToString(); - } - - public static string WriteEdmSByte(object source) - { - return ((SByte)source).ToString(); - } - - public static string WriteEdmSingle(object source) - { - return ((Single)source).ToString(CultureInfo.InvariantCulture); - } - - public static string WriteEdmString(object source) - { - return source.ToString(); - } - - public static string WriteEdmTime(object source) - { - return ((TimeSpan)source).ToIso8601String(); - } - - private static Func<string, object> GetReader(string edmType) - { - var func = Func.NoOp<string, object>(); - - EdmType.TryParse(edmType).IfGood((et) => - { - func = Readers[et]; - }); - - return func; - } - } -} diff --git a/Simple.OData.Client/EntryMembers.cs b/Simple.OData.Client/EntryMembers.cs deleted file mode 100644 index b875886d2..000000000 --- a/Simple.OData.Client/EntryMembers.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - internal class EntryMembers - { - private readonly IDictionary<string, object> _properties = new Dictionary<string, object>(); - private readonly List<KeyValuePair<string, object>> _associationsByValue = new List<KeyValuePair<string, object>>(); - private readonly List<KeyValuePair<string, int>> _associationsByContentId = new List<KeyValuePair<string, int>>(); - - public IDictionary<string, object> Properties { get { return _properties; } } - public List<KeyValuePair<string, object>> AssociationsByValue { get { return _associationsByValue; } } - public List<KeyValuePair<string, int>> AssociationsByContentId { get { return _associationsByContentId; } } - - public void AddProperty(string propertyName, object propertyValue) - { - _properties.Add(propertyName, propertyValue); - } - - public void AddAssociationByValue(string associationName, object associatedData) - { - _associationsByValue.Add(new KeyValuePair<string, object>(associationName, associatedData)); - } - - public void AddAssociationByContentId(string associationName, int contentId) - { - _associationsByContentId.Add(new KeyValuePair<string, int>(associationName, contentId)); - } - } -} diff --git a/Simple.OData.Client/Extensions/HomogenizeEx.cs b/Simple.OData.Client/Extensions/HomogenizeEx.cs deleted file mode 100644 index 8e711d120..000000000 --- a/Simple.OData.Client/Extensions/HomogenizeEx.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Text.RegularExpressions; - -namespace Simple.OData.Client -{ - static class HomogenizeEx - { - private static readonly ConcurrentDictionary<string, string> Cache - = new ConcurrentDictionary<string, string>(StringComparer.InvariantCultureIgnoreCase); - private static Regex _homogenizeRegex = new Regex("[^a-z0-9]"); - - /// <summary> - /// Downshift a string and remove all non-alphanumeric characters. - /// </summary> - /// <param name="source">The original string.</param> - /// <returns>The modified string.</returns> - public static string Homogenize(this string source) - { - return source == null ? null : Cache.GetOrAdd(source, HomogenizeImpl); - } - - private static string HomogenizeImpl(string source) - { - return string.Intern(_homogenizeRegex.Replace(source.ToLowerInvariant(), string.Empty)); - } - - /// <summary> - /// Sets the regular expression to be used for homogenizing object names. - /// </summary> - /// <param name="regex">A regular expression matching all non-comparing characters. The default is "[^a-z0-9]".</param> - /// <remarks>Homogenized strings are always forced to lower-case.</remarks> - public static void SetRegularExpression(Regex regex) - { - _homogenizeRegex = regex; - } - } -} diff --git a/Simple.OData.Client/Extensions/StringExtensions.cs b/Simple.OData.Client/Extensions/StringExtensions.cs deleted file mode 100644 index ddd9eccc5..000000000 --- a/Simple.OData.Client/Extensions/StringExtensions.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Linq; - -namespace Simple.OData.Client -{ - static class StringExtensions - { - public static bool IsPlural(this string str) - { - return _pluralizer.IsPlural(str); - } - - public static string Pluralize(this string str) - { - return _pluralizer.Pluralize(str); - } - - public static string Singularize(this string str) - { - return _pluralizer.Singularize(str); - } - - public static bool IsAllUpperCase(this string str) - { - return !str.Any(char.IsLower); - } - - public static string NullIfWhitespace(this string str) - { - return string.IsNullOrWhiteSpace(str) ? null : str; - } - - public static string OrDefault(this string str, string defaultValue) - { - return str ?? defaultValue; - } - - private static IPluralizer _pluralizer = new SimplePluralizer(); - - internal static void SetPluralizer(IPluralizer pluralizer) - { - _pluralizer = pluralizer ?? new SimplePluralizer(); - } - } - - class SimplePluralizer : IPluralizer - { - public bool IsSingular(string word) - { - return !IsPlural(word); - } - - public bool IsPlural(string word) - { - return word.EndsWith("s", StringComparison.InvariantCultureIgnoreCase); - } - - public string Pluralize(string word) - { - return string.Concat(word, word.IsAllUpperCase() ? "S" : "s"); - } - - public string Singularize(string word) - { - return word.EndsWith("s", StringComparison.InvariantCultureIgnoreCase) ? word.Substring(0, word.Length - 1) : word; - } - - } -} diff --git a/Simple.OData.Client/Filter/ExpressionContext.cs b/Simple.OData.Client/Filter/ExpressionContext.cs deleted file mode 100644 index 261617462..000000000 --- a/Simple.OData.Client/Filter/ExpressionContext.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Linq; - -namespace Simple.OData.Client -{ - internal class ExpressionContext - { - private Table _table; - - public ODataClientWithCommand Client { get; set; } - public Table Table - { - get - { - if (!IsSet) - return null; - if (_table != null) - return _table; - - return this.Client.Schema.FindConcreteTable(this.Collection); - } - - set - { - _table = value; - } - } - public string Collection { get; set; } - - public bool IsSet - { - get { return this.Client != null && (this._table != null || !string.IsNullOrEmpty(this.Collection)); } - } - } -} diff --git a/Simple.OData.Client/Filter/ExpressionFunction.cs b/Simple.OData.Client/Filter/ExpressionFunction.cs deleted file mode 100644 index d4e9f1f00..000000000 --- a/Simple.OData.Client/Filter/ExpressionFunction.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using System.Linq; - -namespace Simple.OData.Client -{ - public class ExpressionFunction - { - public string FunctionName { get; set; } - public List<FilterExpression> Arguments { get; set; } - - public class FunctionCall - { - public string FunctionName { get; private set; } - public int ArgumentCount { get; private set; } - - public FunctionCall(string functionName, int argumentCount) - { - this.FunctionName = functionName; - this.ArgumentCount = argumentCount; - } - - public override bool Equals(object obj) - { - if (obj is FunctionCall) - { - return this.FunctionName == (obj as FunctionCall).FunctionName && - this.ArgumentCount == (obj as FunctionCall).ArgumentCount; - } - else - { - return base.Equals(obj); - } - } - - public override int GetHashCode() - { - return this.FunctionName.GetHashCode() ^ this.ArgumentCount.GetHashCode(); - } - } - - internal ExpressionFunction() - { - } - - public ExpressionFunction(string functionName, IEnumerable<object> arguments) - { - this.FunctionName = functionName; - this.Arguments = arguments.Select(FilterExpression.FromValue).ToList(); - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/Filter/ExpressionOperator.cs b/Simple.OData.Client/Filter/ExpressionOperator.cs deleted file mode 100644 index 242df1639..000000000 --- a/Simple.OData.Client/Filter/ExpressionOperator.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Simple.OData.Client -{ - public enum ExpressionOperator - { - None, - AND, - OR, - NOT, - EQ, - NE, - GT, - GE, - LT, - LE, - ADD, - SUB, - MUL, - DIV, - MOD - } -} diff --git a/Simple.OData.Client/Filter/FilterExpression.Format.cs b/Simple.OData.Client/Filter/FilterExpression.Format.cs deleted file mode 100644 index bd57db20e..000000000 --- a/Simple.OData.Client/Filter/FilterExpression.Format.cs +++ /dev/null @@ -1,238 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - public partial class FilterExpression - { - internal string Format(ODataClientWithCommand client, Table table) - { - return this.Format(new ExpressionContext() - { - Client = client, - Table = table - }); - } - - internal string Format(ODataClientWithCommand client, string collection) - { - return this.Format(new ExpressionContext { Client = client, Collection = collection }); - } - - internal string Format(ExpressionContext context) - { - if (_operator == ExpressionOperator.None) - { - return _reference != null ? - FormatReference(context) : _function != null ? - FormatFunction(context) : - FormatValue(context); - } - else if (_operator == ExpressionOperator.NOT) - { - var left = FormatExpression(_left, context); - var op = FormatOperator(context); - if (NeedsGrouping(_left)) - return string.Format("{0}({1})", op, left); - else - return string.Format("{0} {1}", op, left); - } - else - { - var left = FormatExpression(_left, context); - var right = FormatExpression(_right, context); - var op = FormatOperator(context); - if (NeedsGrouping(_left)) - return string.Format("({0}) {1} {2}", left, op, right); - else if (NeedsGrouping(_right)) - return string.Format("{0} {1} ({2})", left, op, right); - else - return string.Format("{0} {1} {2}", left, op, right); - } - } - - private static string FormatExpression(FilterExpression expr, ExpressionContext context) - { - if (ReferenceEquals(expr, null)) - { - return "null"; - } - else - { - return expr.Format(context); - } - } - - private string FormatReference(ExpressionContext context) - { - var elementNames = new List<string>(_reference.Split('.')); - var pathNames = BuildReferencePath(new List<string>(), context.Table, elementNames, context); - return string.Join("/", pathNames); - } - - private string FormatFunction(ExpressionContext context) - { - FunctionMapping mapping; - if (FunctionMapping.SupportedFunctions.TryGetValue(new ExpressionFunction.FunctionCall(_function.FunctionName, _function.Arguments.Count()), out mapping)) - { - var mappedFunction = mapping.FunctionMapper(_function.FunctionName, _functionCaller.Format(context), _function.Arguments)._function; - return string.Format("{0}({1})", mappedFunction.FunctionName, - string.Join(",", (IEnumerable<object>)mappedFunction.Arguments.Select(x => FormatExpression(x, context)))); - } - else - { - throw new NotSupportedException(string.Format("The function {0} is not supported or called with wrong number of arguments", _function.FunctionName)); - } - } - - private string FormatValue(ExpressionContext context) - { - return (new ValueFormatter()).FormatExpressionValue(_value, context); - } - - private string FormatOperator(ExpressionContext context) - { - switch (_operator) - { - case ExpressionOperator.AND: - return "and"; - case ExpressionOperator.OR: - return "or"; - case ExpressionOperator.NOT: - return "not"; - case ExpressionOperator.EQ: - return "eq"; - case ExpressionOperator.NE: - return "ne"; - case ExpressionOperator.GT: - return "gt"; - case ExpressionOperator.GE: - return "ge"; - case ExpressionOperator.LT: - return "lt"; - case ExpressionOperator.LE: - return "le"; - case ExpressionOperator.ADD: - return "add"; - case ExpressionOperator.SUB: - return "sub"; - case ExpressionOperator.MUL: - return "mul"; - case ExpressionOperator.DIV: - return "div"; - case ExpressionOperator.MOD: - return "mod"; - default: - return null; - } - } - - private IEnumerable<string> BuildReferencePath(List<string> pathNames, Table table, List<string> elementNames, ExpressionContext context) - { - if (!elementNames.Any()) - { - return pathNames; - } - - var objectName = elementNames.First(); - if (table != null) - { - if (table.HasColumn(objectName)) - { - pathNames.Add(table.FindColumn(objectName).ActualName); - return BuildReferencePath(pathNames, null, elementNames.Skip(1).ToList(), context); - } - else if (table.HasAssociation(objectName)) - { - var association = table.FindAssociation(objectName); - pathNames.Add(association.ActualName); - return BuildReferencePath(pathNames, context.Client.Schema.FindTable(association.ReferenceTableName), elementNames.Skip(1).ToList(), context); - } - else - { - var formattedFunction = FormatAsFunction(objectName, context); - if (!string.IsNullOrEmpty(formattedFunction)) - { - pathNames.Add(formattedFunction); - return BuildReferencePath(pathNames, null, elementNames.Skip(1).ToList(), context); - } - else - { - throw new UnresolvableObjectException(objectName, string.Format("Invalid referenced object {0}", objectName)); - } - } - } - else if (FunctionMapping.SupportedFunctions.ContainsKey(new ExpressionFunction.FunctionCall(elementNames.First(), 0))) - { - var formattedFunction = FormatAsFunction(objectName, context); - pathNames.Add(formattedFunction); - return BuildReferencePath(pathNames, null, elementNames.Skip(1).ToList(), context); - } - else - { - pathNames.AddRange(elementNames); - return BuildReferencePath(pathNames, null, new List<string>(), context); - } - } - - private string FormatAsFunction(string objectName, ExpressionContext context) - { - FunctionMapping mapping; - if (FunctionMapping.SupportedFunctions.TryGetValue(new ExpressionFunction.FunctionCall(objectName, 0), out mapping)) - { - string targetName = _functionCaller.Format(context); - var mappedFunction = mapping.FunctionMapper(objectName, targetName, null)._function; - return string.Format("{0}({1})", mappedFunction.FunctionName, targetName); - } - else - { - return null; - } - } - - private int GetPrecedence(ExpressionOperator op) - { - switch (op) - { - case ExpressionOperator.NOT: - return 1; - case ExpressionOperator.MOD: - case ExpressionOperator.MUL: - case ExpressionOperator.DIV: - return 2; - case ExpressionOperator.ADD: - case ExpressionOperator.SUB: - return 3; - case ExpressionOperator.GT: - case ExpressionOperator.GE: - case ExpressionOperator.LT: - case ExpressionOperator.LE: - return 4; - case ExpressionOperator.EQ: - case ExpressionOperator.NE: - return 5; - case ExpressionOperator.AND: - return 6; - case ExpressionOperator.OR: - return 7; - default: - return 0; - } - } - - private bool NeedsGrouping(FilterExpression expr) - { - if (_operator == ExpressionOperator.None) - return false; - if (ReferenceEquals(expr, null)) - return false; - if (expr._operator == ExpressionOperator.None) - return false; - - int outerPrecedence = GetPrecedence(_operator); - int innerPrecedence = GetPrecedence(expr._operator); - return outerPrecedence < innerPrecedence; - } - } -} diff --git a/Simple.OData.Client/Filter/FilterExpression.Operators.cs b/Simple.OData.Client/Filter/FilterExpression.Operators.cs deleted file mode 100644 index 2e43196f7..000000000 --- a/Simple.OData.Client/Filter/FilterExpression.Operators.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; - -namespace Simple.OData.Client -{ - public partial class FilterExpression - { - public static implicit operator FilterExpression(bool value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(byte value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(sbyte value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(short value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(ushort value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(int value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(uint value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(long value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(ulong value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(float value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(double value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(decimal value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(DateTime value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(DateTimeOffset value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(Guid value) { return FilterExpression.FromValue(value); } - public static implicit operator FilterExpression(string value) { return FilterExpression.FromValue(value); } - - public static FilterExpression operator !(FilterExpression expr) - { - return new FilterExpression(expr, null, ExpressionOperator.NOT); - } - - public static FilterExpression operator ==(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.EQ); - } - - public static FilterExpression operator !=(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.NE); - } - - public static FilterExpression operator &(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.AND); - } - - public static FilterExpression operator |(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.OR); - } - - public static FilterExpression operator >(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.GT); - } - - public static FilterExpression operator <(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.LT); - } - - public static FilterExpression operator >=(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.GE); - } - - public static FilterExpression operator <=(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.LE); - } - - public static FilterExpression operator +(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.ADD); - } - - public static FilterExpression operator -(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.SUB); - } - - public static FilterExpression operator *(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.MUL); - } - - public static FilterExpression operator /(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.DIV); - } - - public static FilterExpression operator %(FilterExpression expr1, FilterExpression expr2) - { - return new FilterExpression(expr1, expr2, ExpressionOperator.MOD); - } - - public static bool operator true(FilterExpression expr) - { - return false; - } - - public static bool operator false(FilterExpression expr) - { - return false; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/Filter/FilterExpression.cs b/Simple.OData.Client/Filter/FilterExpression.cs deleted file mode 100644 index 8ddea933c..000000000 --- a/Simple.OData.Client/Filter/FilterExpression.cs +++ /dev/null @@ -1,102 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using System.Linq; - -namespace Simple.OData.Client -{ - public partial class FilterExpression : DynamicObject - { - private string _reference; - private object _value; - private ExpressionFunction _function; - private FilterExpression _functionCaller; - private readonly FilterExpression _left; - private readonly FilterExpression _right; - private readonly ExpressionOperator _operator; - - public FilterExpression() - { - } - - private FilterExpression(FilterExpression left, FilterExpression right, ExpressionOperator expressionOperator) - { - _left = left; - _right = right; - _operator = expressionOperator; - } - - internal static FilterExpression FromReference(string reference) - { - return new FilterExpression { _reference = reference }; - } - - internal static FilterExpression FromValue(object value) - { - return new FilterExpression { _value = value }; - } - - internal static FilterExpression FromFunction(ExpressionFunction function) - { - return new FilterExpression { _function = function }; - } - - internal static FilterExpression FromFunction(string functionName, string targetName, IEnumerable<object> arguments) - { - var expression = new FilterExpression(); - expression._functionCaller = FilterExpression.FromReference(targetName); - expression._function = new ExpressionFunction(functionName, arguments); - return expression; - } - - public override bool TryGetMember(GetMemberBinder binder, out object result) - { - FunctionMapping mapping; - if (FunctionMapping.SupportedFunctions.TryGetValue(new ExpressionFunction.FunctionCall(binder.Name, 0), out mapping)) - { - result = new FilterExpression() {_functionCaller = this, _reference = binder.Name}; - return true; - } - return base.TryGetMember(binder, out result); - } - - public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) - { - FunctionMapping mapping; - if (FunctionMapping.SupportedFunctions.TryGetValue(new ExpressionFunction.FunctionCall(binder.Name, args.Count()), out mapping)) - { - result = new FilterExpression() { _functionCaller = this, _function = new ExpressionFunction(binder.Name, args) }; - return true; - } - return base.TryInvokeMember(binder, args, out result); - } - - public override string ToString() - { - return Format(new ExpressionContext()); - } - - internal bool ExtractEqualityComparisons(IDictionary<string, object> columnEqualityComparisons) - { - switch (_operator) - { - case ExpressionOperator.AND: - _left.ExtractEqualityComparisons(columnEqualityComparisons); - _right.ExtractEqualityComparisons(columnEqualityComparisons); - return true; - - case ExpressionOperator.EQ: - if (!string.IsNullOrEmpty(_left._reference)) - { - var key = _left.ToString().Split('.').Last(); - if (!columnEqualityComparisons.ContainsKey(key)) - columnEqualityComparisons.Add(key, _right); - } - return true; - - default: - return false; - } - } - } -} diff --git a/Simple.OData.Client/Filter/FunctionMapping.cs b/Simple.OData.Client/Filter/FunctionMapping.cs deleted file mode 100644 index abbaeb1d0..000000000 --- a/Simple.OData.Client/Filter/FunctionMapping.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - internal class FunctionMapping - { - public string FunctionName { get; private set; } - public Func<string, string, IEnumerable<object>, FilterExpression> FunctionMapper { get; private set; } - - public FunctionMapping(string functionName) - { - this.FunctionName = functionName; - this.FunctionMapper = FunctionWithTarget; - } - - public FunctionMapping(string functionName, Func<string, string, IEnumerable<object>, FilterExpression> functionMapper) - { - this.FunctionName = functionName; - this.FunctionMapper = functionMapper; - } - - private readonly static Func<string, string, IEnumerable<object>, FilterExpression> FunctionWithTarget = - (functionName, targetName, arguments) => FilterExpression.FromFunction( - new ExpressionFunction() - { - FunctionName = SupportedFunctions[new ExpressionFunction.FunctionCall(functionName, 0)].FunctionName, - Arguments = new List<FilterExpression>() { FilterExpression.FromReference(targetName) }, - }); - - private readonly static Func<string, string, IEnumerable<object>, FilterExpression> FunctionWithTargetAndArguments = - (functionName, targetName, arguments) => FilterExpression.FromFunction( - new ExpressionFunction() - { - FunctionName = SupportedFunctions[new ExpressionFunction.FunctionCall(functionName, arguments.Count())].FunctionName, - Arguments = MergeArguments(FilterExpression.FromReference(targetName), arguments), - }); - - private readonly static Func<string, string, IEnumerable<object>, FilterExpression> FunctionWithArgumentsAndTarget = - (functionName, targetName, arguments) => FilterExpression.FromFunction( - new ExpressionFunction() - { - FunctionName = SupportedFunctions[new ExpressionFunction.FunctionCall(functionName, arguments.Count())].FunctionName, - Arguments = MergeArguments(arguments, FilterExpression.FromReference(targetName)), - }); - - public static Dictionary<ExpressionFunction.FunctionCall, FunctionMapping> SupportedFunctions = new Dictionary<ExpressionFunction.FunctionCall, FunctionMapping>() - { - {new ExpressionFunction.FunctionCall("Contains", 1), new FunctionMapping("substringof", FunctionWithArgumentsAndTarget)}, - {new ExpressionFunction.FunctionCall("StartsWith", 1), new FunctionMapping("startswith", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("EndsWith", 1), new FunctionMapping("endswith", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("Length", 0), new FunctionMapping("length")}, - {new ExpressionFunction.FunctionCall("IndexOf", 1), new FunctionMapping("indexof", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("Replace", 2), new FunctionMapping("replace", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("Substring", 1), new FunctionMapping("substring", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("Substring", 2), new FunctionMapping("substring", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("ToLower", 0), new FunctionMapping("tolower")}, - {new ExpressionFunction.FunctionCall("ToUpper", 0), new FunctionMapping("toupper")}, - {new ExpressionFunction.FunctionCall("Trim", 0), new FunctionMapping("trim")}, - {new ExpressionFunction.FunctionCall("Concat", 1), new FunctionMapping("concat", FunctionWithTargetAndArguments)}, - {new ExpressionFunction.FunctionCall("Year", 0), new FunctionMapping("year")}, - {new ExpressionFunction.FunctionCall("Month", 0), new FunctionMapping("month")}, - {new ExpressionFunction.FunctionCall("Day", 0), new FunctionMapping("day")}, - {new ExpressionFunction.FunctionCall("Hour", 0), new FunctionMapping("hour")}, - {new ExpressionFunction.FunctionCall("Minute", 0), new FunctionMapping("minute")}, - {new ExpressionFunction.FunctionCall("Second", 0), new FunctionMapping("second")}, - {new ExpressionFunction.FunctionCall("Round", 0), new FunctionMapping("round")}, - {new ExpressionFunction.FunctionCall("Floor", 0), new FunctionMapping("floor")}, - {new ExpressionFunction.FunctionCall("Ceiling", 0), new FunctionMapping("ceiling")}, - }; - - private static List<FilterExpression> MergeArguments(FilterExpression argument, IEnumerable<object> arguments) - { - var collection = new List<FilterExpression>(); - collection.Add(argument); - collection.AddRange(arguments.Select(FilterExpression.FromValue)); - return collection; - } - - private static List<FilterExpression> MergeArguments(IEnumerable<object> arguments, FilterExpression argument) - { - var collection = new List<FilterExpression>(); - collection.AddRange(arguments.Select(FilterExpression.FromValue)); - collection.Add(argument); - return collection; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/HttpCommand.cs b/Simple.OData.Client/HttpCommand.cs deleted file mode 100644 index 51c63e01b..000000000 --- a/Simple.OData.Client/HttpCommand.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System.Collections.Generic; -using System.Net; - -namespace Simple.OData.Client -{ - public class HttpCommand - { - public string Method { get; set; } - public string CommandText { get; set; } - public IDictionary<string, object> OriginalContent { get; set; } - public string FormattedContent { get; set; } - public bool IsLink { get; set; } - public HttpWebRequest Request { get; set; } - public int ContentId { get; set; } - public string ContentType - { - get { return this.IsLink ? "application/xml" : "application/atom+xml;type=entry"; } - } - - private HttpCommand() - { - } - - public HttpCommand(string method, string commandText) - : this(method, commandText, null, null, false) - { - } - - public HttpCommand(string method, string commandText, IDictionary<string, object> originalContent, string formattedContent, bool isLink = false) - { - Method = method; - CommandText = commandText; - OriginalContent = originalContent; - FormattedContent = formattedContent; - IsLink = isLink; - } - - public static HttpCommand Get(string commandText) - { - return new HttpCommand - { - CommandText = commandText, Method = RestVerbs.GET - }; - } - - public static HttpCommand Post(string commandText, IDictionary<string, object> originalContent, string formattedContent, bool isLink = false) - { - return new HttpCommand - { - Method = RestVerbs.POST, - CommandText = commandText, - OriginalContent = originalContent, - FormattedContent = formattedContent, - IsLink = isLink - }; - } - - public static HttpCommand Put(string commandText, IDictionary<string, object> originalContent, string formattedContent, bool isLink = false) - { - return new HttpCommand - { - Method = RestVerbs.PUT, - CommandText = commandText, - OriginalContent = originalContent, - FormattedContent = formattedContent, - IsLink = isLink - }; - } - - public static HttpCommand Merge(string commandText, IDictionary<string, object> originalContent, string formattedContent, bool isLink = false) - { - return new HttpCommand - { - Method = RestVerbs.MERGE, - CommandText = commandText, - OriginalContent = originalContent, - FormattedContent = formattedContent, - IsLink = isLink - }; - } - - public static HttpCommand Delete(string commandText) - { - return new HttpCommand - { - Method = RestVerbs.DELETE, - CommandText = commandText - }; - } - } -} diff --git a/Simple.OData.Client/IClient.cs b/Simple.OData.Client/IClient.cs deleted file mode 100644 index a1bebe7ae..000000000 --- a/Simple.OData.Client/IClient.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - public interface IClient - { - IEnumerable<IDictionary<string, object>> FindEntries(); - IEnumerable<IDictionary<string, object>> FindEntries(bool scalarResult); - IEnumerable<IDictionary<string, object>> FindEntries(out int totalCount); - IEnumerable<IDictionary<string, object>> FindEntries(bool scalarResult, out int totalCount); - IDictionary<string, object> FindEntry(); - object FindScalar(); - IDictionary<string, object> GetEntry(params object[] entryKey); - IDictionary<string, object> GetEntry(IEnumerable<object> entryKey); - IDictionary<string, object> GetEntry(IDictionary<string, object> entryKey); - IDictionary<string, object> InsertEntry(IDictionary<string, object> entryData, bool resultRequired); - int UpdateEntry(IDictionary<string, object> entryKey, IDictionary<string, object> entryData); - int DeleteEntry(IDictionary<string, object> entryKey); - void LinkEntry(IDictionary<string, object> entryKey, string linkName, IDictionary<string, object> linkedEntryKey); - void UnlinkEntry(IDictionary<string, object> entryKey, string linkName); - IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(string functionName, IDictionary<string, object> parameters); - } -} \ No newline at end of file diff --git a/Simple.OData.Client/IClientWithCommand.cs b/Simple.OData.Client/IClientWithCommand.cs deleted file mode 100644 index 312f34f6c..000000000 --- a/Simple.OData.Client/IClientWithCommand.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - public interface IClientWithCommand : IClient, ICommand - { - string CommandText { get; } - - // see http://stackoverflow.com/questions/10531575/passing-a-dynamic-parameter-throws-runtimebinderexception-when-calling-method-fr - new IClientWithCommand Filter(string filter); - new IClientWithCommand Filter(FilterExpression expression); - } -} diff --git a/Simple.OData.Client/ICommand.cs b/Simple.OData.Client/ICommand.cs deleted file mode 100644 index 7927f767e..000000000 --- a/Simple.OData.Client/ICommand.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - public interface ICommand - { - IClientWithCommand From(string collectionName); - IClientWithCommand As(string derivedCollectionName); - IClientWithCommand Key(params object[] entryKey); - IClientWithCommand Key(IEnumerable<object> entryKey); - IClientWithCommand Key(IDictionary<string, object> entryKey); - IClientWithCommand Filter(string filter); - IClientWithCommand Filter(FilterExpression expression); - IClientWithCommand Skip(int count); - IClientWithCommand Top(int count); - IClientWithCommand Expand(IEnumerable<string> associations); - IClientWithCommand Expand(params string[] associations); - IClientWithCommand Select(IEnumerable<string> columns); - IClientWithCommand Select(params string[] columns); - IClientWithCommand OrderBy(IEnumerable<KeyValuePair<string, bool>> columns); - IClientWithCommand OrderBy(params string[] columns); - IClientWithCommand OrderByDescending(params string[] columns); - IClientWithCommand Count(); - IClientWithCommand NavigateTo(string linkName); - IClientWithCommand Function(string functionName); - IClientWithCommand Parameters(IDictionary<string, object> parameters); - bool FilterIsKey { get; } - IDictionary<string, object> FilterAsKey { get; } - } -} diff --git a/Simple.OData.Client/IPluralizer.cs b/Simple.OData.Client/IPluralizer.cs deleted file mode 100644 index b82d98c07..000000000 --- a/Simple.OData.Client/IPluralizer.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Simple.OData.Client -{ - public interface IPluralizer - { - bool IsPlural(string word); - bool IsSingular(string word); - string Pluralize(string word); - string Singularize(string word); - } -} diff --git a/Simple.OData.Client/ODataBatch.cs b/Simple.OData.Client/ODataBatch.cs deleted file mode 100644 index b4368a6a7..000000000 --- a/Simple.OData.Client/ODataBatch.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Linq; -using System.Net; -using System.Text.RegularExpressions; -using Simple.NExtLib.IO; - -namespace Simple.OData.Client -{ - public class ODataBatch : IDisposable - { - private bool _active; - internal ODataClientSettings Settings { get; set; } - internal BatchRequestBuilder RequestBuilder { get; set; } - internal BatchRequestRunner RequestRunner { get; set; } - - public ODataBatch(string urlBase) - : this (new ODataClientSettings { UrlBase = urlBase }) - { - } - - public ODataBatch(ODataClientSettings settings) - { - this.Settings = settings; - this.RequestBuilder = new BatchRequestBuilder(this.Settings.UrlBase, this.Settings.Credentials); - this.RequestRunner = new BatchRequestRunner(this.RequestBuilder); - - this.RequestBuilder.BeginBatch(); - _active = true; - } - - public void Dispose() - { - if (_active) - this.RequestBuilder.CancelBatch(); - _active = false; - } - - public void Complete() - { - this.RequestBuilder.EndBatch(); - using (var response = this.RequestRunner.TryRequest(this.RequestBuilder.Request)) - { - ParseResponse(response); - } - _active = false; - } - - public void Cancel() - { - this.RequestBuilder.CancelBatch(); - _active = false; - } - - private void ParseResponse(HttpWebResponse response) - { - var content = QuickIO.StreamToString(response.GetResponseStream()); - var batchMarker = Regex.Match(content, @"--batchresponse_[a-zA-Z0-9\-]+").Value; - var batchResponse = content.Split(new string[] { batchMarker }, StringSplitOptions.None)[1]; - var changesetMarker = Regex.Match(batchResponse, @"--changesetresponse_[a-zA-Z0-9\-]+").Value; - var changesetResponses = batchResponse.Split(new string[] { changesetMarker }, StringSplitOptions.None).ToList(); - changesetResponses = changesetResponses.Skip(1).Take(changesetResponses.Count - 2).ToList(); - foreach (var changesetResponse in changesetResponses) - { - var match = Regex.Match(changesetResponse, @"HTTP/[0-9\.]+\s+([0-9]+)\s+(.+)\n"); - var statusCode = int.Parse(match.Groups[1].Value); - var message = match.Groups[2].Value; - if (statusCode >= 400) - { - throw new WebRequestException(message, statusCode.ToString()); - } - } - } - } -} diff --git a/Simple.OData.Client/ODataClient.cs b/Simple.OData.Client/ODataClient.cs deleted file mode 100644 index 161c58043..000000000 --- a/Simple.OData.Client/ODataClient.cs +++ /dev/null @@ -1,464 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Xml.Linq; - -namespace Simple.OData.Client -{ - public class ODataClient - { - private readonly ODataClientSettings _settings; - private readonly ISchema _schema; - private readonly RequestBuilder _requestBuilder; - private readonly RequestRunner _requestRunner; - - public ODataClient(string urlBase) - : this(new ODataClientSettings { UrlBase = urlBase }) - { - } - - public ODataClient(ODataClientSettings settings) - { - _settings = settings; - _schema = Client.Schema.Get(_settings.UrlBase, _settings.Credentials); - - _requestBuilder = new CommandRequestBuilder(_settings.UrlBase, _settings.Credentials); - _requestRunner = new CommandRequestRunner(_settings.IncludeResourceTypeInEntryProperties); - _requestRunner.BeforeRequest = _settings.BeforeRequest; - _requestRunner.AfterResponse = _settings.AfterResponse; - } - - public ODataClient(ODataBatch batch) - { - _settings = batch.Settings; - _schema = Client.Schema.Get(_settings.UrlBase, _settings.Credentials); - - _requestBuilder = batch.RequestBuilder; - _requestRunner = batch.RequestRunner; - } - - public ISchema Schema - { - get { return _schema; } - } - - public string SchemaAsString - { - get { return SchemaProvider.FromUrl(_settings.UrlBase, _settings.Credentials).SchemaAsString; } - } - - public static ISchema GetSchema(string urlBase, ICredentials credentials = null) - { - return Client.Schema.Get(urlBase, credentials); - } - - public static string GetSchemaAsString(string urlBase, ICredentials credentials = null) - { - return SchemaProvider.FromUrl(urlBase, credentials).SchemaAsString; - } - - public static ISchema ParseSchemaString(string schemaString) - { - return SchemaProvider.FromMetadata(schemaString).Schema; - } - - public static void SetPluralizer(IPluralizer pluralizer) - { - StringExtensions.SetPluralizer(pluralizer); - } - - public IClientWithCommand From(string collectionName) - { - return new ODataClientWithCommand(this, _schema).From(collectionName); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(string commandText) - { - int totalCount; - return FindEntries(commandText, false, false, out totalCount); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(string commandText, bool scalarResult) - { - int totalCount; - return FindEntries(commandText, scalarResult, false, out totalCount); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(string commandText, out int totalCount) - { - return FindEntries(commandText, false, true, out totalCount); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(string commandText, bool scalarResult, out int totalCount) - { - return FindEntries(commandText, scalarResult, true, out totalCount); - } - - private IEnumerable<IDictionary<string, object>> FindEntries(string commandText, bool scalarResult, bool setTotalCount, out int totalCount) - { - var command = HttpCommand.Get(commandText); - _requestBuilder.AddCommandToRequest(command); - return _requestRunner.FindEntries(command, scalarResult, setTotalCount, out totalCount); - } - - public IDictionary<string, object> FindEntry(string commandText) - { - int totalCount; - var result = FindEntries(commandText, false, false, out totalCount); - return result == null ? null : result.FirstOrDefault(); - } - - public object FindScalar(string commandText) - { - int totalCount; - var result = FindEntries(commandText, true, false, out totalCount); - return result == null ? null : result.FirstOrDefault().Values.First(); - } - - public IDictionary<string, object> GetEntry(string collection, params object[] entryKey) - { - var entryKeyWithNames = new Dictionary<string, object>(); - var keyNames = _schema.FindConcreteTable(collection).GetKeyNames(); - for (int index = 0; index < keyNames.Count; index++) - { - entryKeyWithNames.Add(keyNames[index], entryKey.ElementAt(index)); - } - return GetEntry(collection, entryKeyWithNames); - } - - public IDictionary<string, object> GetEntry(string collection, IDictionary<string, object> entryKey) - { - var commandText = new ODataClientWithCommand(this, _schema).From(collection).Key(entryKey).CommandText; - var command = HttpCommand.Get(commandText); - _requestBuilder.AddCommandToRequest(command); - return _requestRunner.GetEntry(command); - } - - public IDictionary<string, object> InsertEntry(string collection, IDictionary<string, object> entryData, bool resultRequired) - { - RemoveSystemProperties(entryData); - var table = _schema.FindConcreteTable(collection); - var entryMembers = ParseEntryMembers(table, entryData); - - var feedWriter = new ODataFeedWriter(); - var entry = feedWriter.CreateDataElement(_schema.TypesNamespace, table.ActualName, entryMembers.Properties); - foreach (var associatedData in entryMembers.AssociationsByValue) - { - CreateLinkElement(entry, collection, associatedData); - } - - var commandText = _schema.FindBaseTable(collection).ActualName; - var command = HttpCommand.Post(commandText, entryData, entry.ToString()); - _requestBuilder.AddCommandToRequest(command); - var result = _requestRunner.InsertEntry(command, resultRequired); - - foreach (var associatedData in entryMembers.AssociationsByContentId) - { - var linkCommand = CreateLinkCommand(collection, associatedData.Key, - feedWriter.CreateLinkPath(command.ContentId), - feedWriter.CreateLinkPath(associatedData.Value)); - _requestBuilder.AddCommandToRequest(linkCommand); - _requestRunner.InsertEntry(linkCommand, resultRequired); - } - - return result; - } - - public int UpdateEntries(string collection, string commandText, IDictionary<string, object> entryData) - { - RemoveSystemProperties(entryData); - return IterateEntries(collection, commandText, entryData, UpdateEntry); - } - - public int UpdateEntry(string collection, IDictionary<string, object> entryKey, IDictionary<string, object> entryData) - { - RemoveSystemProperties(entryKey); - RemoveSystemProperties(entryData); - var table = _schema.FindConcreteTable(collection); - var entryMembers = ParseEntryMembers(table, entryData); - - return UpdateEntryPropertiesAndAssociations(collection, entryKey, entryData, entryMembers); - } - - public int DeleteEntries(string collection, string commandText) - { - return IterateEntries(collection, commandText, null, (x, y, z) => DeleteEntry(x, y)); - } - - public int DeleteEntry(string collection, IDictionary<string, object> entryKey) - { - RemoveSystemProperties(entryKey); - var commandText = new ODataClientWithCommand(this, _schema).From(collection).Key(entryKey).CommandText; - var command = HttpCommand.Delete(commandText); - _requestBuilder.AddCommandToRequest(command); - return _requestRunner.DeleteEntry(command); - } - - public void LinkEntry(string collection, IDictionary<string, object> entryKey, string linkName, IDictionary<string, object> linkedEntryKey) - { - RemoveSystemProperties(entryKey); - RemoveSystemProperties(linkedEntryKey); - var association = _schema.FindAssociation(collection, linkName); - var command = CreateLinkCommand(collection, linkName, - new ODataClientWithCommand(this, _schema).From(collection).Key(entryKey).CommandText, - new ODataClientWithCommand(this, _schema).From(association.ReferenceTableName).Key(linkedEntryKey).CommandText); - _requestBuilder.AddCommandToRequest(command); - _requestRunner.UpdateEntry(command); - } - - public void UnlinkEntry(string collection, IDictionary<string, object> entryKey, string linkName) - { - RemoveSystemProperties(entryKey); - var association = _schema.FindAssociation(collection, linkName); - var command = CreateUnlinkCommand(collection, linkName, new ODataClientWithCommand(this, _schema).From(collection).Key(entryKey).CommandText); - _requestBuilder.AddCommandToRequest(command); - _requestRunner.UpdateEntry(command); - } - - public IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(string functionName, IDictionary<string, object> parameters) - { - var function = _schema.FindFunction(functionName); - var command = new HttpCommand(function.HttpMethod.ToUpper(), new ODataClientWithCommand(this, _schema).Function(functionName).Parameters(parameters).CommandText); - _requestBuilder.AddCommandToRequest(command); - return _requestRunner.ExecuteFunction(command); - } - - public string FormatFilter(string collection, dynamic filterExpression) - { - if (filterExpression is FilterExpression) - { - var clientWithCommand = new ODataClientWithCommand(this, _schema); - string filter = (filterExpression as FilterExpression) - .Format(clientWithCommand, collection); - - return clientWithCommand - .From(collection) - .Filter(filter).CommandText; - } - else - { - throw new InvalidOperationException("Unable to cast dynamic object to FilterExpression"); - } - } - - private int IterateEntries(string collection, string commandText, IDictionary<string, object> entryData, - Func<string, IDictionary<string, object>, IDictionary<string, object>, int> func) - { - var entryKey = ExtractKeyFromCommandText(collection, commandText); - if (entryKey != null) - { - return func(collection, entryKey, entryData); - } - else - { - var entries = new ODataClient(_settings).FindEntries(commandText); - if (entries != null) - { - var entryList = entries.ToList(); - foreach (var entry in entryList) - { - func(collection, entry, entryData); - } - return entryList.Count; - } - else - { - return 0; - } - } - } - - private int UpdateEntryPropertiesAndAssociations( - string collection, - IDictionary<string, object> entryKey, - IDictionary<string, object> entryData, - EntryMembers entryMembers) - { - bool hasPropertiesToUpdate = entryMembers.Properties.Count > 0; - bool merge = !hasPropertiesToUpdate || CheckMergeConditions(collection, entryKey, entryData); - var commandText = new ODataClientWithCommand(this, _schema).From(_schema.FindBaseTable(collection).ActualName).Key(entryKey).CommandText; - - var feedWriter = new ODataFeedWriter(); - var table = _schema.FindConcreteTable(collection); - var entryElement = feedWriter.CreateDataElement(_schema.TypesNamespace, table.ActualName, entryMembers.Properties); - var unlinkAssociationNames = new List<string>(); - foreach (var associatedData in entryMembers.AssociationsByValue) - { - var association = table.FindAssociation(associatedData.Key); - if (associatedData.Value != null) - { - CreateLinkElement(entryElement, collection, associatedData); - } - else - { - unlinkAssociationNames.Add(association.ActualName); - } - } - - var command = new HttpCommand(merge ? RestVerbs.MERGE : RestVerbs.PUT, commandText, entryData, entryElement.ToString()); - _requestBuilder.AddCommandToRequest(command); - var result = _requestRunner.UpdateEntry(command); - - foreach (var associatedData in entryMembers.AssociationsByContentId) - { - var linkCommand = CreateLinkCommand(collection, associatedData.Key, - feedWriter.CreateLinkPath(command.ContentId), - feedWriter.CreateLinkPath(associatedData.Value)); - _requestBuilder.AddCommandToRequest(linkCommand); - _requestRunner.UpdateEntry(linkCommand); - } - - foreach (var associationName in unlinkAssociationNames) - { - UnlinkEntry(collection, entryKey, associationName); - } - - return result; - } - - private HttpCommand CreateLinkCommand(string collection, string associationName, string entryPath, string linkPath) - { - var feedWriter = new ODataFeedWriter(); - var linkEntry = feedWriter.CreateLinkElement(linkPath); - var linkMethod = _schema.FindAssociation(collection, associationName).IsMultiple ? - RestVerbs.POST : - RestVerbs.PUT; - - var commandText = feedWriter.CreateLinkCommand(entryPath, associationName); - return new HttpCommand(linkMethod, commandText, null, linkEntry.ToString(), true); - } - - private HttpCommand CreateUnlinkCommand(string collection, string associationName, string entryPath) - { - var commandText = new ODataFeedWriter().CreateLinkCommand(entryPath, associationName); - return HttpCommand.Delete(commandText); - } - - private void CreateLinkElement(XElement entry, string collection, KeyValuePair<string, object> associatedData) - { - if (associatedData.Value == null) - return; - - var association = _schema.FindAssociation(collection, associatedData.Key); - var associatedKeyValues = GetLinkedEntryKeyValues(association.ReferenceTableName, associatedData); - if (associatedKeyValues != null) - { - new ODataFeedWriter().AddDataLink(entry, association.ActualName, association.ReferenceTableName, associatedKeyValues); - } - } - - private IEnumerable<object> GetLinkedEntryKeyValues(string collection, KeyValuePair<string, object> entryData) - { - var entryProperties = GetLinkedEntryProperties(entryData.Value); - var associatedKeyNames = _schema.FindConcreteTable(collection).GetKeyNames(); - var associatedKeyValues = new object[associatedKeyNames.Count()]; - for (int index = 0; index < associatedKeyNames.Count(); index++) - { - bool ok = entryProperties.TryGetValue(associatedKeyNames[index], out associatedKeyValues[index]); - if (!ok) - return null; - } - return associatedKeyValues; - } - - private IDictionary<string, object> GetLinkedEntryProperties(object entryData) - { - IDictionary<string, object> entryProperties = entryData as IDictionary<string, object>; - if (entryProperties == null) - { - entryProperties = new Dictionary<string, object>(); - var entryType = entryData.GetType(); - foreach (var entryProperty in entryType.GetProperties()) - { - entryProperties.Add(entryProperty.Name, entryType.GetProperty(entryProperty.Name).GetValue(entryData, null)); - } - } - return entryProperties; - } - - private EntryMembers ParseEntryMembers(Table table, IDictionary<string, object> entryData) - { - var entryMembers = new EntryMembers(); - - foreach (var item in entryData) - { - ParseEntryMember(table, item, entryMembers); - } - - return entryMembers; - } - - private void ParseEntryMember(Table table, KeyValuePair<string, object> item, EntryMembers entryMembers) - { - if (table.HasColumn(item.Key)) - { - entryMembers.AddProperty(item.Key, item.Value); - } - else if (table.HasAssociation(item.Key)) - { - var association = table.FindAssociation(item.Key); - if (association.IsMultiple) - { - var collection = item.Value as IEnumerable<object>; - if (collection != null) - { - foreach (var element in collection) - { - AddEntryAssociation(entryMembers, item.Key, element); - } - } - } - else - { - AddEntryAssociation(entryMembers, item.Key, item.Value); - } - } - else - { - throw new UnresolvableObjectException(item.Key, string.Format("No property or association found for {0}.", item.Key)); - } - } - - private void AddEntryAssociation(EntryMembers entryMembers, string associationName, object associatedData) - { - int contentId = _requestBuilder.GetContentId(associatedData); - if (contentId == 0) - { - entryMembers.AddAssociationByValue(associationName, associatedData); - } - else - { - entryMembers.AddAssociationByContentId(associationName, contentId); - } - } - - private bool CheckMergeConditions(string collection, IDictionary<string, object> entryKey, IDictionary<string, object> entryData) - { - var table = _schema.FindConcreteTable(collection); - var keyNames = table.GetKeyNames(); - foreach (var key in entryKey.Keys) - { - if (!keyNames.Contains(key) && !entryData.Keys.Contains(key)) - { - return true; - } - } - return false; - } - - private void RemoveSystemProperties(IDictionary<string, object> entryData) - { - if (_settings.IncludeResourceTypeInEntryProperties && entryData.ContainsKey(ODataCommand.ResourceTypeLiteral)) - { - entryData.Remove(ODataCommand.ResourceTypeLiteral); - } - } - - private IDictionary<string, object> ExtractKeyFromCommandText(string collection, string commandText) - { - // TODO - return null; - } - } -} diff --git a/Simple.OData.Client/ODataClientSettings.cs b/Simple.OData.Client/ODataClientSettings.cs deleted file mode 100644 index bc646188c..000000000 --- a/Simple.OData.Client/ODataClientSettings.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Net; - -namespace Simple.OData.Client -{ - public class ODataClientSettings - { - public string UrlBase { get; set; } - public ICredentials Credentials { get; set; } - public bool IncludeResourceTypeInEntryProperties { get; set; } - public Action<HttpWebRequest> BeforeRequest { get; set; } - public Action<HttpWebResponse> AfterResponse { get; set; } - - public ODataClientSettings() - { - } - - public ODataClientSettings(string urlBase, ICredentials credentials = null) - { - this.UrlBase = urlBase; - this.Credentials = credentials; - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/ODataClientWithCommand.cs b/Simple.OData.Client/ODataClientWithCommand.cs deleted file mode 100644 index cbe1f8612..000000000 --- a/Simple.OData.Client/ODataClientWithCommand.cs +++ /dev/null @@ -1,223 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - class ODataClientWithCommand : IClientWithCommand - { - private readonly ODataClient _client; - private readonly ISchema _schema; - private readonly ODataCommand _command; - - public ODataClientWithCommand(ODataClient client, ISchema schema, ODataCommand parent = null) - { - _client = client; - _schema = schema; - _command = new ODataCommand(this, parent); - } - - public ISchema Schema - { - get { return _schema; } - } - - public string CommandText - { - get { return _command.ToString(); } - } - - public ODataClientWithCommand Link(ODataCommand command, string linkName) - { - var linkedClient = new ODataClientWithCommand(_client, _schema, command); - linkedClient._command.Link(linkName); - return linkedClient; - } - - public IEnumerable<IDictionary<string, object>> FindEntries() - { - return _client.FindEntries(_command.ToString()); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(bool scalarResult) - { - return _client.FindEntries(_command.ToString(), scalarResult); - } - - public IEnumerable<IDictionary<string, object>> FindEntries(out int totalCount) - { - var result = _client.FindEntries(_command.WithInlineCount().ToString(), out totalCount); - return result; - } - - public IEnumerable<IDictionary<string, object>> FindEntries(bool scalarResult, out int totalCount) - { - var result = _client.FindEntries(_command.WithInlineCount().ToString(), scalarResult, out totalCount); - return result; - } - - public IDictionary<string, object> FindEntry() - { - return _client.FindEntry(_command.ToString()); - } - - public object FindScalar() - { - return _client.FindScalar(_command.ToString()); - } - - public IDictionary<string, object> GetEntry(params object[] entryKey) - { - return _client.GetEntry(_command.ToString(), entryKey); - } - - public IDictionary<string, object> GetEntry(IEnumerable<object> entryKey) - { - return _client.GetEntry(_command.ToString(), entryKey); - } - - public IDictionary<string, object> GetEntry(IDictionary<string, object> entryKey) - { - return _client.GetEntry(_command.ToString(), entryKey); - } - - public IDictionary<string, object> InsertEntry(IDictionary<string, object> entryData, bool resultRequired) - { - return _client.InsertEntry(_command.ToString(), entryData, resultRequired); - } - - public int UpdateEntry(IDictionary<string, object> entryKey, IDictionary<string, object> entryData) - { - return _client.UpdateEntry(_command.ToString(), entryKey, entryData); - } - - public int DeleteEntry(IDictionary<string, object> entryKey) - { - return _client.DeleteEntry(_command.ToString(), entryKey); - } - - public void LinkEntry(IDictionary<string, object> entryKey, string linkName, IDictionary<string, object> linkedEntryKey) - { - _client.LinkEntry(_command.ToString(), entryKey, linkName, linkedEntryKey); - } - - public void UnlinkEntry(IDictionary<string, object> entryKey, string linkName) - { - _client.UnlinkEntry(_command.ToString(), entryKey, linkName); - } - - public IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(string functionName, IDictionary<string, object> parameters) - { - return _client.ExecuteFunction(_command.ToString(), parameters); - } - - public IClientWithCommand From(string collectionName) - { - return _command.From(collectionName); - } - - public IClientWithCommand As(string derivedCollectionName) - { - return _command.As(derivedCollectionName); - } - - public IClientWithCommand Key(params object[] key) - { - return _command.Key(key); - } - - public IClientWithCommand Key(IEnumerable<object> key) - { - return _command.Key(key); - } - - public IClientWithCommand Key(IDictionary<string, object> key) - { - return _command.Key(key); - } - - public IClientWithCommand Filter(string filter) - { - return _command.Filter(filter); - } - - public IClientWithCommand Filter(FilterExpression expression) - { - return _command.Filter(expression); - } - - public IClientWithCommand Skip(int count) - { - return _command.Skip(count); - } - - public IClientWithCommand Top(int count) - { - return _command.Top(count); - } - - public IClientWithCommand Expand(IEnumerable<string> associations) - { - return _command.Expand(associations); - } - - public IClientWithCommand Expand(params string[] associations) - { - return _command.Expand(associations); - } - - public IClientWithCommand Select(IEnumerable<string> columns) - { - return _command.Select(columns); - } - - public IClientWithCommand Select(params string[] columns) - { - return _command.Select(columns); - } - - public IClientWithCommand OrderBy(IEnumerable<KeyValuePair<string,bool>> columns) - { - return _command.OrderBy(columns); - } - - public IClientWithCommand OrderBy(params string[] columns) - { - return _command.OrderBy(columns); - } - - public IClientWithCommand OrderByDescending(params string[] columns) - { - return _command.OrderByDescending(columns); - } - - public IClientWithCommand Count() - { - return _command.Count(); - } - - public IClientWithCommand Function(string functionName) - { - return _command.Function(functionName); - } - - public IClientWithCommand Parameters(IDictionary<string, object> parameters) - { - return _command.Parameters(parameters); - } - - public IClientWithCommand NavigateTo(string linkName) - { - return _command.NavigateTo(linkName); - } - - public bool FilterIsKey - { - get { return _command.FilterIsKey; } - } - - public IDictionary<string, object> FilterAsKey - { - get { return _command.FilterAsKey; } - } - } -} diff --git a/Simple.OData.Client/ODataCommand.cs b/Simple.OData.Client/ODataCommand.cs deleted file mode 100644 index 4680da097..000000000 --- a/Simple.OData.Client/ODataCommand.cs +++ /dev/null @@ -1,368 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - class ODataCommand : ICommand - { - private readonly ODataClientWithCommand _client; - private readonly ODataCommand _parent; - private string _collectionName; - private string _derivedCollectionName; - private string _functionName; - private IList<object> _keyValues; - private IDictionary<string, object> _namedKeyValues; - private Dictionary<string, object> _parameters = new Dictionary<string, object>(); - private string _filter; - private int _skipCount = -1; - private int _topCount = -1; - private List<string> _expandAssociations = new List<string>(); - private List<string> _selectColumns = new List<string>(); - private readonly List<KeyValuePair<string, bool>> _orderbyColumns = new List<KeyValuePair<string, bool>>(); - private bool _computeCount; - private bool _inlineCount; - private string _linkName; - - internal static readonly string MetadataLiteral = "$metadata"; - internal static readonly string FilterLiteral = "$filter"; - internal static readonly string SkipLiteral = "$skip"; - internal static readonly string TopLiteral = "$top"; - internal static readonly string ExpandLiteral = "$expand"; - internal static readonly string OrderByLiteral = "$orderby"; - internal static readonly string SelectLiteral = "$select"; - internal static readonly string CountLiteral = "$count"; - internal static readonly string InlineCountLiteral = "$inlinecount"; - internal static readonly string AllPagesLiteral = "allpages"; - internal static readonly string BatchLiteral = "$batch"; - internal static readonly string ResultLiteral = "__result"; - internal static readonly string ResourceTypeLiteral = "__resourcetype"; - - public ODataCommand(ODataClientWithCommand client, ODataCommand parent) - { - _client = client; - _parent = parent; - } - - private Table Table - { - get - { - if (!string.IsNullOrEmpty(_collectionName)) - { - var table = _client.Schema.FindTable(_collectionName); - return string.IsNullOrEmpty(_derivedCollectionName) - ? table - : table.FindDerivedTable(_derivedCollectionName); - } - else if (!string.IsNullOrEmpty(_linkName)) - { - return _client.Schema.FindTable(_parent.Table.FindAssociation(_linkName).ReferenceTableName); - } - else - { - return null; - } - } - } - - public IClientWithCommand From(string collectionName) - { - var items = collectionName.Split('/'); - if (items.Count() > 1) - { - _collectionName = items[0]; - _derivedCollectionName = items[1]; - } - else - { - _collectionName = collectionName; - } - return _client; - } - - public IClientWithCommand As(string derivedCollectionName) - { - _derivedCollectionName = derivedCollectionName; - return _client; - } - - public IClientWithCommand Link(string linkName) - { - _linkName = linkName; - return _client; - } - - public IClientWithCommand Key(params object[] key) - { - _keyValues = key.ToList(); - return _client; - } - - public IClientWithCommand Key(IEnumerable<object> key) - { - _keyValues = key.ToList(); - return _client; - } - - public IClientWithCommand Key(IDictionary<string, object> key) - { - _namedKeyValues = key; - return _client; - } - - public IClientWithCommand Filter(string filter) - { - _filter = filter; - return _client; - } - - public IClientWithCommand Filter(FilterExpression expression) - { - _namedKeyValues = TryInterpretFilterExpressionAsKey(expression); - if (_namedKeyValues == null) - { - _filter = expression.Format(_client, this.Table); - } - else - { - _topCount = -1; - } - return _client; - } - - public IClientWithCommand Skip(int count) - { - _skipCount = count; - return _client; - } - - public IClientWithCommand Top(int count) - { - if (!HasKey) - { - _topCount = count; - } - else if (count != 1) - { - throw new InvalidOperationException("Top count may only be assigned to 1 when key is assigned"); - } - return _client; - } - - public IClientWithCommand Expand(IEnumerable<string> associations) - { - _expandAssociations = associations.ToList(); - return _client; - } - - public IClientWithCommand Expand(params string[] associations) - { - _expandAssociations = associations.ToList(); - return _client; - } - - public IClientWithCommand Select(IEnumerable<string> columns) - { - _selectColumns = columns.ToList(); - return _client; - } - - public IClientWithCommand Select(params string[] columns) - { - _selectColumns = columns.ToList(); - return _client; - } - - public IClientWithCommand OrderBy(IEnumerable<KeyValuePair<string, bool>> columns) - { - _orderbyColumns.AddRange(columns); - return _client; - } - - public IClientWithCommand OrderBy(params string[] columns) - { - return OrderBy(columns.Select(x => new KeyValuePair<string, bool>(x, false))); - } - - public IClientWithCommand OrderByDescending(params string[] columns) - { - return OrderBy(columns.Select(x => new KeyValuePair<string, bool>(x, true))); - } - - public IClientWithCommand Count() - { - _computeCount = true; - return _client; - } - - public IClientWithCommand Function(string functionName) - { - _functionName = functionName; - return _client; - } - - public IClientWithCommand Parameters(IDictionary<string, object> parameters) - { - _parameters = parameters.ToDictionary(); - return _client; - } - - public IClientWithCommand NavigateTo(string linkName) - { - return _client.Link(this, linkName); - } - - public bool FilterIsKey - { - get - { - return _namedKeyValues != null; - } - } - - public IDictionary<string, object> FilterAsKey - { - get - { - return _namedKeyValues; - } - } - - public ODataCommand WithInlineCount() - { - _inlineCount = true; - return this; - } - - public override string ToString() - { - return Format(); - } - - private string Format() - { - string commandText = string.Empty; - if (!string.IsNullOrEmpty(_collectionName)) - { - commandText += _client.Schema.FindTable(_collectionName).ActualName; - if (!string.IsNullOrEmpty(_derivedCollectionName)) - commandText += "/" + string.Join(".", _client.Schema.TypesNamespace, _derivedCollectionName); - } - else if (!string.IsNullOrEmpty(_linkName)) - { - commandText += _parent.ToString() + "/"; - commandText += _parent.Table.FindAssociation(_linkName).ActualName; - } - else if (!string.IsNullOrEmpty(_functionName)) - { - commandText += _client.Schema.FindFunction(_functionName).ActualName; - } - - var extraClauses = new List<string>(); - var aggregateClauses = new List<string>(); - - if (_namedKeyValues != null && _namedKeyValues.Count > 0 && !string.IsNullOrEmpty(_filter)) - throw new InvalidOperationException("Filter may not be set when key is assigned"); - - if (HasKey) - commandText += FormatKey(); - - if (_parameters.Any()) - extraClauses.Add(new ValueFormatter().Format(_parameters, "&")); - - if (!string.IsNullOrEmpty(_filter)) - extraClauses.Add(string.Format("{0}={1}", FilterLiteral, Uri.EscapeDataString(_filter))); - - if (_skipCount >= 0) - extraClauses.Add(string.Format("{0}={1}", SkipLiteral, _skipCount)); - - if (_topCount >= 0) - extraClauses.Add(string.Format("{0}={1}", TopLiteral, _topCount)); - - if (_expandAssociations.Any()) - extraClauses.Add(string.Format("{0}={1}", ExpandLiteral, string.Join(",", _expandAssociations.Select(FormatExpandItem)))); - - if (_orderbyColumns.Any()) - extraClauses.Add(string.Format("{0}={1}", OrderByLiteral, string.Join(",", _orderbyColumns.Select(FormatOrderByItem)))); - - if (_selectColumns.Any()) - extraClauses.Add(string.Format("{0}={1}", SelectLiteral, string.Join(",", _selectColumns.Select(FormatSelectItem)))); - - if (_inlineCount) - extraClauses.Add(string.Format("{0}={1}", InlineCountLiteral, AllPagesLiteral)); - - if (_computeCount) - aggregateClauses.Add(CountLiteral); - - if (aggregateClauses.Any()) - commandText += "/" + string.Join("/", aggregateClauses); - - if (extraClauses.Any()) - commandText += "?" + string.Join("&", extraClauses); - - return commandText; - } - - private string FormatExpandItem(string item) - { - return this.Table.FindAssociation(item).ActualName; - } - - private string FormatSelectItem(string item) - { - return this.Table.HasColumn(item) - ? this.Table.FindColumn(item).ActualName - : this.Table.FindAssociation(item).ActualName; - } - - private string FormatOrderByItem(KeyValuePair<string, bool> item) - { - return this.Table.FindColumn(item.Key) + (item.Value ? " desc" : string.Empty); - } - - private string FormatKey() - { - var keyNames = this.Table.GetKeyNames(); - var namedKeyValues = new Dictionary<string, object>(); - for (int index = 0; index < keyNames.Count; index++) - { - if (_namedKeyValues != null && _namedKeyValues.Count > 0) - { - object keyValue; - if (_namedKeyValues.TryGetValue(keyNames[index], out keyValue)) - { - namedKeyValues.Add(keyNames[index], keyValue); - } - } - else if (_keyValues != null && _keyValues.Count >= index) - { - namedKeyValues.Add(keyNames[index], _keyValues[index]); - } - } - var valueFormatter = new ValueFormatter(); - var formattedKeyValues = namedKeyValues.Count == 1 ? - valueFormatter.Format(namedKeyValues.Values) : - valueFormatter.Format(namedKeyValues); - return "(" + formattedKeyValues + ")"; - } - - private bool HasKey - { - get { return _keyValues != null && _keyValues.Count > 0 || _namedKeyValues != null && _namedKeyValues.Count > 0; } - } - - private IDictionary<string, object> TryInterpretFilterExpressionAsKey(FilterExpression expression) - { - bool ok = false; - IDictionary<string, object> namedKeyValues = new Dictionary<string, object>(); - if (!ReferenceEquals(expression, null)) - { - ok = expression.ExtractEqualityComparisons(namedKeyValues); - } - return ok && - this.Table.GetKeyNames().Count == namedKeyValues.Count() && - this.Table.GetKeyNames().All(namedKeyValues.ContainsKey) ? namedKeyValues : null; - } - } -} diff --git a/Simple.OData.Client/ODataFeedReader.cs b/Simple.OData.Client/ODataFeedReader.cs deleted file mode 100644 index f5c8dfe60..000000000 --- a/Simple.OData.Client/ODataFeedReader.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Xml.Linq; -using Simple.NExtLib.IO; - -namespace Simple.OData.Client -{ - class ODataFeedReader - { - private readonly bool _includeResourceTypeInEntryProperties; - - public ODataFeedReader(bool includeResourceTypeInEntryProperties = false) - { - _includeResourceTypeInEntryProperties = includeResourceTypeInEntryProperties; - } - - public IEnumerable<IDictionary<string, object>> GetData(Stream stream, bool scalarResult = false) - { - return GetData(QuickIO.StreamToString(stream), scalarResult); - } - - public IEnumerable<IDictionary<string, object>> GetData(Stream stream, out int totalCount) - { - var text = QuickIO.StreamToString(stream); - return GetData(text, out totalCount); - } - - public EdmSchema GetSchema(Stream stream) - { - return GetSchema(QuickIO.StreamToString(stream)); - } - - public string GetSchemaAsString(Stream stream) - { - return QuickIO.StreamToString(stream); - } - - public IEnumerable<IDictionary<string, object>> GetData(string text, bool scalarResult = false) - { - if (scalarResult) - { - return new[] { new Dictionary<string, object>() { { ODataCommand.ResultLiteral, text } } }; - } - else - { - var feed = XElement.Parse(text); - return GetData(feed); - } - } - - public IEnumerable<IDictionary<string, object>> GetData(string text, out int totalCount) - { - var feed = XElement.Parse(text); - totalCount = GetDataCount(feed); - return GetData(feed); - } - - public EdmSchema GetSchema(string text) - { - var feed = XElement.Parse(text); - return EdmSchemaParser.ParseSchema(feed); - } - - public IEnumerable<IDictionary<string, object>> GetFunctionResult(Stream stream) - { - var text = QuickIO.StreamToString(stream); - var element = XElement.Parse(text); - bool scalarResult = element.Name.LocalName != "feed"; - if (scalarResult) - { - KeyValuePair<string, object> kv; - try - { - kv = EdmTypeSerializer.Read(element, ODataCommand.ResultLiteral); - } - catch (Exception) - { - kv = new KeyValuePair<string, object>(ODataCommand.ResultLiteral, text); - } - return new[] { new Dictionary<string, object>() { { kv.Key, kv.Value } } }; - } - else - { - return GetData(element); - } - } - - private IEnumerable<IDictionary<string, object>> GetData(XElement feed) - { - bool mediaStream = feed.Element(null, "entry") != null && - feed.Element(null, "entry").Descendants(null, "link").Attributes("rel").Any( - x => x.Value == "edit-media"); - - var entryElements = feed.Name.LocalName == "feed" - ? feed.Elements(null, "entry") - : new[] { feed }; - - foreach (var entry in entryElements) - { - var entryData = new Dictionary<string, object>(); - - var linkElements = entry.Elements(null, "link").Where(x => x.Descendants("m", "inline").Any()); - foreach (var linkElement in linkElements) - { - var linkData = GetLinks(linkElement); - entryData.Add(linkElement.Attribute("title").Value, linkData); - } - - var entityElement = mediaStream ? entry : entry.Element(null, "content"); - var properties = GetProperties(entityElement).ToIDictionary(); - properties.ToList().ForEach(x => entryData.Add(x.Key, x.Value)); - - if (_includeResourceTypeInEntryProperties) - { - var resourceType = entry.Element(null, "category").Attribute("term").Value.Split('.').Last(); - entryData.Add(ODataCommand.ResourceTypeLiteral, resourceType); - } - - yield return entryData; - } - } - - private int GetDataCount(XElement feed) - { - var count = feed.Elements("m", "count").SingleOrDefault(); - return count == null ? 0 : Convert.ToInt32(count.Value); - } - - private IEnumerable<KeyValuePair<string, object>> GetProperties(XElement element) - { - if (element == null) throw new ArgumentNullException("element"); - - var properties = element.Element("m", "properties"); - - if (properties == null) yield break; - - foreach (var property in properties.Elements()) - { - yield return EdmTypeSerializer.Read(property); - } - } - - private object GetLinks(XElement element) - { - var feed = element.Element("m", "inline").Elements().SingleOrDefault(); - if (feed == null) - return null; - - var linkData = GetData(feed); - return feed.Name.LocalName == "feed" ? (object)linkData : linkData.Single(); - } - } -} diff --git a/Simple.OData.Client/ODataFeedWriter.cs b/Simple.OData.Client/ODataFeedWriter.cs deleted file mode 100644 index d98c28488..000000000 --- a/Simple.OData.Client/ODataFeedWriter.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml.Linq; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - class ODataFeedWriter - { - public XElement CreateDataElement(string namespaceName, string collectionName, IDictionary<string, object> row) - { - var entry = CreateEmptyEntryWithNamespaces(); - - var resourceName = GetQualifiedResourceName(namespaceName, collectionName); - entry.Element(null, "category").SetAttributeValue("term", resourceName); - var properties = entry.Element(null, "content").Element("m", "properties"); - - foreach (var prop in row) - { - EdmTypeSerializer.Write(properties, prop); - } - - return entry; - } - - public XElement CreateLinkElement(string link) - { - var entry = CreateEmptyMetadataWithNamespaces(); - - entry.SetValue(link); - - return entry; - } - - public XElement CreateLinkElement(int contentId) - { - return CreateLinkElement(CreateLinkPath(contentId)); - } - - public string CreateLinkPath(int contentId) - { - return "$" + contentId.ToString(); - } - - public string CreateLinkCommand(string entryPath, string linkName) - { - return string.Format("{0}/$links/{1}", entryPath, linkName); - } - - public void AddDataLink(XElement container, string associationName, string linkedEntityName, IEnumerable<object> linkedEntityKeyValues) - { - var entry = XElement.Parse(Properties.Resources.DataServicesAtomEntryXml).Element(null, "link"); - var rel = entry.Attribute("rel"); - rel.SetValue(rel.Value + associationName); - entry.SetAttributeValue("title", associationName); - entry.SetAttributeValue("href", string.Format("{0}({1})", - linkedEntityName, - string.Join(",", linkedEntityKeyValues.Select(new ValueFormatter().FormatContentValue)))); - container.Add(entry); - } - - private XElement CreateEmptyEntryWithNamespaces() - { - var entry = XElement.Parse(Properties.Resources.DataServicesAtomEntryXml); - entry.Element(null, "updated").SetValue(DateTime.UtcNow.ToIso8601String()); - entry.Element(null, "link").Remove(); - return entry; - } - - private XElement CreateEmptyMetadataWithNamespaces() - { - var entry = XElement.Parse(Properties.Resources.DataServicesMetadataEntryXml); - return entry; - } - - private string GetQualifiedResourceName(string namespaceName, string collectionName) - { - return string.Join(".", namespaceName, collectionName); - } - } -} diff --git a/Simple.OData.Client/ODataFilter.cs b/Simple.OData.Client/ODataFilter.cs deleted file mode 100644 index 16fbe3dba..000000000 --- a/Simple.OData.Client/ODataFilter.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Collections.Generic; -using System.Dynamic; - -namespace Simple.OData.Client -{ - public static class ODataFilter - { - public class ExpressionFactory : DynamicObject - { - public override bool TryGetMember(GetMemberBinder binder, out object result) - { - result = FilterExpression.FromReference(binder.Name); - return true; - } - } - - public static dynamic Expression - { - get { return new ExpressionFactory(); } - } - - public static FilterExpression ExpressionFromReference(string reference) - { - return FilterExpression.FromReference(reference); - } - - public static FilterExpression ExpressionFromValue(object value) - { - return FilterExpression.FromValue(value); - } - - public static FilterExpression ExpressionFromFunction(string functionName, string targetName, IEnumerable<object> arguments) - { - return FilterExpression.FromFunction(functionName, targetName, arguments); - } - } -} diff --git a/Simple.OData.Client/Pluralizer.cs b/Simple.OData.Client/Pluralizer.cs deleted file mode 100644 index ed4f7133b..000000000 --- a/Simple.OData.Client/Pluralizer.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; - -namespace Simple.OData.Client -{ - public class Pluralizer : IPluralizer - { - private Func<string, bool> _isPlural; - private Func<string, bool> _isSingular; - private Func<string, string> _pluralize; - private Func<string, string> _singularize; - - public Pluralizer(Func<string, bool> isPlural, Func<string, bool> isSingular, Func<string, string> pluralize, Func<string, string> singularize) - { - _isPlural = isPlural; - _isSingular = isSingular; - _pluralize = pluralize; - _singularize = singularize; - } - - public bool IsPlural(string word) - { - return _isPlural(word); - } - - public bool IsSingular(string word) - { - return _isSingular(word); - } - - public string Pluralize(string word) - { - return _pluralize(word); - } - - public string Singularize(string word) - { - return _singularize(word); - } - } -} diff --git a/Simple.OData.Client/Properties/AssemblyInfo.cs b/Simple.OData.Client/Properties/AssemblyInfo.cs deleted file mode 100644 index f2456b484..000000000 --- a/Simple.OData.Client/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.OData.Client")] -[assembly: AssemblyDescription(".NET4/WinRT OData client library.")] -[assembly: AssemblyCompany("Vagif Abilov")] -[assembly: AssemblyProduct("Simple.OData.Client")] -[assembly: AssemblyCopyright("Copyright © Vagif Abilov 2012-2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -#if(DEBUG) -[assembly: AssemblyConfiguration("Debug")] -#else -[assembly: AssemblyConfiguration("Release")] -#endif - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c39637fa-a4e4-4ca4-a0a8-f393f35e9a72")] - -[assembly: InternalsVisibleTo("Simple.OData.Client.Tests")] - -// 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/Simple.OData.Client/Properties/Resources.Designer.cs b/Simple.OData.Client/Properties/Resources.Designer.cs deleted file mode 100644 index c5f3e8b94..000000000 --- a/Simple.OData.Client/Properties/Resources.Designer.cs +++ /dev/null @@ -1,95 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated by a tool. -// Runtime Version:4.0.30319.269 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </auto-generated> -//------------------------------------------------------------------------------ - -namespace Simple.OData.Client.Properties -{ - - - /// <summary> - /// A strongly-typed resource class, for looking up localized strings, etc. - /// </summary> - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// <summary> - /// Returns the cached ResourceManager instance used by this class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Simple.OData.Client.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// <summary> - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" standalone="yes"?> - ///<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> - /// <title /> - /// <updated/> - /// <author> - /// <name /> - /// </author> - /// <id /> - /// <content type="application/xml"> - /// <m:properties/> - /// </content> - /// <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/" type="application/atom+xml;type=Entry" /> - ///</entr [rest of string was truncated]";. - /// </summary> - internal static string DataServicesAtomEntryXml { - get { - return ResourceManager.GetString("DataServicesAtomEntryXml", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" standalone="yes"?> - ///<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> - ///</uri>. - /// </summary> - internal static string DataServicesMetadataEntryXml { - get { - return ResourceManager.GetString("DataServicesMetadataEntryXml", resourceCulture); - } - } - } -} diff --git a/Simple.OData.Client/Properties/Resources.resx b/Simple.OData.Client/Properties/Resources.resx deleted file mode 100644 index 9064c7993..000000000 --- a/Simple.OData.Client/Properties/Resources.resx +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> - <data name="DataServicesAtomEntryXml" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\resources\dataservicesatomentryxml.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> - </data> - <data name="DataServicesMetadataEntryXml" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\resources\dataservicesmetadataentryxml.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> - </data> -</root> \ No newline at end of file diff --git a/Simple.OData.Client/RequestBuilder.cs b/Simple.OData.Client/RequestBuilder.cs deleted file mode 100644 index 4dd775308..000000000 --- a/Simple.OData.Client/RequestBuilder.cs +++ /dev/null @@ -1,49 +0,0 @@ - -using System.Net; - -namespace Simple.OData.Client -{ - abstract class RequestBuilder - { - public string UrlBase { get; private set; } - public ICredentials Credentials { get; private set; } - public string Host - { - get - { - if (string.IsNullOrEmpty(UrlBase)) return null; - var substr = UrlBase.Substring(UrlBase.IndexOf("//") + 2); - return substr.Substring(0, substr.IndexOf("/")); - } - } - - public RequestBuilder(string urlBase, ICredentials credentials) - { - this.UrlBase = urlBase; - this.Credentials = credentials; - } - - protected internal string CreateRequestUrl(string command) - { - string url = string.IsNullOrEmpty(UrlBase) ? "http://" : UrlBase; - if (!url.EndsWith("/")) - url += "/"; - return url + command; - } - - protected HttpWebRequest CreateWebRequest(string uri) - { - var request = (HttpWebRequest) WebRequest.Create(uri); - request.Credentials = this.Credentials; - if (this.Credentials != null) - { - request.PreAuthenticate = true; - request.KeepAlive = true; - } - return request; - } - - public abstract void AddCommandToRequest(HttpCommand command); - public abstract int GetContentId(object content); - } -} diff --git a/Simple.OData.Client/RequestRunner.cs b/Simple.OData.Client/RequestRunner.cs deleted file mode 100644 index 6c72cee48..000000000 --- a/Simple.OData.Client/RequestRunner.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net; -using Simple.NExtLib.IO; - -namespace Simple.OData.Client -{ - abstract class RequestRunner - { - public Action<HttpWebRequest> BeforeRequest { get; set; } - public Action<HttpWebResponse> AfterResponse { get; set; } - - public string Request(HttpWebRequest request) - { - using (var response = TryRequest(request)) - { - return TryGetResponseBody(response); - } - } - - public HttpWebResponse TryRequest(HttpWebRequest request) - { - try - { - if (this.BeforeRequest != null) - this.BeforeRequest(request); - - var response = (HttpWebResponse)request.GetResponse(); - - if (this.AfterResponse != null) - this.AfterResponse(response); - - return response; - } - catch (WebException ex) - { - throw WebRequestException.CreateFromWebException(ex); - } - } - - public abstract IEnumerable<IDictionary<string, object>> FindEntries(HttpCommand command, bool scalarResult, bool setTotalCount, out int totalCount); - public abstract IDictionary<string, object> GetEntry(HttpCommand command); - public abstract IDictionary<string, object> InsertEntry(HttpCommand command, bool resultRequired); - public abstract int UpdateEntry(HttpCommand command); - public abstract int DeleteEntry(HttpCommand command); - public abstract IEnumerable<IEnumerable<IEnumerable<KeyValuePair<string, object>>>> ExecuteFunction(HttpCommand command); - - private static string TryGetResponseBody(HttpWebResponse response) - { - if (response != null) - { - var stream = response.GetResponseStream(); - if (stream != null) - { - return QuickIO.StreamToString(stream); - } - } - - return String.Empty; - } - } -} diff --git a/Simple.OData.Client/Resources/DataServicesAtomEntryXml.txt b/Simple.OData.Client/Resources/DataServicesAtomEntryXml.txt deleted file mode 100644 index c28c9f102..000000000 --- a/Simple.OData.Client/Resources/DataServicesAtomEntryXml.txt +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> - <title /> - <updated/> - <author> - <name /> - </author> - <id /> - <category scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/> - <content type="application/xml"> - <m:properties/> - </content> - <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/" type="application/atom+xml;type=Entry" /> -</entry> \ No newline at end of file diff --git a/Simple.OData.Client/Resources/DataServicesMetadataEntryXml.txt b/Simple.OData.Client/Resources/DataServicesMetadataEntryXml.txt deleted file mode 100644 index 2f6bdad8a..000000000 --- a/Simple.OData.Client/Resources/DataServicesMetadataEntryXml.txt +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> -</uri> \ No newline at end of file diff --git a/Simple.OData.Client/RestVerbs.cs b/Simple.OData.Client/RestVerbs.cs deleted file mode 100644 index 95389b286..000000000 --- a/Simple.OData.Client/RestVerbs.cs +++ /dev/null @@ -1,14 +0,0 @@ - -namespace Simple.OData.Client -{ - public static class RestVerbs - { - // ReSharper disable InconsistentNaming - public const string GET = "GET"; - public const string POST = "POST"; - public const string PUT = "PUT"; - public const string MERGE = "MERGE"; - public const string DELETE = "DELETE"; - // ReSharper restore InconsistentNaming - } -} diff --git a/Simple.OData.Client/Schema/Association.cs b/Simple.OData.Client/Schema/Association.cs deleted file mode 100644 index 4b51bc814..000000000 --- a/Simple.OData.Client/Schema/Association.cs +++ /dev/null @@ -1,52 +0,0 @@ - -namespace Simple.OData.Client -{ - public class Association - { - private readonly string _actualName; - private readonly string _referenceTableName; - private readonly string _multiplicity; - - internal Association(string actualName, string referenceTableName, string multiplicity) - { - _actualName = actualName; - _referenceTableName = referenceTableName; - _multiplicity = multiplicity; - } - - public override string ToString() - { - return _actualName; - } - - public string HomogenizedActualName - { - get { return ActualName.Homogenize(); } - } - - public string ActualName - { - get { return _actualName; } - } - - public string HomogenizedReferenceTableName - { - get { return ReferenceTableName.Homogenize(); } - } - - public string ReferenceTableName - { - get { return _referenceTableName; } - } - - public string Multiplicity - { - get { return _multiplicity; } - } - - public bool IsMultiple - { - get { return _multiplicity.Contains("*"); } - } - } -} diff --git a/Simple.OData.Client/Schema/AssociationCollection.cs b/Simple.OData.Client/Schema/AssociationCollection.cs deleted file mode 100644 index f88fe63b8..000000000 --- a/Simple.OData.Client/Schema/AssociationCollection.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace Simple.OData.Client -{ - public class AssociationCollection : Collection<Association> - { - internal AssociationCollection() - { - } - - internal AssociationCollection(IEnumerable<Association> associations) - : base(associations.ToList()) - { - } - - public Association Find(string associationName) - { - var association = TryFind(associationName); - if (association == null) throw new UnresolvableObjectException(associationName, string.Format("Association {0} not found", associationName)); - return association; - } - - public bool Contains(string associationName) - { - return TryFind(associationName) != null; - } - - private Association TryFind(string associationName) - { - associationName = associationName.Homogenize(); - return this - .Where(c => c.HomogenizedActualName.Equals(associationName)) - .SingleOrDefault(); - } - } -} diff --git a/Simple.OData.Client/Schema/Column.cs b/Simple.OData.Client/Schema/Column.cs deleted file mode 100644 index cbc157dc8..000000000 --- a/Simple.OData.Client/Schema/Column.cs +++ /dev/null @@ -1,42 +0,0 @@ - -namespace Simple.OData.Client -{ - public class Column - { - private readonly string _actualName; - private readonly EdmPropertyType _propertyType; - private readonly bool _isNullable; - - internal Column(string actualName, EdmPropertyType propertyType, bool isNullable) - { - _actualName = actualName; - _propertyType = propertyType; - _isNullable = isNullable; - } - - public override string ToString() - { - return _actualName; - } - - public string HomogenizedName - { - get { return ActualName.Homogenize(); } - } - - public string ActualName - { - get { return _actualName; } - } - - public EdmPropertyType PropertyType - { - get { return _propertyType; } - } - - public bool IsNullable - { - get { return _isNullable; } - } - } -} diff --git a/Simple.OData.Client/Schema/ColumnCollection.cs b/Simple.OData.Client/Schema/ColumnCollection.cs deleted file mode 100644 index e75ce4740..000000000 --- a/Simple.OData.Client/Schema/ColumnCollection.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace Simple.OData.Client -{ - public class ColumnCollection : Collection<Column> - { - internal ColumnCollection() - { - } - - internal ColumnCollection(IEnumerable<Column> columns) - : base(columns.ToList()) - { - } - - public Column Find(string columnName) - { - var column = TryFind(columnName); - if (column == null) throw new UnresolvableObjectException(columnName, string.Format("Column {0} not found", columnName)); - return column; - } - - public bool Contains(string columnName) - { - return TryFind(columnName) != null; - } - - private Column TryFind(string columnName) - { - columnName = columnName.Homogenize(); - return this - .Where(c => c.HomogenizedName.Equals(columnName)) - .SingleOrDefault(); - } - } -} diff --git a/Simple.OData.Client/Schema/Function.cs b/Simple.OData.Client/Schema/Function.cs deleted file mode 100644 index dd65387f6..000000000 --- a/Simple.OData.Client/Schema/Function.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace Simple.OData.Client -{ - public class Function - { - private readonly string _actualName; - private readonly string _httpMethod; - private readonly string _tableName; - private readonly string _returnType; - private Collection<string> _parameters; - - internal Function(string name, string httpMethod, string tableName, string returnType, IEnumerable<string> parameters) - { - _actualName = name; - _httpMethod = httpMethod; - _tableName = tableName; - _returnType = returnType; - _parameters = new Collection<string>(parameters.ToList()); - } - - public override string ToString() - { - return _actualName; - } - - internal string HomogenizedName - { - get { return _actualName.Homogenize(); } - } - - public string ActualName - { - get { return _actualName; } - } - - public string HomogenizedTableName - { - get { return TableName.Homogenize(); } - } - - public string TableName - { - get { return _tableName; } - } - - public string ReturnType - { - get { return _returnType; } - } - - public string HttpMethod - { - get { return _httpMethod; } - } - - public Collection<string> Parameters - { - get { return _parameters; } - } - } -} diff --git a/Simple.OData.Client/Schema/FunctionCollection.cs b/Simple.OData.Client/Schema/FunctionCollection.cs deleted file mode 100644 index 5bd52cdf2..000000000 --- a/Simple.OData.Client/Schema/FunctionCollection.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace Simple.OData.Client -{ - public class FunctionCollection : Collection<Function> - { - internal FunctionCollection() - { - } - - internal FunctionCollection(IEnumerable<Function> functions) - : base(functions.ToList()) - { - } - - public Function Find(string functionName) - { - var function = TryFind(functionName); - - if (function == null) - { - throw new UnresolvableObjectException(functionName, string.Format("Function {0} not found", functionName)); - } - - return function; - } - - public bool Contains(string functionName) - { - return TryFind(functionName) != null; - } - - private Function TryFind(string functionName) - { - functionName = functionName.Homogenize(); - return this - .Where(f => f.HomogenizedName.Equals(functionName)) - .SingleOrDefault(); - } - } -} \ No newline at end of file diff --git a/Simple.OData.Client/Schema/ISchema.cs b/Simple.OData.Client/Schema/ISchema.cs deleted file mode 100644 index d96a9fd21..000000000 --- a/Simple.OData.Client/Schema/ISchema.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections.Generic; - -namespace Simple.OData.Client -{ - public interface ISchema - { - string TypesNamespace { get; } - string ContainersNamespace { get; } - IEnumerable<Table> Tables { get; } - bool HasTable(string tableName); - Table FindTable(string tableName); - Table FindBaseTable(string tablePath); - Table FindConcreteTable(string tablePath); - Column FindColumn(string tablePath, string columnName); - Association FindAssociation(string tablePath, string associationName); - IEnumerable<Function> Functions { get; } - bool HasFunction(string functionName); - Function FindFunction(string functionName); - IEnumerable<EdmEntityType> EntityTypes { get; } - IEnumerable<EdmComplexType> ComplexTypes { get; } - } -} diff --git a/Simple.OData.Client/Schema/Key.cs b/Simple.OData.Client/Schema/Key.cs deleted file mode 100644 index 3300ae052..000000000 --- a/Simple.OData.Client/Schema/Key.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - public sealed class Key - { - private readonly string[] _columns; - - internal Key(IEnumerable<string> columns) - { - _columns = columns.ToArray(); - } - - public string this[int index] - { - get { return _columns[index]; } - } - - public IEnumerable<string> AsEnumerable() - { - return _columns.AsEnumerable(); - } - } -} diff --git a/Simple.OData.Client/Schema/Schema.cs b/Simple.OData.Client/Schema/Schema.cs deleted file mode 100644 index 0ce1c6095..000000000 --- a/Simple.OData.Client/Schema/Schema.cs +++ /dev/null @@ -1,180 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Net; - -namespace Simple.OData.Client -{ - class Schema : ISchema - { - private static readonly ConcurrentDictionary<string, Schema> Instances = new ConcurrentDictionary<string, Schema>(); - - private readonly SchemaProvider _schemaProvider; - private readonly string _typesNamespace; - private readonly string _containersNamespace; - private readonly Lazy<TableCollection> _lazyTables; - private readonly Lazy<FunctionCollection> _lazyFunctions; - private readonly Lazy<List<EdmEntityType>> _lazyEntityTypes; - private readonly Lazy<List<EdmComplexType>> _lazyComplexTypes; - - private Schema(SchemaProvider schemaProvider) - { - _schemaProvider = schemaProvider; - _typesNamespace = _schemaProvider.GetTypesNamespace(); - _containersNamespace = _schemaProvider.GetContainersNamespace(); - _lazyTables = new Lazy<TableCollection>(CreateTableCollection); - _lazyFunctions = new Lazy<FunctionCollection>(CreateFunctionCollection); - _lazyEntityTypes = new Lazy<List<EdmEntityType>>(CreateEntityTypeCollection); - _lazyComplexTypes = new Lazy<List<EdmComplexType>>(CreateComplexTypeCollection); - } - - internal SchemaProvider SchemaProvider - { - get { return _schemaProvider; } - } - - public string TypesNamespace - { - get { return _typesNamespace; } - } - - public string ContainersNamespace - { - get { return _containersNamespace; } - } - - public IEnumerable<Table> Tables - { - get { return _lazyTables.Value.AsEnumerable(); } - } - - public bool HasTable(string tableName) - { - return _lazyTables.Value.Contains(tableName); - } - - public Table FindTable(string tableName) - { - return _lazyTables.Value.Find(tableName); - } - - public Table FindBaseTable(string tablePath) - { - return this.FindTable(tablePath.Split('/').First()); - } - - public Table FindConcreteTable(string tablePath) - { - var items = tablePath.Split('/'); - if (items.Count() > 1) - { - var baseTable = this.FindTable(items[0]); - var table = string.IsNullOrEmpty(items[1]) - ? baseTable - : baseTable.FindDerivedTable(items[1]); - return table; - } - else - { - return this.FindTable(tablePath); - } - } - - public Column FindColumn(string tablePath, string columnName) - { - var baseTable = this.FindBaseTable(tablePath); - var concreteTable = this.FindConcreteTable(tablePath); - if (baseTable == concreteTable) - { - return concreteTable.FindColumn(columnName); - } - else - { - if (concreteTable.HasAssociation(columnName)) - return concreteTable.FindColumn(columnName); - else - return baseTable.FindColumn(columnName); - } - } - - public Association FindAssociation(string tablePath, string associationName) - { - var baseTable = this.FindBaseTable(tablePath); - var concreteTable = this.FindConcreteTable(tablePath); - if (baseTable == concreteTable) - { - return concreteTable.FindAssociation(associationName); - } - else - { - if (concreteTable.HasAssociation(associationName)) - return concreteTable.FindAssociation(associationName); - else - return baseTable.FindAssociation(associationName); - } - } - - public IEnumerable<Function> Functions - { - get { return _lazyFunctions.Value.AsEnumerable(); } - } - - public bool HasFunction(string functionName) - { - return _lazyFunctions.Value.Contains(functionName); - } - - public Function FindFunction(string functionName) - { - return _lazyFunctions.Value.Find(functionName); - } - - public IEnumerable<EdmEntityType> EntityTypes - { - get { return _lazyEntityTypes.Value.AsEnumerable(); } - } - - public IEnumerable<EdmComplexType> ComplexTypes - { - get { return _lazyComplexTypes.Value.AsEnumerable(); } - } - - private TableCollection CreateTableCollection() - { - return new TableCollection(_schemaProvider.GetTables() - .Select(table => new Table(table.ActualName, table.EntityType, null, this))); - } - - private FunctionCollection CreateFunctionCollection() - { - return new FunctionCollection(_schemaProvider.GetFunctions()); - } - - private List<EdmEntityType> CreateEntityTypeCollection() - { - return new List<EdmEntityType>(_schemaProvider.GetEntityTypes()); - } - - private List<EdmComplexType> CreateComplexTypeCollection() - { - return new List<EdmComplexType>(_schemaProvider.GetComplexTypes()); - } - - internal static Schema Get(string urlBase, ICredentials credentials = null) - { - return Instances.GetOrAdd(urlBase, - sp => new Schema(Client.SchemaProvider.FromUrl(urlBase, credentials))); - } - - internal static Schema Get(SchemaProvider schemaProvider) - { - return new Schema(schemaProvider); - } - - internal static void ClearCache() - { - Instances.Clear(); - } - } -} diff --git a/Simple.OData.Client/Schema/SchemaProvider.cs b/Simple.OData.Client/Schema/SchemaProvider.cs deleted file mode 100644 index 49b578c2f..000000000 --- a/Simple.OData.Client/Schema/SchemaProvider.cs +++ /dev/null @@ -1,200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; - -namespace Simple.OData.Client -{ - class SchemaProvider - { - private readonly Lazy<EdmSchema> _metadata; - private readonly Lazy<string> _metadataString; - private readonly Lazy<Schema> _schema; - - private SchemaProvider(string urlBase, ICredentials credentials, string metadataString) - { - if (!string.IsNullOrEmpty(metadataString)) - { - _metadataString = new Lazy<string>(() => metadataString); - } - else - { - _metadataString = new Lazy<string>(() => RequestMetadataAsString(urlBase, credentials)); - } - _metadata = new Lazy<EdmSchema>(() => new ODataFeedReader().GetSchema(_metadataString.Value)); - _schema = new Lazy<Schema>(() => Schema.Get(this)); - } - - public static SchemaProvider FromUrl(string urlBase, ICredentials credentials) - { - return new SchemaProvider(urlBase, credentials, null); - } - - public static SchemaProvider FromMetadata(string metadataString) - { - return new SchemaProvider(null, null, metadataString); - } - - public Schema Schema - { - get { return _schema.Value; } - } - - public string SchemaAsString - { - get { return _metadataString.Value; } - } - - public string GetTypesNamespace() - { - return _metadata.Value.TypesNamespace; - } - - public string GetContainersNamespace() - { - return _metadata.Value.ContainersNamespace; - } - - public IEnumerable<Table> GetTables() - { - return from s in GetEntitySets() - from et in GetEntitySetType(s) - select new Table(s.Name, et, null, _schema.Value); - } - - public IEnumerable<Table> GetDerivedTables(Table table) - { - return from et in _metadata.Value.EntityTypes - where et.BaseType != null && et.BaseType.Name == table.EntityType.Name - select new Table(et.Name, et, table, _schema.Value); - } - - public IEnumerable<Column> GetColumns(Table table) - { - return from t in GetEntityTypeWithBaseTypes(table.EntityType) - from p in t.Properties - select new Column(p.Name, p.Type, p.Nullable); - } - - public IEnumerable<Association> GetAssociations(Table table) - { - var principals = from e in _metadata.Value.EntityContainers - where e.IsDefaulEntityContainer - from s in e.AssociationSets - where s.End.First().EntitySet == table.ActualName - from a in _metadata.Value.Associations - where s.Association == GetQualifiedName(_metadata.Value.TypesNamespace, a.Name) - from n in a.End - where n.Role == s.End.Last().Role - select CreateAssociation(s.End.Last(), n); - var dependents = from e in _metadata.Value.EntityContainers - where e.IsDefaulEntityContainer - from s in e.AssociationSets - where s.End.Last().EntitySet == table.ActualName - from a in _metadata.Value.Associations - where s.Association == GetQualifiedName(_metadata.Value.TypesNamespace, a.Name) - from n in a.End - where n.Role == s.End.First().Role - select CreateAssociation(s.End.First(), n); - return principals.Union(dependents); - } - - public Key GetPrimaryKey(Table table) - { - return (from s in GetEntitySets() - where s.Name == table.ActualName - from et in GetEntitySetType(s) - from t in GetEntityTypeWithBaseTypes(et) - where t.Key != null - select new Key(t.Key.Properties)).SingleOrDefault(); - } - - public IEnumerable<Function> GetFunctions() - { - return from e in _metadata.Value.EntityContainers - where e.IsDefaulEntityContainer - from f in e.FunctionImports - select CreateFunction(f); - } - - public IEnumerable<EdmEntityType> GetEntityTypes() - { - return from t in _metadata.Value.EntityTypes - select t; - } - - public IEnumerable<EdmComplexType> GetComplexTypes() - { - return from t in _metadata.Value.ComplexTypes - select t; - } - - private IEnumerable<EdmEntitySet> GetEntitySets() - { - return from e in _metadata.Value.EntityContainers - where e.IsDefaulEntityContainer - from s in e.EntitySets - select s; - } - - private IEnumerable<EdmEntityType> GetEntitySetType(EdmEntitySet entitySet) - { - return from et in _metadata.Value.EntityTypes - where entitySet.EntityType.Split('.').Last() == et.Name - select et; - } - - private string GetQualifiedName(string schemaName, string name) - { - return string.IsNullOrEmpty(schemaName) ? name : string.Format("{0}.{1}", schemaName, name); - } - - private Association CreateAssociation(EdmAssociationSetEnd associationSetEnd, EdmAssociationEnd associationEnd) - { - return new Association(associationSetEnd.Role, associationSetEnd.EntitySet, associationEnd.Multiplicity); - } - - private Function CreateFunction(EdmFunctionImport f) - { - return new Function( - f.Name, - f.HttpMethod, - f.EntitySet, - f.ReturnType == null ? null : f.ReturnType.Name, - f.Parameters.Select(p => p.Name)); - } - - private IEnumerable<EdmEntityType> GetEntityTypeWithBaseTypes(EdmEntityType entityType) - { - if (entityType.BaseType == null) - { - yield return entityType; - } - else - { - var baseTypes = GetEntityTypeWithBaseTypes(entityType.BaseType); - foreach (var baseType in baseTypes) - { - yield return baseType; - } - yield return entityType; - } - } - - private string RequestMetadataAsString(string urlBase, ICredentials credentials = null) - { - var requestBuilder = new CommandRequestBuilder(urlBase, credentials); - var command = HttpCommand.Get(ODataCommand.MetadataLiteral); - requestBuilder.AddCommandToRequest(command); - using (var response = new CommandRequestRunner().TryRequest(command.Request)) - { - if (response.StatusCode == HttpStatusCode.OK) - { - return new ODataFeedReader().GetSchemaAsString(response.GetResponseStream()); - } - } - // TODO - return null; - } - } -} diff --git a/Simple.OData.Client/Schema/Table.cs b/Simple.OData.Client/Schema/Table.cs deleted file mode 100644 index 444a85cb2..000000000 --- a/Simple.OData.Client/Schema/Table.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Simple.OData.Client -{ - /// <summary> - /// Represents an OData table and provides CRUD operations against it. - /// </summary> - public class Table - { - private readonly Schema _schema; - private readonly string _actualName; - private readonly EdmEntityType _entityType; - private readonly Table _baseTable; - private readonly Lazy<TableCollection> _lazyDerivedTables; - private readonly Lazy<ColumnCollection> _lazyColumns; - private readonly Lazy<AssociationCollection> _lazyAssociations; - private readonly Lazy<Key> _lazyPrimaryKey; - - internal Table(string name, EdmEntityType entityType, Table baseTable, Schema schema) - { - _actualName = name; - _entityType = entityType; - _baseTable = baseTable; - _schema = schema; - _lazyDerivedTables = new Lazy<TableCollection>(GetDerivedTables); - _lazyColumns = new Lazy<ColumnCollection>(GetColumns); - _lazyAssociations = new Lazy<AssociationCollection>(GetAssociations); - _lazyPrimaryKey = new Lazy<Key>(GetPrimaryKey); - } - - public override string ToString() - { - return _actualName; - } - - internal string HomogenizedName - { - get { return _actualName.Homogenize(); } - } - - public string ActualName - { - get { return _actualName; } - } - - public EdmEntityType EntityType - { - get { return _entityType; } - } - - public Table BaseTable - { - get { return _baseTable; } - } - - public Table FindDerivedTable(string tableName) - { - return _lazyDerivedTables.Value.Find(tableName); - } - - public bool HasDerivedTable(string tableName) - { - return _lazyDerivedTables.Value.Contains(tableName); - } - - public IEnumerable<Column> Columns - { - get { return _lazyColumns.Value.AsEnumerable(); } - } - - public Column FindColumn(string columnName) - { - var columns = _lazyColumns.Value; - try - { - return columns.Find(columnName); - } - catch (UnresolvableObjectException ex) - { - string qualifiedName = _actualName + "." + ex.ObjectName; - throw new UnresolvableObjectException(qualifiedName, string.Format("Column {0} not found", qualifiedName), ex); - } - } - - public bool HasColumn(string columnName) - { - return _lazyColumns.Value.Contains(columnName); - } - - public IEnumerable<Association> Associations - { - get { return _lazyAssociations.Value.AsEnumerable(); } - } - - public Association FindAssociation(string associationName) - { - var associations = _lazyAssociations.Value; - try - { - return associations.Find(associationName); - } - catch (UnresolvableObjectException ex) - { - string qualifiedName = _actualName + "." + ex.ObjectName; - throw new UnresolvableObjectException(qualifiedName, string.Format("Association {0} not found", qualifiedName), ex); - } - } - - public bool HasAssociation(string associationName) - { - return _lazyAssociations.Value.Contains(associationName); - } - - public Key PrimaryKey - { - get { return _lazyPrimaryKey.Value; } - } - - public IDictionary<string, object> GetKey(string tableName, IDictionary<string, object> record) - { - var keyNames = GetKeyNames(); - return record.Where(x => keyNames.Contains(x.Key)).ToIDictionary(); - } - - public IList<string> GetKeyNames() - { - return this.PrimaryKey != null && this.PrimaryKey.AsEnumerable().Any() - ? this.PrimaryKey.AsEnumerable().ToList() - : _baseTable != null - ? _baseTable.GetKeyNames() - : new string[] {}; - } - - private TableCollection GetDerivedTables() - { - return new TableCollection(_schema.SchemaProvider.GetDerivedTables(this)); - } - - private ColumnCollection GetColumns() - { - return new ColumnCollection(_schema.SchemaProvider.GetColumns(this)); - } - - private AssociationCollection GetAssociations() - { - return new AssociationCollection(_schema.SchemaProvider.GetAssociations(this)); - } - - private Key GetPrimaryKey() - { - return _schema.SchemaProvider.GetPrimaryKey(this); - } - } -} diff --git a/Simple.OData.Client/Schema/TableCollection.cs b/Simple.OData.Client/Schema/TableCollection.cs deleted file mode 100644 index e10d1e6df..000000000 --- a/Simple.OData.Client/Schema/TableCollection.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace Simple.OData.Client -{ - public class TableCollection : Collection<Table> - { - public TableCollection() - { - } - - public TableCollection(IEnumerable<Table> tables) - : base(tables.ToList()) - { - } - - /// <summary> - /// Finds the Table with a name most closely matching the specified table name. - /// This method will try an exact match first, then a case-insensitve search, then a pluralized or singular version. - /// </summary> - /// <param name="tableName">Name of the table.</param> - /// <returns>A <see cref="Table"/> if a match is found; otherwise, <c>null</c>.</returns> - public Table Find(string tableName) - { - var table = TryFind(tableName) - ?? FindTableWithPluralName(tableName) - ?? FindTableWithSingularName(tableName); - - if (table == null) - { - throw new UnresolvableObjectException(tableName, string.Format("Table {0} not found", tableName)); - } - - return table; - } - - private Table FindTableWithSingularName(string tableName) - { - return TryFind(tableName.Singularize()); - } - - private Table FindTableWithPluralName(string tableName) - { - return TryFind(tableName.Pluralize()); - } - - public bool Contains(string tableName) - { - return TryFind(tableName) != null; - } - - private Table TryFind(string tableName) - { - tableName = tableName.Homogenize(); - return this - .Where(t => t.HomogenizedName.Equals(tableName)) - .SingleOrDefault(); - } - } -} diff --git a/Simple.OData.Client/Simple.OData.Client.csproj b/Simple.OData.Client/Simple.OData.Client.csproj deleted file mode 100644 index 3e1948543..000000000 --- a/Simple.OData.Client/Simple.OData.Client.csproj +++ /dev/null @@ -1,133 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{C20A3959-4895-41F8-86E2-7DED294FD904}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.OData.Client</RootNamespace> - <AssemblyName>Simple.OData.Client</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Web" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="BatchRequestBuilder.cs" /> - <Compile Include="BatchRequestRunner.cs" /> - <Compile Include="Edm\EdmSchemaParser.cs" /> - <Compile Include="EntryMembers.cs" /> - <Compile Include="Filter\ExpressionContext.cs" /> - <Compile Include="Filter\ExpressionFunction.cs" /> - <Compile Include="Filter\ExpressionOperator.cs" /> - <Compile Include="Filter\FilterExpression.cs" /> - <Compile Include="Filter\FilterExpression.Operators.cs" /> - <Compile Include="Filter\FilterExpression.Format.cs" /> - <Compile Include="Filter\FunctionMapping.cs" /> - <Compile Include="IClient.cs" /> - <Compile Include="ICommand.cs" /> - <Compile Include="ODataClientSettings.cs" /> - <Compile Include="ODataClientWithCommand.cs" /> - <Compile Include="CommandRequestBuilder.cs" /> - <Compile Include="CommandRequestRunner.cs" /> - <Compile Include="Edm\EdmTypeSerializer.cs" /> - <Compile Include="Edm\EdmPropertyType.cs" /> - <Compile Include="Edm\EdmSchema.cs" /> - <Compile Include="Edm\EdmType.cs" /> - <Compile Include="IClientWithCommand.cs" /> - <Compile Include="ODataBatch.cs" /> - <Compile Include="ODataCommand.cs" /> - <Compile Include="ODataFeedWriter.cs" /> - <Compile Include="ODataFilter.cs" /> - <Compile Include="Pluralizer.cs" /> - <Compile Include="Schema\ISchema.cs" /> - <Compile Include="ValueFormatter.cs" /> - <Compile Include="Extensions\HomogenizeEx.cs" /> - <Compile Include="IPluralizer.cs" /> - <Compile Include="Extensions\StringExtensions.cs" /> - <Compile Include="HttpCommand.cs" /> - <Compile Include="ODataFeedReader.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="RequestBuilder.cs" /> - <Compile Include="ODataClient.cs" /> - <Compile Include="RequestRunner.cs" /> - <Compile Include="Properties\Resources.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>Resources.resx</DependentUpon> - </Compile> - <Compile Include="RestVerbs.cs" /> - <Compile Include="Schema\Association.cs" /> - <Compile Include="Schema\AssociationCollection.cs" /> - <Compile Include="Schema\Column.cs" /> - <Compile Include="Schema\ColumnCollection.cs" /> - <Compile Include="Schema\Schema.cs" /> - <Compile Include="Schema\Function.cs" /> - <Compile Include="Schema\FunctionCollection.cs" /> - <Compile Include="Schema\Key.cs" /> - <Compile Include="Schema\SchemaProvider.cs" /> - <Compile Include="Schema\Table.cs" /> - <Compile Include="Schema\TableCollection.cs" /> - <Compile Include="WebRequestException.cs" /> - <Compile Include="UnresolvableObjectException.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="Resources\DataServicesMetadataEntryXml.txt" /> - <None Include="Simple.OData.Client.nuspec" /> - </ItemGroup> - <ItemGroup> - <None Include="Resources\DataServicesAtomEntryXml.txt" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Simple.NExtLib\Simple.NExtLib.csproj"> - <Project>{4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}</Project> - <Name>Simple.NExtLib</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Properties\Resources.resx"> - <Generator>ResXFileCodeGenerator</Generator> - <LastGenOutput>Resources.Designer.cs</LastGenOutput> - <SubType>Designer</SubType> - </EmbeddedResource> - </ItemGroup> - <ItemGroup /> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.OData.Client/Simple.OData.Client.nuspec b/Simple.OData.Client/Simple.OData.Client.nuspec deleted file mode 100644 index fe64abf47..000000000 --- a/Simple.OData.Client/Simple.OData.Client.nuspec +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <id>Simple.OData.Client</id> - <version>$version$</version> - <authors>$author$</authors> - <owners>Vagif Abilov</owners> - <description>$description$</description> - <projectUrl>https://github.com/simplefx/Simple.OData</projectUrl> - <licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl> - <iconUrl>http://www.odata.org/images/OData_logo_MS_small.png</iconUrl> - <tags>odata data .net40 rest</tags> - <language>en-us</language> - <dependencies> - </dependencies> - </metadata> - <files> - <file src="bin\release\Simple.NExtLib.dll" target="lib\net40" /> - </files> -</package> diff --git a/Simple.OData.Client/UnresolvableObjectException.cs b/Simple.OData.Client/UnresolvableObjectException.cs deleted file mode 100644 index 26301e4bb..000000000 --- a/Simple.OData.Client/UnresolvableObjectException.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Runtime.Serialization; - -namespace Simple.OData.Client -{ - [Serializable] - public sealed class UnresolvableObjectException : Exception - { - public UnresolvableObjectException() - { - } - - public UnresolvableObjectException(string objectName) - { - ObjectName = objectName; - } - - public UnresolvableObjectException(string objectName, string message) - : base(message) - { - ObjectName = objectName; - } - - public UnresolvableObjectException(string objectName, string message, Exception inner) - : base(message, inner) - { - ObjectName = objectName; - } - - private UnresolvableObjectException( - SerializationInfo info, - StreamingContext context) - : base(info, context) - { - ObjectName = info.GetString("ObjectName"); - } - - public string ObjectName - { - get { return Data.Contains("ObjectName") ? (Data["ObjectName"] != null ? Data["ObjectName"].ToString() : "{{null}}") : null; } - private set { Data["ObjectName"] = value; } - } - } -} diff --git a/Simple.OData.Client/ValueFormatter.cs b/Simple.OData.Client/ValueFormatter.cs deleted file mode 100644 index 0eda63fd9..000000000 --- a/Simple.OData.Client/ValueFormatter.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using Simple.NExtLib; - -namespace Simple.OData.Client -{ - internal class ValueFormatter - { - enum FormattingStyle - { - QueryString, - Content - }; - - public ValueFormatter() - { - } - - public string Format(IDictionary<string, object> keyValues, string separator = ",") - { - return string.Join(separator, keyValues.Select(x => string.Format("{0}={1}", x.Key, FormatContentValue(x.Value)))); - } - - public string Format(IEnumerable<object> keyValues, string separator = ",") - { - return string.Join(separator, keyValues.Select(FormatContentValue)); - } - - public string FormatContentValue(object value) - { - return FormatValue(value, FormattingStyle.Content, null); - } - - public string FormatQueryStringValue(object value) - { - return FormatValue(value, FormattingStyle.QueryString, null); - } - - public string FormatExpressionValue(object value, ExpressionContext context) - { - return FormatValue(value, FormattingStyle.Content, context); - } - - private string FormatValue(object value, FormattingStyle formattingStyle, ExpressionContext context) - { - return value == null ? "null" - : value is FilterExpression ? (value as FilterExpression).Format(context) - : value is string ? string.Format("'{0}'", value) - : value is DateTime ? ((DateTime)value).ToIso8601String() - : value is bool ? value.ToString().ToLower() - : (value is long || value is ulong) ? value + (formattingStyle == FormattingStyle.Content ? "L" : string.Empty) - : value is float ? ((float)value).ToString(CultureInfo.InvariantCulture) - : value is double ? ((double)value).ToString(CultureInfo.InvariantCulture) - : value is decimal ? ((decimal)value).ToString(CultureInfo.InvariantCulture) - : value.ToString(); - } - } -} diff --git a/Simple.OData.Client/WebRequestException.cs b/Simple.OData.Client/WebRequestException.cs deleted file mode 100644 index 1f5cba34d..000000000 --- a/Simple.OData.Client/WebRequestException.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Net; -using System.Runtime.Serialization; -using Simple.NExtLib.IO; - -namespace Simple.OData.Client -{ - [Serializable] - public class WebRequestException : Exception - { - private readonly string _code; - private readonly string _response; - - public static WebRequestException CreateFromWebException(WebException ex) - { - var response = ex.Response as HttpWebResponse; - return response == null ? - new WebRequestException(ex) : - new WebRequestException(ex.Message, response, ex); - } - - public WebRequestException(string message) - : base(message) - { - } - - public WebRequestException(string message, string code) - : base(message) - { - _code = code; - } - - public WebRequestException(string message, Exception inner) - : base(message, inner) - { - } - - public WebRequestException(string message, HttpWebResponse response, Exception inner) - : base(message, inner) - { - _code = response.StatusCode.ToString(); - _response = QuickIO.StreamToString(response.GetResponseStream()); - } - - public WebRequestException(string message, string code, Exception inner) - : base(message, inner) - { - _code = code; - } - - public WebRequestException(WebException inner) - : base("Unexpected WebException encountered", inner) - { - } - - protected WebRequestException( - SerializationInfo info, - StreamingContext context) : base(info, context) - { - } - - public string Code - { - get { return _code; } - } - - public string Response - { - get { return _response; } - } - } -} diff --git a/Simple.OData.TestUtils/EntityPluralizer.cs b/Simple.OData.TestUtils/EntityPluralizer.cs deleted file mode 100644 index 47a35e611..000000000 --- a/Simple.OData.TestUtils/EntityPluralizer.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Data.Entity.Design.PluralizationServices; -using System.Globalization; -using Simple.Data; -using Simple.Data.Extensions; - -namespace Simple.OData.TestUtils -{ - public class EntityPluralizer : IPluralizer - { - private readonly PluralizationService _pluralizationService = PluralizationService.CreateService(new CultureInfo("en-US")); - - public bool IsPlural(string word) - { - return _pluralizationService.IsPlural(word); - } - - public bool IsSingular(string word) - { - return _pluralizationService.IsSingular(word); - } - - public string Pluralize(string word) - { - bool upper = (word.IsAllUpperCase()); - word = _pluralizationService.Pluralize(word); - return upper ? word.ToUpper(_pluralizationService.Culture) : word; - } - - public string Singularize(string word) - { - return _pluralizationService.Singularize(word); - } - } -} diff --git a/Simple.OData.TestUtils/Properties/AssemblyInfo.cs b/Simple.OData.TestUtils/Properties/AssemblyInfo.cs deleted file mode 100644 index 4d74476b9..000000000 --- a/Simple.OData.TestUtils/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Simple.OData.TestService")] -[assembly: AssemblyDescription("")] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ca46af9b-1f26-4cc5-8e7f-62f7b3ec942e")] diff --git a/Simple.OData.TestUtils/Simple.OData.TestUtils.csproj b/Simple.OData.TestUtils/Simple.OData.TestUtils.csproj deleted file mode 100644 index ec36ed36b..000000000 --- a/Simple.OData.TestUtils/Simple.OData.TestUtils.csproj +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.30703</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{858775EA-ECF6-458E-AD96-CF67CF730395}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Simple.OData.TestUtils</RootNamespace> - <AssemblyName>Simple.OData.TestUtils</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <RestorePackages>true</RestorePackages> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="Simple.Data, Version=0.18.3.1, Culture=neutral, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Simple.Data.Core.0.18.3.1\lib\net40\Simple.Data.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Data.Entity.Design" /> - <Reference Include="System.ServiceModel" /> - <Reference Include="System.ServiceModel.Web" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\CommonAssemblyInfo.cs"> - <Link>Properties\CommonAssemblyInfo.cs</Link> - </Compile> - <Compile Include="..\CommonAssemblyVersion.cs"> - <Link>Properties\CommonAssemblyVersion.cs</Link> - </Compile> - <Compile Include="EntityPluralizer.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="TestService.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file diff --git a/Simple.OData.TestUtils/TestService.cs b/Simple.OData.TestUtils/TestService.cs deleted file mode 100644 index 890fc7796..000000000 --- a/Simple.OData.TestUtils/TestService.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.ServiceModel.Web; -using System.Text; -using System.Threading; - -namespace Simple.OData.TestUtils -{ - public class TestService : IDisposable - { - private WebServiceHost _host; - private Uri _serviceUri; - private static int _lastHostId = 1; - - public TestService(Type serviceType) - { - for (int i = 0; i < 100; i++) - { - int hostId = Interlocked.Increment(ref _lastHostId); - this._serviceUri = new Uri("http://" + Environment.MachineName + "/Temporary_Listen_Addresses/SimpleODataTestService" + hostId.ToString() + "/"); - this._host = new WebServiceHost(serviceType, this._serviceUri); - try - { - this._host.Open(); - break; - } - catch (Exception) - { - this._host.Abort(); - this._host = null; - } - } - - if (this._host == null) - { - throw new InvalidOperationException("Could not open a service even after 100 tries."); - } - } - - public void Dispose() - { - if (this._host != null) - { - this._host.Close(); - this._host = null; - } - } - - public Uri ServiceUri - { - get { return this._serviceUri; } - } - } -} diff --git a/Simple.OData.TestUtils/packages.config b/Simple.OData.TestUtils/packages.config deleted file mode 100644 index c85087985..000000000 --- a/Simple.OData.TestUtils/packages.config +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Simple.Data.Core" version="0.18.3.1" targetFramework="net40" /> -</packages> \ No newline at end of file diff --git a/Simple.OData.V3.Client.nuspec b/Simple.OData.V3.Client.nuspec new file mode 100644 index 000000000..13c8057a6 --- /dev/null +++ b/Simple.OData.V3.Client.nuspec @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> + <id>Simple.OData.V3.Client</id> + <authors>Vagif Abilov</authors> + <version>0.0.0.0</version> + <owners>Vagif Abilov</owners> + <icon>images/Simple.OData.Client_128x128.png</icon> + <description> + Simple.OData.V3.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.V3.Client contains libraries that can work with OData feeds that implement V1-3 OData protocol. + To access V4 OData feeds use Simple.OData.V4.Client or Simple.OData.Client that can consume OData feeds of any version. + </description> + <summary> + Simple.OData.V3.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.V3.Client contains libraries that can work with OData feeds that implement V1-3 OData protocol. + To access V4 OData feeds use Simple.OData.V4.Client or Simple.OData.Client that can consume OData feeds of any version. + </summary> + <projectUrl>https://github.com/object/Simple.OData.Client</projectUrl> + <license type="expression">MIT</license> + <copyright>Copyright 2012-2021 Vagif Abilov and contributors</copyright> + <language>en-us</language> + <tags>odata data rest client portable pcl netfx net40 net45 netstandard netcore mono adnroid ios</tags> + <dependencies> + <group targetFramework="net461"> + <dependency id="Microsoft.Data.OData" version="[5.8.5,6)" /> + </group> + <group targetFramework="netstandard2.0"> + <dependency id="Microsoft.Data.OData" version="[5.8.5,6)" /> + </group> + </dependencies> + </metadata> + <files> + <file src="icons/Simple.OData.Client_128x128.png" target="images\" /> + <file src="icons/Simple.OData.Client_512x512.png" target="images\" /> + + <!-- NET461 --> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.dll" target="lib\net461\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.pdb" target="lib\net461\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.xml" target="lib\net461\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.dll" target="lib\net461\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.pdb" target="lib\net461\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.xml" target="lib\net461\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V3.Adapter\net461\Simple.OData.Client.V3.Adapter.dll" target="lib\net461\Simple.OData.Client.V3.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V3.Adapter\net461\Simple.OData.Client.V3.Adapter.pdb" target="lib\net461\Simple.OData.Client.V3.Adapter.pdb" /> + + + <!-- NETSTANDARD2.0 --> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.dll" target="lib\netstandard2.0\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.pdb" target="lib\netstandard2.0\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.xml" target="lib\netstandard2.0\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.dll" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.pdb" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.xml" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V3.Adapter\netstandard2.0\Simple.OData.Client.V3.Adapter.dll" target="lib\netstandard2.0\Simple.OData.Client.V3.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V3.Adapter\netstandard2.0\Simple.OData.Client.V3.Adapter.pdb" target="lib\netstandard2.0\Simple.OData.Client.V3.Adapter.pdb" /> + </files> +</package> diff --git a/Simple.OData.V4.Client.nuspec b/Simple.OData.V4.Client.nuspec new file mode 100644 index 000000000..c28d87b05 --- /dev/null +++ b/Simple.OData.V4.Client.nuspec @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> + <id>Simple.OData.V4.Client</id> + <authors>Vagif Abilov</authors> + <version>0.0.0.0</version> + <owners>Vagif Abilov</owners> + <icon>images/Simple.OData.Client_128x128.png</icon> + <description> + Simple.OData.V4.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.V4.Client contains libraries that can work with OData feeds that implement V4 OData protocol. + To access V3 OData feeds use Simple.OData.V4.Client or Simple.OData.Client that can consume OData feeds of any version. + </description> + <summary> + Simple.OData.V4.Client is a multiplatform OData client library supporting .NET 4.x, .NET Standard, .NET Core, iOS and Android. The adapter provides a great alternative to WCF Data Services client. It does not require generation of context or entity classes and fits RESTful nature of OData services. + The package Simple.OData.V4.Client contains libraries that can work with OData feeds that implement V4 OData protocol. + To access V3 OData feeds use Simple.OData.V3.Client or Simple.OData.Client that can consume OData feeds of any version. + </summary> + <projectUrl>https://github.com/object/Simple.OData.Client</projectUrl> + <license type="expression">MIT</license> + <copyright>Copyright 2012-2021 Vagif Abilov and contributors</copyright> + <language>en-us</language> + <tags>odata data rest client portable pcl netfx net40 net45 netstandard netcore mono adnroid ios</tags> + <dependencies> + <group targetFramework="net461"> + <dependency id="Microsoft.OData.Core" version="[7.9.4,8)" /> + <dependency id="System.Text.Json" version="[6.0.0,7)" /> + <dependency id="System.ValueTuple" version="[4.5.0,5)" /> + </group> + <group targetFramework="netstandard2.0"> + <dependency id="Microsoft.OData.Core" version="[7.9.4,8)" /> + <dependency id="System.Text.Json" version="[6.0.0,7)" /> + </group> + </dependencies> + </metadata> + <files> + <file src="icons/Simple.OData.Client_128x128.png" target="images\" /> + <file src="icons/Simple.OData.Client_512x512.png" target="images\" /> + + <!-- NET461 --> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.dll" target="lib\net461\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.pdb" target="lib\net461\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\net461\Simple.OData.Client.Core.xml" target="lib\net461\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.dll" target="lib\net461\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.pdb" target="lib\net461\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\net461\Simple.OData.Client.Dynamic.xml" target="lib\net461\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V4.Adapter\net461\Simple.OData.Client.V4.Adapter.dll" target="lib\net461\Simple.OData.Client.V4.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V4.Adapter\net461\Simple.OData.Client.V4.Adapter.pdb" target="lib\net461\Simple.OData.Client.V4.Adapter.pdb" /> + + + <!-- NETSTANDARD2.0 --> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.dll" target="lib\netstandard2.0\Simple.OData.Client.Core.dll" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.pdb" target="lib\netstandard2.0\Simple.OData.Client.Core.pdb" /> + <file src="build\Release\Simple.OData.Client.Core\netstandard2.0\Simple.OData.Client.Core.xml" target="lib\netstandard2.0\Simple.OData.Client.Core.xml" /> + + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.dll" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.dll" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.pdb" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.pdb" /> + <file src="build\Release\Simple.OData.Client.Dynamic\netstandard2.0\Simple.OData.Client.Dynamic.xml" target="lib\netstandard2.0\Simple.OData.Client.Dynamic.xml" /> + + <file src="build\Release\Simple.OData.Client.V4.Adapter\netstandard2.0\Simple.OData.Client.V4.Adapter.dll" target="lib\netstandard2.0\Simple.OData.Client.V4.Adapter.dll" /> + <file src="build\Release\Simple.OData.Client.V4.Adapter\netstandard2.0\Simple.OData.Client.V4.Adapter.pdb" target="lib\netstandard2.0\Simple.OData.Client.V4.Adapter.pdb" /> + </files> +</package> diff --git a/Simple.OData.sln b/Simple.OData.sln deleted file mode 100644 index 4db0450ef..000000000 --- a/Simple.OData.sln +++ /dev/null @@ -1,145 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.NExtLib", "Simple.NExtLib\Simple.NExtLib.csproj", "{4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Data.OData", "Simple.Data.OData\Simple.Data.OData.csproj", "{E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D1D23CCD-C556-480A-8817-6FD58817A0C8}" - ProjectSection(SolutionItems) = preProject - CommonAssemblyInfo.cs = CommonAssemblyInfo.cs - CommonAssemblyVersion.cs = CommonAssemblyVersion.cs - NugetPack.cmd = NugetPack.cmd - NugetPackOData.cmd = NugetPackOData.cmd - NugetPackODataClient.cmd = NugetPackODataClient.cmd - NugetPush.cmd = NugetPush.cmd - NugetPushOData.cmd = NugetPushOData.cmd - NugetPushODataClient.cmd = NugetPushODataClient.cmd - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Data.OData.NorthwindModel", "Simple.Data.OData.NorthwindModel\Simple.Data.OData.NorthwindModel.csproj", "{2A909E4D-6493-4D36-9FDE-786B89F9A387}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.OData.Client", "Simple.OData.Client\Simple.OData.Client.csproj", "{C20A3959-4895-41F8-86E2-7DED294FD904}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Data.OData.Tests", "Simple.Data.OData.Tests\Simple.Data.OData.Tests.csproj", "{96E43534-0CDC-4ECA-972E-4536055F8C63}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.NExtLib.Tests", "Simple.NExtLib.Tests\Simple.NExtLib.Tests.csproj", "{8DF17038-537D-45BE-B229-C99EECBB4EDC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.OData.Client.Tests", "Simple.OData.Client.Tests\Simple.OData.Client.Tests.csproj", "{898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.OData.TestUtils", "Simple.OData.TestUtils\Simple.OData.TestUtils.csproj", "{858775EA-ECF6-458E-AD96-CF67CF730395}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.NExtLib.TestUtils", "Simple.NExtLib.TestUtils\Simple.NExtLib.TestUtils.csproj", "{072F8BE4-81C1-4276-A9A5-1AEC87A84265}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Debug|x86.ActiveCfg = Debug|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4A191FAD-DC1D-46FC-A941-7DEB2C8C4C15}.Release|x86.ActiveCfg = Release|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Debug|x86.ActiveCfg = Debug|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E6EC2C3A-A7D8-41C3-ADCB-37B44F12B6F8}.Release|x86.ActiveCfg = Release|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Debug|x86.ActiveCfg = Debug|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2A909E4D-6493-4D36-9FDE-786B89F9A387}.Release|x86.ActiveCfg = Release|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Debug|x86.ActiveCfg = Debug|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Release|Any CPU.Build.0 = Release|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C20A3959-4895-41F8-86E2-7DED294FD904}.Release|x86.ActiveCfg = Release|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Debug|x86.ActiveCfg = Debug|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Release|Any CPU.Build.0 = Release|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96E43534-0CDC-4ECA-972E-4536055F8C63}.Release|x86.ActiveCfg = Release|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Debug|x86.ActiveCfg = Debug|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Release|Any CPU.Build.0 = Release|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8DF17038-537D-45BE-B229-C99EECBB4EDC}.Release|x86.ActiveCfg = Release|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Debug|x86.ActiveCfg = Debug|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Release|Any CPU.Build.0 = Release|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28}.Release|x86.ActiveCfg = Release|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Debug|Any CPU.Build.0 = Debug|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Debug|x86.ActiveCfg = Debug|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Release|Any CPU.ActiveCfg = Release|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Release|Any CPU.Build.0 = Release|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {858775EA-ECF6-458E-AD96-CF67CF730395}.Release|x86.ActiveCfg = Release|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Debug|Any CPU.Build.0 = Debug|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Debug|x86.ActiveCfg = Debug|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Release|Any CPU.ActiveCfg = Release|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Release|Any CPU.Build.0 = Release|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {072F8BE4-81C1-4276-A9A5-1AEC87A84265}.Release|x86.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2A909E4D-6493-4D36-9FDE-786B89F9A387} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {96E43534-0CDC-4ECA-972E-4536055F8C63} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {8DF17038-537D-45BE-B229-C99EECBB4EDC} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {898FFD08-B7FC-45FE-A6DD-5AE9C2280D28} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {858775EA-ECF6-458E-AD96-CF67CF730395} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {072F8BE4-81C1-4276-A9A5-1AEC87A84265} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - EndGlobalSection -EndGlobal diff --git a/build.cmd b/build.cmd new file mode 100644 index 000000000..c6134692d --- /dev/null +++ b/build.cmd @@ -0,0 +1 @@ +dotnet build Simple.OData.Client.sln -c Release \ No newline at end of file diff --git a/buildAndPack.cmd b/buildAndPack.cmd new file mode 100644 index 000000000..d1e380452 --- /dev/null +++ b/buildAndPack.cmd @@ -0,0 +1,17 @@ +@if "%1"=="" goto usage + +:build +dotnet build Simple.OData.Client.sln -c Release -p:VersionPrefix=%1 +@goto pack + +:pack +call nuget pack Simple.OData.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg +call nuget pack Simple.OData.V3.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg +call nuget pack Simple.OData.V4.Client.nuspec -Symbols -Version %1 -OutputDirectory build\packages -SymbolPackageFormat snupkg +@goto end + +:usage + echo Usage: buildAndPack version-number + @goto end + +:end \ No newline at end of file diff --git a/icons/Simple.OData.Client_128x128.png b/icons/Simple.OData.Client_128x128.png new file mode 100644 index 000000000..89689575d Binary files /dev/null and b/icons/Simple.OData.Client_128x128.png differ diff --git a/icons/Simple.OData.Client_512x512.png b/icons/Simple.OData.Client_512x512.png new file mode 100644 index 000000000..f2e66c561 Binary files /dev/null and b/icons/Simple.OData.Client_512x512.png differ diff --git a/paket.dependencies b/paket.dependencies new file mode 100644 index 000000000..9d12de9a3 --- /dev/null +++ b/paket.dependencies @@ -0,0 +1,8 @@ +source http://nuget.org/api/v2 + +group Build + source http://nuget.org/api/v2 + + nuget FAKE + nuget Nuget.CommandLine + nuget xunit.runner.console \ No newline at end of file diff --git a/paket.lock b/paket.lock new file mode 100644 index 000000000..8f823d74e --- /dev/null +++ b/paket.lock @@ -0,0 +1,8 @@ + + +GROUP Build +NUGET + remote: http://www.nuget.org/api/v2 + FAKE (4.64.13) + NuGet.CommandLine (4.6.2) + xunit.runner.console (2.3.1) diff --git a/sn.snk b/sn.snk new file mode 100644 index 000000000..76abf950a Binary files /dev/null and b/sn.snk differ diff --git a/src/ActionProviderImplementation/ActionAttribute.cs b/src/ActionProviderImplementation/ActionAttribute.cs new file mode 100644 index 000000000..6ab112337 --- /dev/null +++ b/src/ActionProviderImplementation/ActionAttribute.cs @@ -0,0 +1,36 @@ +using System; +using System.Data.Services.Providers; + +namespace ActionProviderImplementation; + +[AttributeUsage(AttributeTargets.Method)] +public class ActionAttribute : Attribute +{ + public ActionAttribute() + { + Binding = OperationParameterBindingKind.Always; + } + public OperationParameterBindingKind Binding { get; protected set; } + public string AvailabilityMethodName { get; protected set; } +} +public class OccasionallyBindableAction : ActionAttribute +{ + public OccasionallyBindableAction(string availabilityMethod) + { + AvailabilityMethodName = availabilityMethod; + Binding = OperationParameterBindingKind.Sometimes; + } +} +public class NonBindableAction : ActionAttribute +{ + public NonBindableAction() + { + Binding = OperationParameterBindingKind.Never; + } +} + +[AttributeUsage(AttributeTargets.Method)] +public class SkipCheckForFeeds : Attribute +{ + +} diff --git a/src/ActionProviderImplementation/ActionFactory.cs b/src/ActionProviderImplementation/ActionFactory.cs new file mode 100644 index 000000000..146693d5c --- /dev/null +++ b/src/ActionProviderImplementation/ActionFactory.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.Data.Services.Providers; +using System.Linq; +using System.Reflection; + +namespace ActionProviderImplementation; + +public class ActionFactory +{ + private readonly IDataServiceMetadataProvider _metadata; + + //TODO: make this list complete + private static readonly Type[] __primitives = new[] { + typeof(bool), + typeof(short), + typeof(int), + typeof(long), + typeof(string), + typeof(decimal), + typeof(Guid), + typeof(bool?), + typeof(short?), + typeof(int?), + typeof(long?), + typeof(decimal?), + typeof(Guid?) + }; + + public ActionFactory(IDataServiceMetadataProvider metadata) + { + _metadata = metadata; + } + + public IEnumerable<ServiceAction> GetActions(Type typeWithActions) + { + var actionInfos = ActionFinder.GetActionsFromType(typeWithActions).ToArray(); + + foreach (var actionInfo in actionInfos) + { + var method = actionInfo.ActionMethod; + + var actionName = method.Name; + var returnType = method.ReturnType == typeof(void) ? null : GetResourceType(method.ReturnType); + var resourceSet = GetResourceSet(returnType); + + var parameters = GetParameters(method, actionInfo.Binding != OperationParameterBindingKind.Never); + var action = new ServiceAction( + actionName, + returnType, + resourceSet, + actionInfo.Binding, + parameters + ) + { + + // Store the method associated with this Action. + CustomState = actionInfo + }; + action.SetReadOnly(); + yield return action; + } + } + // Only allow EntityType or IQueryable<EntityType> for the binding parameter + private ResourceType GetBindingParameterResourceType(Type type) + { + var resourceType = GetResourceType(type); + if (resourceType.ResourceTypeKind == ResourceTypeKind.EntityType) + { + return resourceType; + } + else if (resourceType.ResourceTypeKind == ResourceTypeKind.EntityCollection) + { + if (type.GetGenericTypeDefinition() == typeof(IQueryable<>)) + { + return resourceType; + } + } + + throw new Exception($"Type {type.FullName} is not a valid binding parameter"); + } + // Only allow Primitive/Complex or IEnumerable<Primitive>/IEnumerable<Complex> + private ResourceType GetParameterResourceType(Type type) + { + var resourceType = GetResourceType(type); + if (resourceType.ResourceTypeKind == ResourceTypeKind.EntityType) + { + throw new Exception($"Entity Types ({type.FullName}) MUST not be used as non-binding parameters."); + } + else if (resourceType.ResourceTypeKind == ResourceTypeKind.EntityCollection) + { + throw new Exception($"Entity Type Collections ({type.FullName}) MUST not be used as non-binding parameters."); + } + else if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IQueryable<>)) + { + throw new Exception("IQueryable<> is not supported for non-binding parameters."); + } + + return resourceType; + } + // Allow all types: Primitive/Complex/Entity and IQueryable<> and IEnumerable<> + private ResourceType GetResourceType(Type type) + { + if (type.IsGenericType) + { + var typeDef = type.GetGenericTypeDefinition(); + if (typeDef.GetGenericArguments().Count() == 1) + { + if (typeDef == typeof(IEnumerable<>) || typeDef == typeof(IQueryable<>)) + { + var elementResource = GetResourceType(type.GetGenericArguments().Single()); + if ((elementResource.ResourceTypeKind | ResourceTypeKind.EntityType) == ResourceTypeKind.EntityType) + { + return ResourceType.GetEntityCollectionResourceType(elementResource); + } + else + { + return ResourceType.GetCollectionResourceType(elementResource); + } + } + } + + throw new Exception($"Generic action parameter type {type} not supported"); + } + + if (ActionFactory.__primitives.Contains(type)) + { + return ResourceType.GetPrimitiveResourceType(type); + } + + var resourceType = _metadata.Types.SingleOrDefault(s => s.Name == type.Name); + if (resourceType == null) + { + throw new Exception($"Generic action parameter type {type} not supported"); + } + + return resourceType; + } + // Given a type try to find the resource set. + private ResourceSet GetResourceSet(ResourceType type) + { + if (type == null) + { + return null; + } + else if (type.ResourceTypeKind == ResourceTypeKind.EntityCollection) + { + var ecType = type as EntityCollectionResourceType; + return GetResourceSet(ecType.ItemType); + } + else if (type.ResourceTypeKind == ResourceTypeKind.EntityType) + { + var set = _metadata.ResourceSets.SingleOrDefault(rs => rs.ResourceType == type); + if (set != null) + { + return set; + } + else if (type.BaseType != null) + { + return GetResourceSet(type.BaseType); + } + } + + return null; + } + private IEnumerable<ServiceActionParameter> GetParameters(MethodInfo method, bool isBindable) + { + IEnumerable<ParameterInfo> parameters = method.GetParameters(); + if (isBindable) + { + var bindingParameter = parameters.First(); + yield return new ServiceActionParameter( + bindingParameter.Name, + GetBindingParameterResourceType(bindingParameter.ParameterType) + ); + parameters = parameters.Skip(1); + } + + foreach (var parameter in parameters) + { + yield return new ServiceActionParameter( + parameter.Name, + GetParameterResourceType(parameter.ParameterType) + ); + } + } +} diff --git a/src/ActionProviderImplementation/ActionFinder.cs b/src/ActionProviderImplementation/ActionFinder.cs new file mode 100644 index 000000000..502ddd3f8 --- /dev/null +++ b/src/ActionProviderImplementation/ActionFinder.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace ActionProviderImplementation; + +public static class ActionFinder +{ + public static IEnumerable<ActionInfo> GetActionsFromType(Type type) + { + var actionInfos = type + .GetMethods(BindingFlags.Public | BindingFlags.Instance) + .Select(m => new + { + Method = m, + Attribute = Attribute.GetCustomAttribute(m, typeof(ActionAttribute)) as ActionAttribute + }) + .Where(u => u.Attribute != null) + .Select(u => new ActionInfo( + u.Method, + u.Attribute.Binding, + u.Attribute.AvailabilityMethodName) + ).ToArray(); + return actionInfos; + } +} diff --git a/src/ActionProviderImplementation/ActionInfo.cs b/src/ActionProviderImplementation/ActionInfo.cs new file mode 100644 index 000000000..fd88e5e49 --- /dev/null +++ b/src/ActionProviderImplementation/ActionInfo.cs @@ -0,0 +1,101 @@ +using System; +using System.Linq; +using System.Reflection; +using System.Data.Services; +using System.Data.Services.Providers; + +namespace ActionProviderImplementation; + +public class ActionInfo +{ + public ActionInfo(MethodInfo actionMethod, OperationParameterBindingKind bindable, string availabilityMethodName) + { + ActionMethod = actionMethod; + Binding = bindable; + + if ((Binding == OperationParameterBindingKind.Sometimes)) + { + AvailabilityCheckMethod = GetAvailabilityMethod(availabilityMethodName); + if (AvailabilityCheckMethod.GetCustomAttributes(typeof(SkipCheckForFeeds), true).Length != 0) + { + SkipAvailabilityCheckForFeeds = true; + } + } + else + { + if (availabilityMethodName != null) + { + throw new Exception("Unexpected availabilityMethodName provided."); + } + } + } + + public MethodInfo ActionMethod { get; private set; } + + public OperationParameterBindingKind Binding { get; private set; } + + public void AssertAvailable(object context, object entity, bool inFeedContext) + { + if (entity == null) + { + return; + } + + if (!IsAvailable(context, entity, inFeedContext)) + { + throw new DataServiceException(404, "Action not found."); + } + } + + public bool IsAvailable(object context, object entity, bool inFeedContext) + { + if (Binding == OperationParameterBindingKind.Always) + { + return true; + } + else if (Binding == OperationParameterBindingKind.Never) + { + return true; // TODO: need a way to verify we are NOT being bound... although I think this is impossible. + } + else if (inFeedContext && SkipAvailabilityCheckForFeeds) + { + return true; + } + else + { + return (bool)AvailabilityCheckMethod.Invoke(context, new object[] { entity }); + } + } + + private MethodInfo AvailabilityCheckMethod { get; set; } + private bool SkipAvailabilityCheckForFeeds { get; set; } + private MethodInfo GetAvailabilityMethod(string availabilityMethodName) + { + if (availabilityMethodName == null) + { + throw new Exception("If the action is conditionally available you need to provide a method to calculate availability."); + } + + var declaringType = ActionMethod.DeclaringType; + var method = declaringType.GetMethod(availabilityMethodName); + + if (method == null) + { + throw new Exception($"Availability Method {availabilityMethodName} was not found on type {declaringType.FullName}"); + } + + if (method.ReturnType != typeof(bool)) + { + throw new Exception($"AvailabilityCheck method ({availabilityMethodName}) MUST return bool."); + } + + var actionBindingParameterType = ActionMethod.GetParameters().First().ParameterType; + var methodParameters = method.GetParameters(); + if (methodParameters.Count() != 1 || methodParameters.First().ParameterType != actionBindingParameterType) + { + throw new Exception($"AvailabilityCheck method was expected to have this signature 'bool {availabilityMethodName}({actionBindingParameterType.FullName})'"); + } + + return method; + } +} diff --git a/src/ActionProviderImplementation/ActionInvokable.cs b/src/ActionProviderImplementation/ActionInvokable.cs new file mode 100644 index 000000000..bdc969651 --- /dev/null +++ b/src/ActionProviderImplementation/ActionInvokable.cs @@ -0,0 +1,53 @@ +using System; +using System.Data.Services.Providers; +using System.Data.Services; + +namespace ActionProviderImplementation; + +public class ActionInvokable : IDataServiceInvokable +{ + private readonly ServiceAction _serviceAction; + private readonly Action _action; + private bool _hasRun = false; + private object _result; + + public ActionInvokable(DataServiceOperationContext operationContext, ServiceAction serviceAction, object site, object[] parameters, IParameterMarshaller marshaller) + { + _serviceAction = serviceAction; + var info = serviceAction.CustomState as ActionInfo; + var marshalled = marshaller.Marshall(operationContext, serviceAction, parameters); + + info.AssertAvailable(site, marshalled[0], true); + _action = () => CaptureResult(info.ActionMethod.Invoke(site, marshalled)); + } + public void CaptureResult(object o) + { + if (_hasRun) + { + throw new Exception("Invoke not available. This invokable has already been Invoked."); + } + + _hasRun = true; + _result = o; + } + public object GetResult() + { + if (!_hasRun) + { + throw new Exception("Results not available. This invokable hasn't been Invoked."); + } + + return _result; + } + public void Invoke() + { + try + { + _action(); + } + catch + { + throw new DataServiceException(500, $"Exception executing action {_serviceAction.Name}"); + } + } +} diff --git a/src/ActionProviderImplementation/ActionProvider.cs b/src/ActionProviderImplementation/ActionProvider.cs new file mode 100644 index 000000000..368696ff4 --- /dev/null +++ b/src/ActionProviderImplementation/ActionProvider.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Data.Services.Providers; +using System.Data.Services; + +namespace ActionProviderImplementation; + +public class ActionProvider : IDataServiceActionProvider +{ + private static readonly Dictionary<Type, List<ServiceAction>> _cache = new(); + private static readonly Dictionary<string, ServiceAction> _actionsByName = new(); + private readonly Type _instanceType; + private readonly object _context; + private readonly IParameterMarshaller _marshaller; + + public ActionProvider(object context, IParameterMarshaller marshaller) + { + _context = context; + _instanceType = context.GetType(); + _marshaller = marshaller; + } + + public bool AdvertiseServiceAction(DataServiceOperationContext operationContext, ServiceAction serviceAction, object resourceInstance, bool inFeed, ref Microsoft.Data.OData.ODataAction actionToSerialize) + { + var customState = serviceAction.CustomState as ActionInfo; + return customState.IsAvailable(_context, resourceInstance, inFeed); + } + + public IDataServiceInvokable CreateInvokable(DataServiceOperationContext operationContext, ServiceAction serviceAction, object[] parameters) + { + return new ActionInvokable(operationContext, serviceAction, _context, parameters, _marshaller); + } + + public IEnumerable<ServiceAction> GetServiceActions(DataServiceOperationContext operationContext) + { + return GetActions(operationContext); + } + + public IEnumerable<ServiceAction> GetServiceActionsByBindingParameterType(DataServiceOperationContext operationContext, ResourceType resourceType) + { + return GetActions(operationContext).Where(a => a.Parameters.Count > 0 && a.Parameters.First().ParameterType == resourceType); + } + + public bool TryResolveServiceAction(DataServiceOperationContext operationContext, string serviceActionName, out ServiceAction serviceAction) + { + if (_actionsByName.ContainsKey(serviceActionName)) + { + serviceAction = _actionsByName[serviceActionName]; + } + else + { + serviceAction = GetActions(operationContext).SingleOrDefault(a => a.Name == serviceActionName); + if (serviceAction != null) + { + _actionsByName[serviceActionName] = serviceAction; + } + } + + return serviceAction != null; + } + + private List<ServiceAction> GetActions(DataServiceOperationContext context) + { + if (_cache.ContainsKey(_instanceType)) + { + return _cache[_instanceType]; + } + + var metadata = context.GetService(typeof(IDataServiceMetadataProvider)) as IDataServiceMetadataProvider; + var factory = new ActionFactory(metadata); + + var actions = factory.GetActions(_instanceType).ToList(); + _cache[_instanceType] = actions; + + return actions; + } +} diff --git a/src/ActionProviderImplementation/ActionProviderImplementation.csproj b/src/ActionProviderImplementation/ActionProviderImplementation.csproj new file mode 100644 index 000000000..ccbae5eeb --- /dev/null +++ b/src/ActionProviderImplementation/ActionProviderImplementation.csproj @@ -0,0 +1,30 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net461</TargetFramework> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="EntityFramework" Version="6.4.4" /> + <PackageReference Include="Microsoft.Data.Services" Version="5.8.5" /> + <PackageReference Include="Microsoft.Data.Services.Client" Version="5.8.5" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + <!--Reference Include="System.ComponentModel.DataAnnotations" />--> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/ActionProviderImplementation/App.config b/src/ActionProviderImplementation/App.config new file mode 100644 index 000000000..524a9e6f8 --- /dev/null +++ b/src/ActionProviderImplementation/App.config @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> + <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> + </configSections> + <entityFramework> + <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> + <parameters> + <parameter value="MSSQLLocalDB"/> + </parameters> + </defaultConnectionFactory> + <providers> + <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/> + </providers> + </entityFramework> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> + </startup> +</configuration> diff --git a/src/ActionProviderImplementation/Bindable.cs b/src/ActionProviderImplementation/Bindable.cs new file mode 100644 index 000000000..9609ccf63 --- /dev/null +++ b/src/ActionProviderImplementation/Bindable.cs @@ -0,0 +1 @@ +namespace ActionProviderImplementation; diff --git a/src/ActionProviderImplementation/EntityFrameworkActionProvider.cs b/src/ActionProviderImplementation/EntityFrameworkActionProvider.cs new file mode 100644 index 000000000..fea7dc630 --- /dev/null +++ b/src/ActionProviderImplementation/EntityFrameworkActionProvider.cs @@ -0,0 +1,10 @@ +using System.Data.Entity; + +namespace ActionProviderImplementation; + +public class EntityFrameworkActionProvider : ActionProvider +{ + public EntityFrameworkActionProvider(DbContext dbContext) : base(dbContext, new EntityFrameworkParameterMarshaller()) + { + } +} diff --git a/src/ActionProviderImplementation/EntityFrameworkParameterMarshaller.cs b/src/ActionProviderImplementation/EntityFrameworkParameterMarshaller.cs new file mode 100644 index 000000000..725378478 --- /dev/null +++ b/src/ActionProviderImplementation/EntityFrameworkParameterMarshaller.cs @@ -0,0 +1,58 @@ +using System.Linq; +using System.Data.Services.Providers; +using System.Collections; +using System.Data.Entity.Core.Objects; +using System.Reflection; +using System.Data.Services; + +namespace ActionProviderImplementation; + +public class EntityFrameworkParameterMarshaller : IParameterMarshaller +{ + private static readonly MethodInfo CastMethodGeneric = typeof(Enumerable).GetMethod("Cast"); + private static readonly MethodInfo ToListMethodGeneric = typeof(Enumerable).GetMethod("ToList"); + + public object[] Marshall(DataServiceOperationContext operationContext, ServiceAction action, object[] parameters) + { + var pvalues = action.Parameters.Zip(parameters, (parameter, parameterValue) => new { Parameter = parameter, Value = parameterValue }); + var marshalled = pvalues.Select(pvalue => GetMarshalledParameter(operationContext, pvalue.Parameter, pvalue.Value)).ToArray(); + + return marshalled; + } + private object GetMarshalledParameter(DataServiceOperationContext operationContext, ServiceActionParameter serviceActionParameter, object value) + { + var parameterKind = serviceActionParameter.ParameterType.ResourceTypeKind; + + // Need to Marshall MultiValues i.e. Collection(Primitive) & Collection(ComplexType) + if (parameterKind == ResourceTypeKind.EntityType) + { + + // This entity is UNATTACHED. But people are likely to want to edit this... + var updateProvider = operationContext.GetService(typeof(IDataServiceUpdateProvider2)) as IDataServiceUpdateProvider2; + value = updateProvider.GetResource(value as IQueryable, serviceActionParameter.ParameterType.InstanceType.FullName); + value = updateProvider.ResolveResource(value); // This will attach the entity. + } + else if (parameterKind == ResourceTypeKind.EntityCollection) + { + // WCF Data Services constructs an IQueryable that is NoTracking... + // but that means people can't just edit the entities they pull from the Query. + var query = value as ObjectQuery; + query.MergeOption = MergeOption.AppendOnly; + } + else if (parameterKind == ResourceTypeKind.Collection) + { + // need to coerce into a List<> for dispatch + var enumerable = value as IEnumerable; + // the <T> in List<T> is the Instance type of the ItemType + var elementType = (serviceActionParameter.ParameterType as CollectionResourceType).ItemType.InstanceType; + // call IEnumerable.Cast<T>(); + var castMethod = CastMethodGeneric.MakeGenericMethod(elementType); + var marshalledValue = castMethod.Invoke(null, new[] { enumerable }); + // call IEnumerable<T>.ToList(); + var toListMethod = ToListMethodGeneric.MakeGenericMethod(elementType); + value = toListMethod.Invoke(null, new[] { marshalledValue }); + } + + return value; + } +} diff --git a/src/ActionProviderImplementation/IParameterMarshaller.cs b/src/ActionProviderImplementation/IParameterMarshaller.cs new file mode 100644 index 000000000..55175d571 --- /dev/null +++ b/src/ActionProviderImplementation/IParameterMarshaller.cs @@ -0,0 +1,9 @@ +using System.Data.Services.Providers; +using System.Data.Services; + +namespace ActionProviderImplementation; + +public interface IParameterMarshaller +{ + object[] Marshall(DataServiceOperationContext operationContext, ServiceAction serviceAction, object[] parameters); +} diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report-github.md new file mode 100644 index 000000000..35fb947df --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report-github.md @@ -0,0 +1,14 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.300 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|---------- |---------:|----------:|----------:| +| GetAll | 27.26 ms | 0.5122 ms | 0.5260 ms | +| GetSingle | 21.30 ms | 0.4120 ms | 0.4744 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.csv new file mode 100644 index 000000000..b2eff8f92 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.csv @@ -0,0 +1,3 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +GetAll,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,27.26 ms,0.5122 ms,0.5260 ms +GetSingle,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,21.30 ms,0.4120 ms,0.4744 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.html new file mode 100644 index 000000000..eb0cf4910 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/CrmEmployee-report.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html lang='en'> +<head> +<meta charset='utf-8' /> +<title>CrmEmployee + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.300
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + +
MethodMeanErrorStdDev
GetAll27.26 ms0.5122 ms0.5260 ms
GetSingle21.30 ms0.4120 ms0.4744 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report-github.md new file mode 100644 index 000000000..8594c4c19 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report-github.md @@ -0,0 +1,14 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.300 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|------------------------------------- |---------:|----------:|----------:| +| FindTypedPeopleWithTripsAndFriends | 16.31 ms | 0.3204 ms | 0.5939 ms | +| FindUntypedPeopleWithTripsAndFriends | 14.66 ms | 0.2931 ms | 0.4476 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.csv new file mode 100644 index 000000000..467c89f0f --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.csv @@ -0,0 +1,3 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +FindTypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,16.31 ms,0.3204 ms,0.5939 ms +FindUntypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,14.66 ms,0.2931 ms,0.4476 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.html new file mode 100644 index 000000000..b43071c55 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.4.0/TripPinPeople-report.html @@ -0,0 +1,31 @@ + + + + +TripPinPeople + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.300
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + +
MethodMeanErrorStdDev
FindTypedPeopleWithTripsAndFriends16.31 ms0.3204 ms0.5939 ms
FindUntypedPeopleWithTripsAndFriends14.66 ms0.2931 ms0.4476 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report-github.md new file mode 100644 index 000000000..ff60a3207 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report-github.md @@ -0,0 +1,14 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.400 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|---------- |---------:|----------:|----------:| +| GetAll | 19.53 ms | 0.3627 ms | 0.3725 ms | +| GetSingle | 16.23 ms | 0.3982 ms | 0.3530 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.csv new file mode 100644 index 000000000..107273795 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.csv @@ -0,0 +1,3 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +GetAll,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,19.53 ms,0.3627 ms,0.3725 ms +GetSingle,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,16.23 ms,0.3982 ms,0.3530 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.html new file mode 100644 index 000000000..2261759bf --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/CrmEmployee-report.html @@ -0,0 +1,31 @@ + + + + +CrmEmployee + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.400
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + +
MethodMeanErrorStdDev
GetAll19.53 ms0.3627 ms0.3725 ms
GetSingle16.23 ms0.3982 ms0.3530 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report-github.md new file mode 100644 index 000000000..88fb5528b --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report-github.md @@ -0,0 +1,15 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.400 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|------------------------------------- |-----------:|----------:|----------:| +| FindTypedPeopleWithTripsAndFriends | 9,965.2 us | 174.13 us | 162.88 us | +| FindUntypedPeopleWithTripsAndFriends | 8,272.6 us | 161.01 us | 191.67 us | +| ConvertWithNewtonsoftJson | 869.2 us | 17.79 us | 22.50 us | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.csv new file mode 100644 index 000000000..317d9eb0a --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.csv @@ -0,0 +1,4 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +FindTypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,"9,965.2 us",174.13 us,162.88 us +FindUntypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,"8,272.6 us",161.01 us,191.67 us +ConvertWithNewtonsoftJson,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,869.2 us,17.79 us,22.50 us diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.html new file mode 100644 index 000000000..79a52f3be --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.5.0/TripPinPeople-report.html @@ -0,0 +1,32 @@ + + + + +TripPinPeople + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.400
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + + +
MethodMeanErrorStdDev
FindTypedPeopleWithTripsAndFriends9,965.2 us174.13 us162.88 us
FindUntypedPeopleWithTripsAndFriends8,272.6 us161.01 us191.67 us
ConvertWithNewtonsoftJson869.2 us17.79 us22.50 us
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report-github.md new file mode 100644 index 000000000..07eba259b --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report-github.md @@ -0,0 +1,14 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.403 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|---------- |---------:|----------:|----------:| +| GetAll | 20.80 ms | 0.4112 ms | 0.8306 ms | +| GetSingle | 19.66 ms | 0.3923 ms | 1.1383 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.csv new file mode 100644 index 000000000..925149067 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.csv @@ -0,0 +1,3 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +GetAll,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,20.80 ms,0.4112 ms,0.8306 ms +GetSingle,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,19.66 ms,0.3923 ms,1.1383 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.html new file mode 100644 index 000000000..868f0a7d2 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/CrmEmployee-report.html @@ -0,0 +1,31 @@ + + + + +CrmEmployee + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.403
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + +
MethodMeanErrorStdDev
GetAll20.80 ms0.4112 ms0.8306 ms
GetSingle19.66 ms0.3923 ms1.1383 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report-github.md new file mode 100644 index 000000000..13c80b461 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report-github.md @@ -0,0 +1,15 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.403 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|------------------------------------- |----------:|----------:|----------:| +| FindTypedPeopleWithTripsAndFriends | 10.437 ms | 0.2062 ms | 0.4940 ms | +| FindUntypedPeopleWithTripsAndFriends | 9.657 ms | 0.2022 ms | 0.4523 ms | +| ConvertWithNewtonsoftJson | 1.051 ms | 0.0210 ms | 0.0478 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.csv new file mode 100644 index 000000000..53c802ae2 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.csv @@ -0,0 +1,4 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +FindTypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,10.437 ms,0.2062 ms,0.4940 ms +FindUntypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,9.657 ms,0.2022 ms,0.4523 ms +ConvertWithNewtonsoftJson,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,1.051 ms,0.0210 ms,0.0478 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.html new file mode 100644 index 000000000..718afc37a --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.0/TripPinPeople-report.html @@ -0,0 +1,32 @@ + + + + +TripPinPeople + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.403
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + + +
MethodMeanErrorStdDev
FindTypedPeopleWithTripsAndFriends10.437 ms0.2062 ms0.4940 ms
FindUntypedPeopleWithTripsAndFriends9.657 ms0.2022 ms0.4523 ms
ConvertWithNewtonsoftJson1.051 ms0.0210 ms0.0478 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report-github.md new file mode 100644 index 000000000..0f842550b --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report-github.md @@ -0,0 +1,14 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.502 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | +|---------- |---------:|----------:|----------:| +| GetAll | 17.57 ms | 0.3484 ms | 0.3728 ms | +| GetSingle | 18.08 ms | 0.3536 ms | 0.3631 ms | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.csv new file mode 100644 index 000000000..af6ed3327 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.csv @@ -0,0 +1,3 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev +GetAll,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,17.57 ms,0.3484 ms,0.3728 ms +GetSingle,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,18.08 ms,0.3536 ms,0.3631 ms diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.html new file mode 100644 index 000000000..5faa0d045 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/CrmEmployee-report.html @@ -0,0 +1,31 @@ + + + + +CrmEmployee + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.502
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + +
MethodMeanErrorStdDev
GetAll17.57 ms0.3484 ms0.3728 ms
GetSingle18.08 ms0.3536 ms0.3631 ms
+ + diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report-github.md b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report-github.md new file mode 100644 index 000000000..95fb5e45a --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report-github.md @@ -0,0 +1,15 @@ +``` ini + +BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763 +Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores +.NET Core SDK=2.1.502 + [Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT + + +``` +| Method | Mean | Error | StdDev | Median | +|------------------------------------- |-----------:|----------:|----------:|-----------:| +| FindTypedPeopleWithTripsAndFriends | 8,668.0 us | 172.27 us | 191.47 us | 8,652.4 us | +| FindUntypedPeopleWithTripsAndFriends | 7,510.5 us | 143.00 us | 175.61 us | 7,491.5 us | +| ConvertWithNewtonsoftJson | 907.3 us | 18.69 us | 39.02 us | 890.5 us | diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.csv b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.csv new file mode 100644 index 000000000..1a22f6607 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.csv @@ -0,0 +1,4 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,RemoveOutliers,Affinity,Jit,Platform,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,EnvironmentVariables,Toolchain,IsBaseline,InvocationCount,IterationTime,LaunchCount,RunStrategy,TargetCount,UnrollFactor,WarmupCount,Mean,Error,StdDev,Median +FindTypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,"8,668.0 us",172.27 us,191.47 us,"8,652.4 us" +FindUntypedPeopleWithTripsAndFriends,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,"7,510.5 us",143.00 us,175.61 us,"7,491.5 us" +ConvertWithNewtonsoftJson,Default,False,Default,Default,Default,Default,Default,Default,255,RyuJit,X64,Core,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,16,Default,907.3 us,18.69 us,39.02 us,890.5 us diff --git a/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.html b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.html new file mode 100644 index 000000000..f7d9fd129 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Artifacts/5.6.1/TripPinPeople-report.html @@ -0,0 +1,32 @@ + + + + +TripPinPeople + + + + +

+BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17763
+Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
+.NET Core SDK=2.1.502
+  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
+
+
+ + + + + + + +
MethodMeanErrorStdDevMedian
FindTypedPeopleWithTripsAndFriends8,668.0 us172.27 us191.47 us8,652.4 us
FindUntypedPeopleWithTripsAndFriends7,510.5 us143.00 us175.61 us7,491.5 us
ConvertWithNewtonsoftJson907.3 us18.69 us39.02 us890.5 us
+ + diff --git a/src/Simple.OData.Client.Benchmarks/CrmEmployee.cs b/src/Simple.OData.Client.Benchmarks/CrmEmployee.cs new file mode 100644 index 000000000..bc2d6fe8b --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/CrmEmployee.cs @@ -0,0 +1,37 @@ +using System.Linq; +using System.Threading.Tasks; + +using BenchmarkDotNet.Attributes; + +using Xunit; + +namespace Simple.OData.Client.Benchmarks; + +public class he_employee +{ + public int he_employeenumber { get; set; } +} + +public class CrmEmployee +{ + [Benchmark] + public async static Task GetAll() + { + var result = await Utils.GetClient("crm_schema.xml", "crm_result_10.json") + .For() + .FindEntriesAsync(); + + Assert.Equal(10, result.ToList().Count); + } + + [Benchmark] + public async static Task GetSingle() + { + var result = await Utils.GetClient("crm_schema.xml", "crm_result_1.json") + .For() + .Filter(x => x.he_employeenumber == 123456) + .FindEntryAsync(); + + Assert.Equal(123456, result.he_employeenumber); + } +} diff --git a/src/Simple.OData.Client.Benchmarks/GlobalSuppressions.cs b/src/Simple.OData.Client.Benchmarks/GlobalSuppressions.cs new file mode 100644 index 000000000..4c0b97571 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/GlobalSuppressions.cs @@ -0,0 +1,14 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage( + "Style", + "IDE1006:Naming Styles", + Justification = "", + Scope = "type", + Target = "~T:Simple.OData.Client.Benchmarks.he_employee") +] diff --git a/src/Simple.OData.Client.Benchmarks/Program.cs b/src/Simple.OData.Client.Benchmarks/Program.cs new file mode 100644 index 000000000..1b092402f --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Program.cs @@ -0,0 +1,26 @@ +using System; +using BenchmarkDotNet.Running; +using Simple.OData.Client.Tests; + +namespace Simple.OData.Client.Benchmarks; + +internal class Program +{ + private static void Main() + { + //BenchmarkRunner.Run(); + BenchmarkRunner.Run(); + } +} + +public static class Utils +{ + public static ODataClient GetClient(string metadataFilename, string responseFilename) + { + return new ODataClient(new ODataClientSettings(new Uri("http://localhost/odata")) + { + MetadataDocument = MetadataResolver.GetMetadataDocument(metadataFilename), + IgnoreUnmappedProperties = true + }.WithHttpResponses(new[] { @"..\..\..\..\..\..\..\Resources\" + responseFilename })); + } +} diff --git a/src/Simple.OData.Client.Benchmarks/Resources/TripPin_result_20.json b/src/Simple.OData.Client.Benchmarks/Resources/TripPin_result_20.json new file mode 100644 index 000000000..ed35ea5e2 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Resources/TripPin_result_20.json @@ -0,0 +1,1181 @@ +{ + "@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People", + "@odata.nextLink": "https://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People?%24expand=Trips%2cFriends&%24skiptoken=20", + "value": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "UserName": "russellwhyte", + "FirstName": "Russell", + "LastName": "Whyte", + "Emails": [ + "Russell@example.com", + "Russell@contoso.com" + ], + "AddressInfo": [ + { + "Address": "187 Suffolk Ln.", + "City": { + "CountryRegion": "United States", + "Name": "Boise", + "Region": "ID" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "UserName": "scottketchum", + "FirstName": "Scott", + "LastName": "Ketchum", + "Emails": [ + "Scott@example.com" + ], + "AddressInfo": [ + { + "Address": "2817 Milton Dr.", + "City": { + "CountryRegion": "United States", + "Name": "Albuquerque", + "Region": "NM" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "UserName": "ronaldmundy", + "FirstName": "Ronald", + "LastName": "Mundy", + "Emails": [ + "Ronald@example.com", + "Ronald@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "UserName": "javieralfred", + "FirstName": "Javier", + "LastName": "Alfred", + "Emails": [ + "Javier@example.com", + "Javier@contoso.com" + ], + "AddressInfo": [ + { + "Address": "89 Jefferson Way Suite 2", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "WA" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('angelhuffman')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('angelhuffman')", + "UserName": "angelhuffman", + "FirstName": "Angel", + "LastName": "Huffman", + "Emails": [ + "Angel@example.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('russellwhyte')/Trips", + "Trips": [ + { + "TripId": 0, + "ShareId": "9d9b2fa0-efbf-490e-a5e3-bac8f7d47354", + "Description": "Trip from San Francisco to New York City. Nice trip with two friends. It is a 4 days' trip. We actually had a client meeting, but we also took one to go sightseeings in New York.", + "Name": "Trip in US", + "Budget": 3000, + "StartsAt": "2014-01-01T00:00:00Z", + "EndsAt": "2014-01-04T00:00:00Z", + "Tags": [ + "Trip in New York", + "business", + "sightseeing" + ] + }, + { + "TripId": 1003, + "ShareId": "f94e9116-8bdd-4dac-ab61-08438d0d9a71", + "Description": "Trip from Shanghai to Beijing", + "Name": "Trip in Beijing", + "Budget": 2000, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "Travel", + "Beijing" + ] + }, + { + "TripId": 1007, + "ShareId": "9ce142c3-5fd6-4a71-848e-5220ebf1e9f3", + "Description": "Happy honeymoon trip", + "Name": "Honeymoon", + "Budget": 2650, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "Travel", + "honeymoon" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "UserName": "scottketchum", + "FirstName": "Scott", + "LastName": "Ketchum", + "Emails": [ + "Scott@example.com" + ], + "AddressInfo": [ + { + "Address": "2817 Milton Dr.", + "City": { + "CountryRegion": "United States", + "Name": "Albuquerque", + "Region": "NM" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "UserName": "russellwhyte", + "FirstName": "Russell", + "LastName": "Whyte", + "Emails": [ + "Russell@example.com", + "Russell@contoso.com" + ], + "AddressInfo": [ + { + "Address": "187 Suffolk Ln.", + "City": { + "CountryRegion": "United States", + "Name": "Boise", + "Region": "ID" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "UserName": "ronaldmundy", + "FirstName": "Ronald", + "LastName": "Mundy", + "Emails": [ + "Ronald@example.com", + "Ronald@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('scottketchum')/Trips", + "Trips": [ + { + "TripId": 0, + "ShareId": "9d9b2fa0-efbf-490e-a5e3-bac8f7d47354", + "Description": "Trip from San Francisco to New York City. Nice trip with two friends. It is a 4 days' trip. We actually had a client meeting, but we also took one to go sightseeings in New York.", + "Name": "Trip in US", + "Budget": 3000, + "StartsAt": "2014-01-01T00:00:00Z", + "EndsAt": "2014-01-04T00:00:00Z", + "Tags": [ + "Trip in New York", + "business", + "sightseeing" + ] + }, + { + "TripId": 2004, + "ShareId": "f94e9116-8bdd-4dac-ab61-08438d0d9a71", + "Description": "Trip from Shanghai to Beijing", + "Name": "Trip in Beijing", + "Budget": 11000, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "Travel", + "Beijing" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ronaldmundy')", + "UserName": "ronaldmundy", + "FirstName": "Ronald", + "LastName": "Mundy", + "Emails": [ + "Ronald@example.com", + "Ronald@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "UserName": "russellwhyte", + "FirstName": "Russell", + "LastName": "Whyte", + "Emails": [ + "Russell@example.com", + "Russell@contoso.com" + ], + "AddressInfo": [ + { + "Address": "187 Suffolk Ln.", + "City": { + "CountryRegion": "United States", + "Name": "Boise", + "Region": "ID" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('scottketchum')", + "UserName": "scottketchum", + "FirstName": "Scott", + "LastName": "Ketchum", + "Emails": [ + "Scott@example.com" + ], + "AddressInfo": [ + { + "Address": "2817 Milton Dr.", + "City": { + "CountryRegion": "United States", + "Name": "Albuquerque", + "Region": "NM" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('ronaldmundy')/Trips", + "Trips": [ + { + "TripId": 3009, + "ShareId": "dd6a09c0-e59b-4745-8612-f4499b676c47", + "Description": "Gradution trip with friends", + "Name": "Gradutaion trip", + "Budget": 6000, + "StartsAt": "2013-05-01T00:00:00Z", + "EndsAt": "2013-05-08T00:00:00Z", + "Tags": [ + "Travel" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "UserName": "javieralfred", + "FirstName": "Javier", + "LastName": "Alfred", + "Emails": [ + "Javier@example.com", + "Javier@contoso.com" + ], + "AddressInfo": [ + { + "Address": "89 Jefferson Way Suite 2", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "WA" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "UserName": "willieashmore", + "FirstName": "Willie", + "LastName": "Ashmore", + "Emails": [ + "Willie@example.com", + "Willie@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "UserName": "vincentcalabrese", + "FirstName": "Vincent", + "LastName": "Calabrese", + "Emails": [ + "Vincent@example.com", + "Vincent@contoso.com" + ], + "AddressInfo": [ + { + "Address": "55 Grizzly Peak Rd.", + "City": { + "CountryRegion": "United States", + "Name": "Butte", + "Region": "MT" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('georginabarlow')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('georginabarlow')", + "UserName": "georginabarlow", + "FirstName": "Georgina", + "LastName": "Barlow", + "Emails": [ + "Georgina@example.com", + "Georgina@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('javieralfred')/Trips", + "Trips": [ + { + "TripId": 4005, + "ShareId": "f94e9116-8bdd-4dac-ab61-08438d0d9a71", + "Description": "Trip from Shanghai to Beijing", + "Name": "Trip in Beijing", + "Budget": 800, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "Travel", + "Beijing" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "UserName": "willieashmore", + "FirstName": "Willie", + "LastName": "Ashmore", + "Emails": [ + "Willie@example.com", + "Willie@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "UserName": "javieralfred", + "FirstName": "Javier", + "LastName": "Alfred", + "Emails": [ + "Javier@example.com", + "Javier@contoso.com" + ], + "AddressInfo": [ + { + "Address": "89 Jefferson Way Suite 2", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "WA" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "UserName": "vincentcalabrese", + "FirstName": "Vincent", + "LastName": "Calabrese", + "Emails": [ + "Vincent@example.com", + "Vincent@contoso.com" + ], + "AddressInfo": [ + { + "Address": "55 Grizzly Peak Rd.", + "City": { + "CountryRegion": "United States", + "Name": "Butte", + "Region": "MT" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('willieashmore')/Trips", + "Trips": [ + { + "TripId": 5007, + "ShareId": "5ae142c3-5ad6-4a71-768e-5220ebf1e9f3", + "Description": "This is my first business trip", + "Name": "Business Trip", + "Budget": 3800.5, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "business", + "first" + ] + }, + { + "TripId": 5008, + "ShareId": "9ce32ac3-5fd6-4a72-848e-2250ebf1e9f3", + "Description": "The trip is currently in plan.", + "Name": "Trip in Europe", + "Budget": 2000, + "StartsAt": "2014-02-01T00:00:00Z", + "EndsAt": "2014-02-04T00:00:00Z", + "Tags": [ + "Travel", + "plan" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('vincentcalabrese')", + "UserName": "vincentcalabrese", + "FirstName": "Vincent", + "LastName": "Calabrese", + "Emails": [ + "Vincent@example.com", + "Vincent@contoso.com" + ], + "AddressInfo": [ + { + "Address": "55 Grizzly Peak Rd.", + "City": { + "CountryRegion": "United States", + "Name": "Butte", + "Region": "MT" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "UserName": "javieralfred", + "FirstName": "Javier", + "LastName": "Alfred", + "Emails": [ + "Javier@example.com", + "Javier@contoso.com" + ], + "AddressInfo": [ + { + "Address": "89 Jefferson Way Suite 2", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "WA" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('willieashmore')", + "UserName": "willieashmore", + "FirstName": "Willie", + "LastName": "Ashmore", + "Emails": [ + "Willie@example.com", + "Willie@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('vincentcalabrese')/Trips", + "Trips": [ + { + "TripId": 7010, + "ShareId": "dd6a09c0-e59b-4745-8612-f4499b676c47", + "Description": "Gradution trip with friends", + "Name": "Gradutaion trip", + "Budget": 1000, + "StartsAt": "2013-05-01T00:00:00Z", + "EndsAt": "2013-05-08T00:00:00Z", + "Tags": [ + "Travel" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('clydeguess')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('clydeguess')", + "UserName": "clydeguess", + "FirstName": "Clyde", + "LastName": "Guess", + "Emails": [ + "Clyde@example.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "UserName": "keithpinckney", + "FirstName": "Keith", + "LastName": "Pinckney", + "Emails": [ + "Keith@example.com", + "Keith@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ursulabright')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ursulabright')", + "UserName": "ursulabright", + "FirstName": "Ursula", + "LastName": "Bright", + "Emails": [ + "Ursula@example.com", + "Ursula@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('clydeguess')/Trips", + "Trips": [ + { + "TripId": 8011, + "ShareId": "a88f675d-9199-4392-9656-b08e3b46df8a", + "Description": "This is a 2 weeks study trip", + "Name": "Study trip", + "Budget": 1550.3, + "StartsAt": "2014-01-01T00:00:00Z", + "EndsAt": "2014-01-14T00:00:00Z", + "Tags": [ + "study" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "UserName": "keithpinckney", + "FirstName": "Keith", + "LastName": "Pinckney", + "Emails": [ + "Keith@example.com", + "Keith@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('clydeguess')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('clydeguess')", + "UserName": "clydeguess", + "FirstName": "Clyde", + "LastName": "Guess", + "Emails": [ + "Clyde@example.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "UserName": "marshallgaray", + "FirstName": "Marshall", + "LastName": "Garay", + "Emails": [ + "Marshall@example.com", + "Marshall@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('keithpinckney')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "UserName": "marshallgaray", + "FirstName": "Marshall", + "LastName": "Garay", + "Emails": [ + "Marshall@example.com", + "Marshall@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "UserName": "keithpinckney", + "FirstName": "Keith", + "LastName": "Pinckney", + "Emails": [ + "Keith@example.com", + "Keith@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('elainestewart')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('elainestewart')", + "UserName": "elainestewart", + "FirstName": "Elaine", + "LastName": "Stewart", + "Emails": [ + "Elaine@example.com", + "Elaine@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('jonirosales')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('jonirosales')", + "UserName": "jonirosales", + "FirstName": "Joni", + "LastName": "Rosales", + "Emails": [ + "Joni@example.com", + "Joni@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('marshallgaray')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ryantheriault')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ryantheriault')", + "UserName": "ryantheriault", + "FirstName": "Ryan", + "LastName": "Theriault", + "Emails": [ + "Ryan@example.com", + "Ryan@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805, + "Friends": [], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('ryantheriault')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('elainestewart')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('elainestewart')", + "UserName": "elainestewart", + "FirstName": "Elaine", + "LastName": "Stewart", + "Emails": [ + "Elaine@example.com", + "Elaine@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "UserName": "marshallgaray", + "FirstName": "Marshall", + "LastName": "Garay", + "Emails": [ + "Marshall@example.com", + "Marshall@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('elainestewart')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('salliesampson')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('salliesampson')", + "UserName": "salliesampson", + "FirstName": "Sallie", + "LastName": "Sampson", + "Emails": [ + "Sallie@example.com", + "Sallie@contoso.com" + ], + "AddressInfo": [ + { + "Address": "87 Polk St. Suite 5", + "City": { + "CountryRegion": "United States", + "Name": "San Francisco", + "Region": "CA" + } + }, + { + "Address": "89 Chiaroscuro Rd.", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "OR" + } + } + ], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('salliesampson')/Trips", + "Trips": [ + { + "TripId": 13012, + "ShareId": "a88f675d-9199-4392-9656-b08e3b46df8a", + "Description": "This is a 2 weeks study trip", + "Name": "Study trip", + "Budget": 600, + "StartsAt": "2014-01-01T00:00:00Z", + "EndsAt": "2014-01-14T00:00:00Z", + "Tags": [ + "study" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('jonirosales')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('jonirosales')", + "UserName": "jonirosales", + "FirstName": "Joni", + "LastName": "Rosales", + "Emails": [ + "Joni@example.com", + "Joni@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('marshallgaray')", + "UserName": "marshallgaray", + "FirstName": "Marshall", + "LastName": "Garay", + "Emails": [ + "Marshall@example.com", + "Marshall@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('jonirosales')/Trips", + "Trips": [ + { + "TripId": 14013, + "ShareId": "a88f675d-9199-4392-9656-b08e3b46df8a", + "Description": "This is a 2 weeks study trip", + "Name": "Study trip", + "Budget": 2000, + "StartsAt": "2014-01-01T00:00:00Z", + "EndsAt": "2014-01-14T00:00:00Z", + "Tags": [ + "study" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('georginabarlow')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('georginabarlow')", + "UserName": "georginabarlow", + "FirstName": "Georgina", + "LastName": "Barlow", + "Emails": [ + "Georgina@example.com", + "Georgina@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('javieralfred')", + "UserName": "javieralfred", + "FirstName": "Javier", + "LastName": "Alfred", + "Emails": [ + "Javier@example.com", + "Javier@contoso.com" + ], + "AddressInfo": [ + { + "Address": "89 Jefferson Way Suite 2", + "City": { + "CountryRegion": "United States", + "Name": "Portland", + "Region": "WA" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('georginabarlow')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('angelhuffman')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('angelhuffman')", + "UserName": "angelhuffman", + "FirstName": "Angel", + "LastName": "Huffman", + "Emails": [ + "Angel@example.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('russellwhyte')", + "UserName": "russellwhyte", + "FirstName": "Russell", + "LastName": "Whyte", + "Emails": [ + "Russell@example.com", + "Russell@contoso.com" + ], + "AddressInfo": [ + { + "Address": "187 Suffolk Ln.", + "City": { + "CountryRegion": "United States", + "Name": "Boise", + "Region": "ID" + } + } + ], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('angelhuffman')/Trips", + "Trips": [ + { + "TripId": 16014, + "ShareId": "cb0b8acb-79cb-4127-8316-772bc4302824", + "Description": "This is a DIY trip", + "Name": "DIY Trip", + "Budget": 1500.3, + "StartsAt": "2011-02-11T00:00:00Z", + "EndsAt": "2011-02-14T00:00:00Z", + "Tags": [ + "Travel", + "DIY" + ] + } + ] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('laurelosborn')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('laurelosborn')", + "UserName": "laurelosborn", + "FirstName": "Laurel", + "LastName": "Osborn", + "Emails": [ + "Laurel@example.com", + "Laurel@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('sandyosborn')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('sandyosborn')", + "UserName": "sandyosborn", + "FirstName": "Sandy", + "LastName": "Osborn", + "Emails": [ + "Sandy@example.com", + "Sandy@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('laurelosborn')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('sandyosborn')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('sandyosborn')", + "UserName": "sandyosborn", + "FirstName": "Sandy", + "LastName": "Osborn", + "Emails": [ + "Sandy@example.com", + "Sandy@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('laurelosborn')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('laurelosborn')", + "UserName": "laurelosborn", + "FirstName": "Laurel", + "LastName": "Osborn", + "Emails": [ + "Laurel@example.com", + "Laurel@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('sandyosborn')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ursulabright')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('ursulabright')", + "UserName": "ursulabright", + "FirstName": "Ursula", + "LastName": "Bright", + "Emails": [ + "Ursula@example.com", + "Ursula@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('keithpinckney')", + "UserName": "keithpinckney", + "FirstName": "Keith", + "LastName": "Pinckney", + "Emails": [ + "Keith@example.com", + "Keith@contoso.com" + ], + "AddressInfo": [], + "Gender": "Male", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('ursulabright')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('genevievereeves')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('genevievereeves')", + "UserName": "genevievereeves", + "FirstName": "Genevieve", + "LastName": "Reeves", + "Emails": [ + "Genevieve@example.com", + "Genevieve@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('kristakemp')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('kristakemp')", + "UserName": "kristakemp", + "FirstName": "Krista", + "LastName": "Kemp", + "Emails": [ + "Krista@example.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('genevievereeves')/Trips", + "Trips": [] + }, + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('kristakemp')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('kristakemp')", + "UserName": "kristakemp", + "FirstName": "Krista", + "LastName": "Kemp", + "Emails": [ + "Krista@example.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805, + "Friends": [ + { + "@odata.id": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('genevievereeves')", + "@odata.etag": "W/\"08D5EC66AC170EC5\"", + "@odata.editLink": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/People('genevievereeves')", + "UserName": "genevievereeves", + "FirstName": "Genevieve", + "LastName": "Reeves", + "Emails": [ + "Genevieve@example.com", + "Genevieve@contoso.com" + ], + "AddressInfo": [], + "Gender": "Female", + "Concurrency": 636674848060804805 + } + ], + "Trips@odata.context": "http://services.odata.org/V4/(S(4taa1h2202lz2pi2bpqff3uy))/TripPinServiceRW/$metadata#People('kristakemp')/Trips", + "Trips": [] + } + ] +} diff --git a/src/Simple.OData.Client.Benchmarks/Resources/crm_result_1.json b/src/Simple.OData.Client.Benchmarks/Resources/crm_result_1.json new file mode 100644 index 000000000..7b422640a --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Resources/crm_result_1.json @@ -0,0 +1,40 @@ +{ + "@odata.context": "http://URL/api/data/v8.2/$metadata#he_employees", + "value": [ + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 123456, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + } + ] +} \ No newline at end of file diff --git a/src/Simple.OData.Client.Benchmarks/Resources/crm_result_10.json b/src/Simple.OData.Client.Benchmarks/Resources/crm_result_10.json new file mode 100644 index 000000000..726f4190d --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Resources/crm_result_10.json @@ -0,0 +1,355 @@ +{ + "@odata.context": "http://URL/api/data/v8.2/$metadata#he_employees", + "value": [ + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100001, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100002, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100003, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100004, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100005, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100006, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100007, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100008, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519445\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Max Mustermann", + "statecode": 0, + "he_employeeid": "5b3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100009, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:50Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Max", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519445, + "modifiedon": "2018-06-28T09:49:58Z", + "he_salutation": 1, + "he_lastname": "Mustermann", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + }, + { + "@odata.etag": "W/\"519378\"", + "_owningbusinessunit_value": "626e7290-f251-e811-8e9e-005056aa3d0a", + "he_name": "Example Customer", + "statecode": 0, + "he_employeeid": "5c3b9426-b37a-e811-8e9f-005056aa3d0a", + "he_employeenumber": 100010, + "_createdby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "createdon": "2018-06-28T09:10:51Z", + "statuscode": 1, + "_ownerid_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "he_firstname": "Example", + "he_country": 0, + "_owninguser_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "_modifiedby_value": "4324dac7-0e79-e811-8e9f-005056aa3d0a", + "versionnumber": 519378, + "modifiedon": "2018-06-28T09:10:51Z", + "he_salutation": 1, + "he_lastname": "Customer", + "he_mobilephone": null, + "he_graduationname": null, + "he_fax": null, + "importsequencenumber": null, + "_createdonbehalfby_value": null, + "he_street": null, + "_modifiedonbehalfby_value": null, + "timezoneruleversionnumber": null, + "utcconversiontimezonecode": null, + "he_postalcodevalue": null, + "he_email": null, + "_owningteam_value": null, + "he_telephone": null, + "overriddencreatedon": null, + "he_city": null + } + ] +} \ No newline at end of file diff --git a/src/Simple.OData.Client.Benchmarks/Resources/crm_schema.xml b/src/Simple.OData.Client.Benchmarks/Resources/crm_schema.xml new file mode 100644 index 000000000..1615fce31 --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Resources/crm_schema.xml @@ -0,0 +1,57370 @@ + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.ConformanceLevelType/Intermediate + + + + contains + endswith + startswith + + + + + + + + + + + application/json; odata.metadata=minimal; odata.streaming=true + application/json; odata.metadata=minimal; odata.streaming=false + application/json; odata.metadata=minimal + application/json; odata.metadata=full; odata.streaming=true + application/json; odata.metadata=full; odata.streaming=false + application/json; odata.metadata=full + application/json; odata.metadata=none; odata.streaming=true + application/json; odata.metadata=none; odata.streaming=false + application/json; odata.metadata=none + application/json; odata.streaming=true + application/json; odata.streaming=false + application/json + application/xml + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.Benchmarks/Simple.OData.Client.Benchmarks.csproj b/src/Simple.OData.Client.Benchmarks/Simple.OData.Client.Benchmarks.csproj new file mode 100644 index 000000000..a99565e0c --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/Simple.OData.Client.Benchmarks.csproj @@ -0,0 +1,52 @@ + + + + Exe + net6.0 + true + latest + + + + TRACE;MOCK_HTTP + + + + TRACE;DEBUG;MOCK_HTTP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.Benchmarks/TripPinPeople.cs b/src/Simple.OData.Client.Benchmarks/TripPinPeople.cs new file mode 100644 index 000000000..f207b510b --- /dev/null +++ b/src/Simple.OData.Client.Benchmarks/TripPinPeople.cs @@ -0,0 +1,48 @@ +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using BenchmarkDotNet.Attributes; +using Newtonsoft.Json; +using Simple.OData.Client.Tests; +using Xunit; + +namespace Simple.OData.Client.Benchmarks; + +internal class PeopleCollection +{ + [JsonProperty("value")] + public Person[] People { get; set; } +} + +public class TripPinPeople +{ + [Benchmark] + public async static Task FindTypedPeopleWithTripsAndFriends() + { + var result = await Utils.GetClient("TripPin.xml", "TripPin_result_20.json") + .For() + .Expand(x => new { x.Trips, x.Friends }) + .FindEntriesAsync(); + + Assert.Equal(20, result.ToList().Count); + } + + [Benchmark] + public async static Task FindUntypedPeopleWithTripsAndFriends() + { + var result = await Utils.GetClient("TripPin.xml", "TripPin_result_20.json") + .For("People") + .Expand(new[] { "Trips", "Friends" }) + .FindEntriesAsync(); + + Assert.Equal(20, result.ToList().Count); + } + + [Benchmark] + public static void ConvertWithNewtonsoftJson() + { + var json = File.ReadAllText(@"..\..\..\..\..\..\..\Resources\" + "TripPin_result_20.json"); + var result = JsonConvert.DeserializeObject(json); + Assert.Equal(20, result.People.Length); + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/AdapterVersion.cs b/src/Simple.OData.Client.Core/Adapter/AdapterVersion.cs new file mode 100644 index 000000000..153cfe755 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/AdapterVersion.cs @@ -0,0 +1,30 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// The OData protocol version of the OData adapter. +/// +[Flags] +public enum AdapterVersion +{ + /// + /// OData protocol version 3 + /// + V3 = 0x01, + + /// + /// OData protocol version 4 + /// + V4 = 0x10, + + /// + /// Default OData protocol version + /// + Default = V4, + + /// + /// Any OData protocol version + /// + Any = V3 | V4, +} diff --git a/src/Simple.OData.Client.Core/Adapter/BatchWriterBase.cs b/src/Simple.OData.Client.Core/Adapter/BatchWriterBase.cs new file mode 100644 index 000000000..f06c1bb1a --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/BatchWriterBase.cs @@ -0,0 +1,135 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public abstract class BatchWriterBase : IBatchWriter +{ + protected readonly ISession _session; + private readonly Dictionary, string> _contentIdMap; + protected bool _pendingChangeSet; + + protected BatchWriterBase(ISession session, IDictionary> batchEntries) + { + _session = session; + LastOperationId = 0; + _contentIdMap = new Dictionary, string>(); + BatchEntries = batchEntries; + } + + public abstract Task StartBatchAsync(); + public abstract Task EndBatchAsync(); + + public async Task CreateBatchRequestAsync( + IODataClient client, IList> actions, IList responseIndexes, + IDictionary headers = null) + { + // Write batch operations into a batch content + var lastOperationId = 0; + foreach (var action in actions) + { + await action(client).ConfigureAwait(false); + var responseIndex = -1; + if (LastOperationId > lastOperationId) + { + lastOperationId = LastOperationId; + responseIndex = lastOperationId - 1; + } + + responseIndexes.Add(responseIndex); + } + + if (HasOperations) + { + // Create batch request message + var requestMessage = await EndBatchAsync().ConfigureAwait(false); + + foreach (var header in headers) + { + requestMessage.Headers.Add(header.Key, header.Value); + } + + return new ODataRequest(RestVerbs.Post, _session, ODataLiteral.Batch, requestMessage); + } + else + { + return null; + } + } + + protected abstract Task StartChangesetAsync(); + protected abstract Task EndChangesetAsync(); + protected abstract Task CreateOperationMessageAsync(Uri uri, string method, string collection, string contentId, bool resultRequired); + + public int LastOperationId { get; private set; } + + public string NextContentId() + { + return (++LastOperationId).ToString(); + } + + public string GetContentId(IDictionary entryData, object linkData) + { + if (!_contentIdMap.TryGetValue(entryData, out var contentId) && linkData != null) + { + if (BatchEntries.TryGetValue(linkData, out var mappedEntry)) + { + _contentIdMap.TryGetValue(mappedEntry, out contentId); + } + } + + return contentId; + } + + public void MapContentId(IDictionary entryData, string contentId) + { + if (entryData != null && !_contentIdMap.TryGetValue(entryData, out _)) + { + _contentIdMap.Add(entryData, contentId); + } + } + + public IDictionary> BatchEntries { get; private set; } + + public async Task CreateOperationMessageAsync(Uri uri, string method, string collection, IDictionary entryData, bool resultRequired) + { + if (method != RestVerbs.Get && !_pendingChangeSet) + { + await StartChangesetAsync().ConfigureAwait(false); + _pendingChangeSet = true; + } + else if (method == RestVerbs.Get && _pendingChangeSet) + { + await EndChangesetAsync().ConfigureAwait(false); + _pendingChangeSet = false; + } + + var contentId = NextContentId(); + if (method != RestVerbs.Get && method != RestVerbs.Delete) + { + MapContentId(entryData, contentId); + } + + return await CreateOperationMessageAsync(uri, method, collection, contentId, resultRequired).ConfigureAwait(false); + } + + public bool HasOperations { get; protected set; } + + protected HttpRequestMessage CreateMessageFromStream(Stream stream, Uri requestUrl, Func getHeaderFunc) + { + _pendingChangeSet = false; + stream.Position = 0; + + var httpRequest = new HttpRequestMessage() + { + RequestUri = Utils.CreateAbsoluteUri(requestUrl.AbsoluteUri, ODataLiteral.Batch), + Method = HttpMethod.Post, + Content = new StreamContent(stream), + }; + httpRequest.Content.Headers.Add(HttpLiteral.ContentType, getHeaderFunc(HttpLiteral.ContentType)); + return httpRequest; + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/CommandFormatterBase.cs b/src/Simple.OData.Client.Core/Adapter/CommandFormatterBase.cs new file mode 100644 index 000000000..ca2e61aab --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/CommandFormatterBase.cs @@ -0,0 +1,364 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +public abstract class CommandFormatterBase : ICommandFormatter +{ + protected readonly ISession _session; + + protected CommandFormatterBase(ISession session) + { + _session = session; + } + + public abstract string ConvertValueToUriLiteral(object value, bool escapeString); + + public abstract FunctionFormat FunctionFormat { get; } + + protected ITypeCache TypeCache => _session.TypeCache; + + public string FormatCommand(ResolvedCommand command) + { + if (command.Details.HasFunction && command.Details.HasAction) + { + throw new InvalidOperationException("OData function and action may not be combined."); + } + + var commandText = string.Empty; + if (!string.IsNullOrEmpty(command.Details.CollectionName)) + { + commandText += _session.Metadata.GetEntityCollectionExactName(command.Details.CollectionName); + } + else if (!string.IsNullOrEmpty(command.Details.LinkName)) + { + var parent = new FluentCommand(command.Details.Parent).Resolve(_session); + commandText += $"{FormatCommand(parent)}/{_session.Metadata.GetNavigationPropertyExactName(parent.EntityCollection.Name, command.Details.LinkName)}"; + } + + if (command.Details.HasKey) + { + commandText += ConvertKeyValuesToUriLiteral(command.KeyValues, !command.Details.IsAlternateKey); + } + + var collectionValues = new List(); + if (!string.IsNullOrEmpty(command.Details.MediaName)) + { + commandText += "/" + (command.Details.MediaName == FluentCommand.MediaEntityLiteral + ? ODataLiteral.Value + : command.Details.MediaName); + } + else + { + if (!string.IsNullOrEmpty(command.Details.FunctionName) || !string.IsNullOrEmpty(command.Details.ActionName)) + { + if (!string.IsNullOrEmpty(command.Details.CollectionName) || !string.IsNullOrEmpty(command.Details.LinkName)) + { + commandText += "/"; + } + + if (!string.IsNullOrEmpty(command.Details.FunctionName)) + { + commandText += _session.Metadata.GetFunctionFullName(command.Details.FunctionName); + } + else + { + commandText += _session.Metadata.GetActionFullName(command.Details.ActionName); + } + } + + if (!string.IsNullOrEmpty(command.Details.FunctionName) && FunctionFormat == FunctionFormat.Key) + { + commandText += ConvertKeyValuesToUriLiteralExtractCollections(command.CommandData, collectionValues, false); + } + + if (!string.IsNullOrEmpty(command.Details.DerivedCollectionName)) + { + commandText += "/" + _session.Metadata.GetQualifiedTypeName(command.Details.DerivedCollectionName); + } + } + + commandText += FormatClauses(command, collectionValues); + return commandText; + } + + public string FormatNavigationPath(EntityCollection entityCollection, string path) + { + var items = path.Split('/'); + var associationName = _session.Metadata.HasNavigationProperty(entityCollection.Name, items.First()) + ? _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, items.First()) + : items.First(); + var text = associationName; + if (items.Count() == 1) + { + return text; + } + else + { + path = path.Substring(items.First().Length + 1); + + entityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + + return $"{text}/{FormatNavigationPath(entityCollection, path)}"; + } + } + + public string ConvertKeyValuesToUriLiteral(IDictionary key, bool skipKeyNameForSingleValue) + { + var formattedKeyValues = key.Count == 1 && skipKeyNameForSingleValue + ? string.Join(",", key.Select(x => ConvertValueToUriLiteral(x.Value, true))) + : string.Join(",", + key.Select(x => $"{x.Key}={ConvertValueToUriLiteral(x.Value, true)}")); + return "(" + formattedKeyValues + ")"; + } + + public string ConvertKeyValuesToUriLiteralExtractCollections(IDictionary data, IList collectionValues, bool skipKeyNameForSingleValue) + { + var escapedData = new Dictionary(); + var colIndex = 0; + foreach (var item in data) + { + object itemValue; + if (item.Value != null) + { + var itemType = item.Value.GetType(); + if (itemType.IsArray || TypeCache.IsGeneric(itemType) && TypeCache.IsTypeAssignableFrom(typeof(System.Collections.IEnumerable), itemType)) + { + var itemAlias = $"@p{++colIndex}"; + var collection = item.Value as System.Collections.IEnumerable; + var escapedCollection = new List(); + foreach (var o in collection) + { + escapedCollection.Add(ConvertValueToUriLiteral(o, true)); + } + + collectionValues.Add(string.Format("{0}=[" + string.Join(",", escapedCollection) + "]", itemAlias)); + itemValue = itemAlias; + } + else + { + itemValue = ConvertValueToUriLiteral(item.Value, true); + } + } + else + { + itemValue = ConvertValueToUriLiteral(item.Value, true); + } + + escapedData.Add(item.Key, itemValue); + } + + var formattedKeyValues = escapedData.Count == 1 && skipKeyNameForSingleValue + ? string.Join(",", escapedData) + : string.Join(",", + escapedData.Select(x => $"{x.Key}={x.Value}")); + return "(" + formattedKeyValues + ")"; + } + + protected abstract void FormatExpandSelectOrderby(IList commandClauses, EntityCollection resultCollection, ResolvedCommand command); + + protected abstract void FormatInlineCount(IList commandClauses); + + protected abstract void FormatExtensions(IList commandClauses, ResolvedCommand command); + + private const string ReservedUriCharacters = @"!*'();:@&=+$,/?#[] "; + + protected string EscapeUnescapedString(string text) + { + return text.ToCharArray().Intersect(ReservedUriCharacters.ToCharArray()).Any() + ? Uri.EscapeDataString(text) + : text; + } + + private string FormatClauses(ResolvedCommand command, IList queryClauses = null) + { + var text = string.Empty; + queryClauses ??= new List(); + var aggregateClauses = new List(); + + if (command.CommandData.Any() && !string.IsNullOrEmpty(command.Details.FunctionName) && + FunctionFormat == FunctionFormat.Query) + { + queryClauses.Add(string.Join("&", command.CommandData.Select(x => $"{x.Key}={ConvertValueToUriLiteral(x.Value, true)}"))); + } + + if (command.Details.Filter != null) + { + queryClauses.Add($"{ODataLiteral.Filter}={EscapeUnescapedString(command.Details.Filter)}"); + } + + if (command.Details.Search != null) + { + queryClauses.Add($"{ODataLiteral.Search}={EscapeUnescapedString(command.Details.Search)}"); + } + + if (command.Details.QueryOptions != null) + { + queryClauses.Add(command.Details.QueryOptions); + } + + var details = command.Details; + if (details.QueryOptionsExpression is not null) + { + queryClauses.Add(details.QueryOptionsExpression.Format(new ExpressionContext(_session, true))); + } + + if (command.Details.QueryOptionsKeyValues != null) + { + foreach (var kv in command.Details.QueryOptionsKeyValues) + { + queryClauses.Add($"{kv.Key}={ODataExpression.FromValue(kv.Value).Format(new ExpressionContext(_session))}"); + } + } + + if (command.Details.SkipCount >= 0) + { + queryClauses.Add($"{ODataLiteral.Skip}={command.Details.SkipCount}"); + } + + if (command.Details.TopCount >= 0) + { + queryClauses.Add($"{ODataLiteral.Top}={command.Details.TopCount}"); + } + + if (command.Details.Extensions.Any()) + { + FormatExtensions(queryClauses, command); + } + + EntityCollection resultCollection; + if (command.Details.HasFunction) + { + resultCollection = _session.Adapter.GetMetadata().GetFunctionReturnCollection(command.Details.FunctionName); + } + else + { + resultCollection = command.Details.HasAction + ? _session.Adapter.GetMetadata().GetActionReturnCollection(command.Details.ActionName) + : command.EntityCollection; + } + + if (resultCollection != null) + { + FormatExpandSelectOrderby(queryClauses, resultCollection, command); + } + + if (command.Details.IncludeCount) + { + FormatInlineCount(queryClauses); + } + + if (command.Details.ComputeCount) + { + aggregateClauses.Add(ODataLiteral.Count); + } + + if (aggregateClauses.Any()) + { + text += "/" + string.Join("/", aggregateClauses); + } + + if (queryClauses.Any()) + { + text += "?" + string.Join("&", queryClauses); + } + + return text; + } + + protected string FormatExpandItem(KeyValuePair pathWithOptions, EntityCollection entityCollection) + { + return FormatNavigationPath(entityCollection, pathWithOptions.Key); + } + + protected string FormatSelectItem(string path, EntityCollection entityCollection) + { + var items = path.Split('/'); + if (items.Count() == 1) + { + return _session.Metadata.HasStructuralProperty(entityCollection.Name, path) + ? _session.Metadata.GetStructuralPropertyExactName(entityCollection.Name, path) + : _session.Metadata.HasNavigationProperty(entityCollection.Name, path) + ? _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, path) + : path; + } + else + { + var associationName = _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, items.First()); + var text = associationName; + path = path.Substring(items.First().Length + 1); + entityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + return $"{text}/{FormatSelectItem(path, entityCollection)}"; + } + } + + protected string FormatOrderByItem(KeyValuePair pathWithOrder, EntityCollection entityCollection) + { + var items = pathWithOrder.Key.Split('/'); + if (items.Count() == 1) + { + var clause = _session.Metadata.HasStructuralProperty(entityCollection.Name, pathWithOrder.Key) + ? _session.Metadata.GetStructuralPropertyExactName(entityCollection.Name, pathWithOrder.Key) + : _session.Metadata.HasNavigationProperty(entityCollection.Name, pathWithOrder.Key) + ? _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, pathWithOrder.Key) + : pathWithOrder.Key; + if (pathWithOrder.Value) + { + clause += " desc"; + } + + return clause; + } + else + { + if (_session.Metadata.HasNavigationProperty(entityCollection.Name, items[0])) + { + var associationName = _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, items[0]); + var text = associationName; + var item = pathWithOrder.Key.Substring(items.First().Length + 1); + entityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + return $"{text}/{FormatOrderByItem(new KeyValuePair(item, pathWithOrder.Value), entityCollection)}"; + } + else if (_session.Metadata.HasStructuralProperty(entityCollection.Name, items[0])) + { + var clause = _session.Metadata.GetStructuralPropertyPath(entityCollection.Name, items); + if (pathWithOrder.Value) + { + clause += " desc"; + } + + return clause; + } + else + { + throw new UnresolvableObjectException(items[0], $"Property path [{items[0]}] not found"); + } + } + } + + protected void FormatClause(IList commandClauses, EntityCollection entityCollection, + IList clauses, string clauseLiteral, Func formatItem) + { + if (clauses.Any()) + { + commandClauses.Add($"{clauseLiteral}={string.Join(",", clauses.Select(x => formatItem(x, entityCollection)))}"); + } + } + + protected static IEnumerable> FlatExpandAssociations( + IEnumerable> associations) + { + return associations + .SelectMany(a => a.Key.ExpandAssociations.Any() + ? FlatExpandAssociations(a.Key.ExpandAssociations.Select(x => + new KeyValuePair(x, + ODataExpandOptions.ByValue()))) + .Select(x => new KeyValuePair(a.Key.Name + "/" + x.Key, x.Value)) + : new[] { new KeyValuePair(a.Key.Name, a.Value) }) + .ToList(); + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/FunctionFormat.cs b/src/Simple.OData.Client.Core/Adapter/FunctionFormat.cs new file mode 100644 index 000000000..d6e874c94 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/FunctionFormat.cs @@ -0,0 +1,17 @@ +namespace Simple.OData.Client; + +/// +/// The format of OData function arguments. +/// +public enum FunctionFormat +{ + /// + /// The function arguments will be formatted as a query string + /// + Query, + + /// + /// The function arguments will be formatted as a a key-value list + /// + Key, +} diff --git a/src/Simple.OData.Client.Core/Adapter/IBatchWriter.cs b/src/Simple.OData.Client.Core/Adapter/IBatchWriter.cs new file mode 100644 index 000000000..8b4df0d8e --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IBatchWriter.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public interface IBatchWriter +{ + Task CreateBatchRequestAsync(IODataClient client, IList> actions, IList responseIndexes, IDictionary headers = null); + Task CreateOperationMessageAsync(Uri uri, string method, string collection, IDictionary entryData, bool resultRequired); + bool HasOperations { get; } + int LastOperationId { get; } + string NextContentId(); + string GetContentId(IDictionary entryData, object linkData); + void MapContentId(IDictionary entryData, string contentId); + IDictionary> BatchEntries { get; } +} diff --git a/src/Simple.OData.Client.Core/Adapter/ICommandFormatter.cs b/src/Simple.OData.Client.Core/Adapter/ICommandFormatter.cs new file mode 100644 index 000000000..0e5d827dd --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ICommandFormatter.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public interface ICommandFormatter +{ + string FormatCommand(ResolvedCommand command); + string FormatNavigationPath(EntityCollection entityCollection, string path); + string ConvertKeyValuesToUriLiteral(IDictionary key, bool skipKeyNameForSingleValue); + string ConvertValueToUriLiteral(object value, bool escapeString); + FunctionFormat FunctionFormat { get; } +} diff --git a/src/Simple.OData.Client.Core/Adapter/IMetadata.cs b/src/Simple.OData.Client.Core/Adapter/IMetadata.cs new file mode 100644 index 000000000..f3ab325a3 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IMetadata.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client; + +/// +/// Abstraction over the OData Edm model. +/// +public interface IMetadata +{ + EntityCollection GetEntityCollection(string collectionPath); + + EntityCollection GetDerivedEntityCollection(EntityCollection baseCollection, string entityTypeName); + + EntityCollection NavigateToCollection(string path); + + EntityCollection NavigateToCollection(EntityCollection rootCollection, string path); + + string GetEntityCollectionExactName(string collectionName); + + bool EntityCollectionRequiresOptimisticConcurrencyCheck(string collectionName); + + string GetEntityTypeExactName(string collectionName); + + string GetLinkedCollectionName(string instanceTypeName, string typeName, out bool isSingleton); + + string GetQualifiedTypeName(string typeOrCollectionName); + + bool IsOpenType(string collectionName); + + bool IsTypeWithId(string typeName); + + IEnumerable GetStructuralPropertyNames(string collectionName); + + bool HasStructuralProperty(string collectionName, string propertyName); + + string GetStructuralPropertyExactName(string collectionName, string propertyName); + + string GetStructuralPropertyPath(string collectionName, params string[] propertyNames); + + IEnumerable GetDeclaredKeyPropertyNames(string collectionName); + + IEnumerable GetNavigationPropertyNames(string collectionName); + + /// + /// Gets a collection of key name collections that represent the alternate keys of the given entity. + /// Alternate keys are only supported on V4. On V3 this method will always return an empty enumeration. + /// + /// + /// The collection name of the entity + /// An empty enumeration of string enumerations representing the key names + IEnumerable> GetAlternateKeyPropertyNames(string collectionName); + + bool HasNavigationProperty(string collectionName, string propertyName); + + string GetNavigationPropertyExactName(string collectionName, string propertyName); + + string GetNavigationPropertyPartnerTypeName(string collectionName, string propertyName); + + bool IsNavigationPropertyCollection(string collectionName, string propertyName); + + string GetFunctionFullName(string functionName); + + EntityCollection GetFunctionReturnCollection(string functionName); + + string GetFunctionVerb(string functionName); + + string GetActionFullName(string actionName); + + EntityCollection GetActionReturnCollection(string functionName); + + EntryDetails ParseEntryDetails(string collectionName, IDictionary entryData, string contentId = null); +} diff --git a/src/Simple.OData.Client.Core/Adapter/IODataAdapter.cs b/src/Simple.OData.Client.Core/Adapter/IODataAdapter.cs new file mode 100644 index 000000000..2cc74bcc7 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IODataAdapter.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public interface IODataAdapter +{ + AdapterVersion AdapterVersion { get; } + + ODataPayloadFormat DefaultPayloadFormat { get; } + + string ProtocolVersion { get; set; } + + object Model { get; set; } + + string GetODataVersionString(); + + IMetadata GetMetadata(); + + ICommandFormatter GetCommandFormatter(); + + IResponseReader GetResponseReader(); + + IRequestWriter GetRequestWriter(Lazy deferredBatchWriter); + + IBatchWriter GetBatchWriter(IDictionary> batchEntries); +} diff --git a/src/Simple.OData.Client.Core/Adapter/IODataAdapterFactory.cs b/src/Simple.OData.Client.Core/Adapter/IODataAdapterFactory.cs new file mode 100644 index 000000000..ab531b595 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IODataAdapterFactory.cs @@ -0,0 +1,39 @@ +using System; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// IODataAdapterFactory interface contains collection of methods to create OData adapters. +/// It can be used as a customization point to create adapters with custom behavior. +/// +public interface IODataAdapterFactory +{ + /// + /// Creates an instance of IODataModelAdapter from an HTTP response with schema information. + /// + /// HTTP response message with schema information + /// Service type cache + /// + /// + Task CreateModelAdapterAsync(HttpResponseMessage response, ITypeCache typeCache); + + /// + /// Creates an instance of IODataModelAdapter from a metadata string. + /// + /// Service metadata + /// Service type cache + /// + /// + IODataModelAdapter CreateModelAdapter(string metadataString, ITypeCache typeCache); + + /// + /// Creates an instance of OData adapter loader from a metadata string. + /// + /// Service metadata + /// Service type cache + /// + /// + Func CreateAdapterLoader(string metadataString, ITypeCache typeCache); +} diff --git a/src/Simple.OData.Client.Core/Adapter/IODataModelAdapter.cs b/src/Simple.OData.Client.Core/Adapter/IODataModelAdapter.cs new file mode 100644 index 000000000..16d46bbd8 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IODataModelAdapter.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client; + +public interface IODataModelAdapter +{ + AdapterVersion AdapterVersion { get; } + string ProtocolVersion { get; set; } + object Model { get; set; } +} diff --git a/src/Simple.OData.Client.Core/Adapter/IRequestWriter.cs b/src/Simple.OData.Client.Core/Adapter/IRequestWriter.cs new file mode 100644 index 000000000..c0c9b0e76 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IRequestWriter.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public interface IRequestWriter +{ + Task CreateGetRequestAsync(string commandText, bool scalarResult, IDictionary headers = null); + Task CreatePutRequestAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency, IDictionary headers = null); + Task CreateInsertRequestAsync(string collection, string commandText, IDictionary entryData, bool resultRequired, IDictionary headers = null); + Task CreateUpdateRequestAsync(string collection, string entryIdent, IDictionary entryKey, IDictionary entryData, bool resultRequired, IDictionary headers = null); + Task CreateDeleteRequestAsync(string collection, string entryIdent, IDictionary headers = null); + Task CreateLinkRequestAsync(string collection, string linkName, string entryIdent, string linkIdent, IDictionary headers = null); + Task CreateUnlinkRequestAsync(string collection, string linkName, string entryIdent, string linkIdent, IDictionary headers = null); + Task CreateFunctionRequestAsync(string commandText, string functionName, IDictionary headers = null); + Task CreateActionRequestAsync(string commandText, string actionName, string boundTypeName, IDictionary parameters, bool resultRequired, IDictionary headers = null); +} diff --git a/src/Simple.OData.Client.Core/Adapter/IResponseReader.cs b/src/Simple.OData.Client.Core/Adapter/IResponseReader.cs new file mode 100644 index 000000000..146b2a1ac --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/IResponseReader.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public interface IResponseReader +{ + Task GetResponseAsync(HttpResponseMessage responseMessage); + Task AssignBatchActionResultsAsync(IODataClient client, ODataResponse batchResponse, IList> actions, IList responseIndexes); +} diff --git a/src/Simple.OData.Client.Core/Adapter/MetadataBase.cs b/src/Simple.OData.Client.Core/Adapter/MetadataBase.cs new file mode 100644 index 000000000..0818263fa --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/MetadataBase.cs @@ -0,0 +1,188 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +public abstract class MetadataBase : IMetadata +{ + protected MetadataBase(INameMatchResolver nameMatchResolver, bool ignoreUnmappedProperties, bool unqualifiedNameCall) + { + IgnoreUnmappedProperties = ignoreUnmappedProperties; + NameMatchResolver = nameMatchResolver; + UnqualifiedNameCall = unqualifiedNameCall; + } + + public bool IgnoreUnmappedProperties { get; } + + public INameMatchResolver NameMatchResolver { get; } + + public bool UnqualifiedNameCall { get; } + + public abstract string GetEntityCollectionExactName(string collectionName); + + public abstract string GetDerivedEntityTypeExactName(string collectionName, string entityTypeName); + + public abstract bool EntityCollectionRequiresOptimisticConcurrencyCheck(string collectionName); + + public abstract string GetEntityTypeExactName(string collectionName); + + public abstract string GetLinkedCollectionName(string instanceTypeName, string typeName, out bool isSingleton); + + public abstract string GetQualifiedTypeName(string collectionName); + + public abstract bool IsOpenType(string collectionName); + + public abstract bool IsTypeWithId(string collectionName); + + public abstract IEnumerable GetStructuralPropertyNames(string collectionName); + + public abstract bool HasStructuralProperty(string collectionName, string propertyName); + + public abstract string GetStructuralPropertyExactName(string collectionName, string propertyName); + + public abstract string GetStructuralPropertyPath(string collectionName, params string[] propertyNames); + + public abstract IEnumerable GetDeclaredKeyPropertyNames(string collectionName); + + public abstract IEnumerable GetNavigationPropertyNames(string collectionName); + + public abstract IEnumerable> GetAlternateKeyPropertyNames(string collectionName); + + public abstract bool HasNavigationProperty(string collectionName, string propertyName); + + public abstract string GetNavigationPropertyExactName(string collectionName, string propertyName); + + public abstract string GetNavigationPropertyPartnerTypeName(string collectionName, string propertyName); + + public abstract bool IsNavigationPropertyCollection(string collectionName, string propertyName); + + public abstract string GetFunctionFullName(string functionName); + + public abstract EntityCollection GetFunctionReturnCollection(string functionName); + + public abstract string GetFunctionVerb(string functionName); + + public abstract string GetActionFullName(string actionName); + + public abstract EntityCollection GetActionReturnCollection(string actionName); + + public EntityCollection GetEntityCollection(string collectionPath) + { + var segments = collectionPath.Split('/'); + if (segments.Count() > 1) + { + if (SegmentsIncludeTypeSpecification(segments)) + { + var baseEntitySet = GetEntityCollection(Utils.ExtractCollectionName(segments[segments.Length - 2])); + return GetDerivedEntityCollection(baseEntitySet, Utils.ExtractCollectionName(segments.Last())); + } + else + { + return new EntityCollection(GetEntityCollectionExactName(Utils.ExtractCollectionName(segments.Last()))); + } + } + else + { + return new EntityCollection(GetEntityCollectionExactName(Utils.ExtractCollectionName(collectionPath))); + } + } + + public EntityCollection GetDerivedEntityCollection(EntityCollection baseCollection, string entityTypeName) + { + var actualName = GetDerivedEntityTypeExactName(baseCollection.Name, entityTypeName); + return new EntityCollection(actualName, baseCollection); + } + + public EntityCollection NavigateToCollection(string path) + { + var segments = GetCollectionPathSegments(path); + return IsSingleSegmentWithTypeSpecification(segments) + ? GetEntityCollection(path) + : NavigateToCollection(GetEntityCollection(segments.First()), segments.Skip(1)); + } + + public EntityCollection NavigateToCollection(EntityCollection rootCollection, string path) + { + return NavigateToCollection(rootCollection, GetCollectionPathSegments(path)); + } + + private EntityCollection NavigateToCollection(EntityCollection rootCollection, IEnumerable segments) + { + if (!segments.Any()) + { + return rootCollection; + } + + var associationName = GetNavigationPropertyExactName(rootCollection.Name, segments.First()); + var typeName = IsSingleSegmentWithTypeSpecification(segments) + ? segments.Last() + : GetNavigationPropertyPartnerTypeName(rootCollection.Name, associationName); + var entityCollection = GetEntityCollection(typeName); + + return segments.Count() == 1 || IsSingleSegmentWithTypeSpecification(segments) + ? entityCollection + : NavigateToCollection(entityCollection, segments.Skip(1)); + } + + protected bool SegmentsIncludeTypeSpecification(IEnumerable segments) + { + return segments.Last().Contains("."); + } + + protected bool IsSingleSegmentWithTypeSpecification(IEnumerable segments) + { + return segments.Count() == 2 && SegmentsIncludeTypeSpecification(segments); + } + + public EntryDetails ParseEntryDetails(string collectionName, IDictionary entryData, string contentId = null) + { + var entryDetails = new EntryDetails(); + + foreach (var item in entryData) + { + if (HasStructuralProperty(collectionName, item.Key)) + { + entryDetails.AddProperty(item.Key, item.Value); + } + else if (HasNavigationProperty(collectionName, item.Key)) + { + if (IsNavigationPropertyCollection(collectionName, item.Key)) + { + switch (item.Value) + { + case null: + entryDetails.AddLink(item.Key, null, contentId); + break; + case IEnumerable collection: + foreach (var element in collection) + { + entryDetails.AddLink(item.Key, element, contentId); + } + + break; + } + } + else + { + entryDetails.AddLink(item.Key, item.Value, contentId); + } + } + else if (IsOpenType(collectionName)) + { + entryDetails.HasOpenTypeProperties = true; + entryDetails.AddProperty(item.Key, item.Value); + } + else if (!IgnoreUnmappedProperties) + { + throw new UnresolvableObjectException(item.Key, $"No property or association found for [{item.Key}]."); + } + } + + return entryDetails; + } + + public IEnumerable GetCollectionPathSegments(string path) + { + return path.Split('/').Select(x => x.Contains("(") ? x.Substring(0, x.IndexOf("(")) : x); + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/MetadataCache.cs b/src/Simple.OData.Client.Core/Adapter/MetadataCache.cs new file mode 100644 index 000000000..0c518b00d --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/MetadataCache.cs @@ -0,0 +1,256 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client.Adapter; + +/// +/// A caching layer for +/// +public class MetadataCache : IMetadata +{ + private readonly IMetadata metadata; + private readonly ConcurrentDictionary ec; + private readonly ConcurrentDictionary nav; + private readonly ConcurrentDictionary ecen; + private readonly ConcurrentDictionary roc; + private readonly ConcurrentDictionary eten; + private readonly ConcurrentDictionary qtn; + private readonly ConcurrentDictionary ot; + private readonly ConcurrentDictionary tid; + private readonly ConcurrentDictionary sp; + private readonly ConcurrentDictionary np; + private readonly ConcurrentDictionary> npn; + private readonly ConcurrentDictionary npc; + private readonly ConcurrentDictionary> spns; + private readonly ConcurrentDictionary> dkpns; + private readonly ConcurrentDictionary>> akpns; + private readonly ConcurrentDictionary npen; + private readonly ConcurrentDictionary spp; + private readonly ConcurrentDictionary ffn; + private readonly ConcurrentDictionary fv; + private readonly ConcurrentDictionary afn; + private readonly ConcurrentDictionary nppt; + private readonly ConcurrentDictionary arc; + private readonly ConcurrentDictionary frc; + private readonly ConcurrentDictionary spen; + + public MetadataCache(IMetadata metadata) + { + this.metadata = metadata; + IgnoreUnmappedProperties = (metadata as MetadataBase).IgnoreUnmappedProperties; + + ec = new ConcurrentDictionary(); + nav = new ConcurrentDictionary(); + ecen = new ConcurrentDictionary(); + roc = new ConcurrentDictionary(); + eten = new ConcurrentDictionary(); + qtn = new ConcurrentDictionary(); + ot = new ConcurrentDictionary(); + tid = new ConcurrentDictionary(); + sp = new ConcurrentDictionary(); + np = new ConcurrentDictionary(); + npn = new ConcurrentDictionary>(); + npc = new ConcurrentDictionary(); + spns = new ConcurrentDictionary>(); + dkpns = new ConcurrentDictionary>(); + akpns = new ConcurrentDictionary>>(); + spp = new ConcurrentDictionary(); + npen = new ConcurrentDictionary(); + ffn = new ConcurrentDictionary(); + fv = new ConcurrentDictionary(); + afn = new ConcurrentDictionary(); + nppt = new ConcurrentDictionary(); + arc = new ConcurrentDictionary(); + frc = new ConcurrentDictionary(); + spen = new ConcurrentDictionary(); + } + + public bool IgnoreUnmappedProperties { get; } + + public EntityCollection GetEntityCollection(string collectionPath) + { + return ec.GetOrAdd(collectionPath, x => metadata.GetEntityCollection(x)); + } + + public EntityCollection GetDerivedEntityCollection(EntityCollection baseCollection, string entityTypeName) + { + // Can't easily cache as the key would be a collection + return metadata.GetDerivedEntityCollection(baseCollection, entityTypeName); + } + + public EntityCollection NavigateToCollection(string path) + { + return nav.GetOrAdd(path, x => metadata.NavigateToCollection(x)); + } + + public EntityCollection NavigateToCollection(EntityCollection rootCollection, string path) + { + // Can't easily cache as the key would be a collection + return metadata.NavigateToCollection(rootCollection, path); + } + + public string GetEntityCollectionExactName(string collectionName) + { + return ecen.GetOrAdd(collectionName, x => metadata.GetEntityCollectionExactName(x)); + } + + public bool EntityCollectionRequiresOptimisticConcurrencyCheck(string collectionName) + { + return roc.GetOrAdd(collectionName, x => metadata.EntityCollectionRequiresOptimisticConcurrencyCheck(x)); + } + + public string GetEntityTypeExactName(string collectionName) + { + return eten.GetOrAdd(collectionName, x => metadata.GetEntityTypeExactName(x)); + } + + public string GetLinkedCollectionName(string instanceTypeName, string typeName, out bool isSingleton) + { + // Not sure if we can handle the out isSingleton side effect + return metadata.GetLinkedCollectionName(instanceTypeName, typeName, out isSingleton); + } + + public string GetQualifiedTypeName(string typeOrCollectionName) + { + return qtn.GetOrAdd(typeOrCollectionName, x => metadata.GetQualifiedTypeName(x)); + } + + public bool IsOpenType(string collectionName) + { + return ot.GetOrAdd(collectionName, x => metadata.IsOpenType(x)); + } + + public bool IsTypeWithId(string typeName) + { + return tid.GetOrAdd(typeName, x => metadata.IsTypeWithId(x)); + } + + public IEnumerable GetStructuralPropertyNames(string collectionName) + { + return spns.GetOrAdd(collectionName, x => metadata.GetStructuralPropertyNames(collectionName).ToList()); + } + + public bool HasStructuralProperty(string collectionName, string propertyName) + { + return sp.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.HasStructuralProperty(collectionName, propertyName)); + } + + public string GetStructuralPropertyExactName(string collectionName, string propertyName) + { + return spen.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.GetStructuralPropertyExactName(collectionName, propertyName)); + } + + public string GetStructuralPropertyPath(string collectionName, params string[] propertyNames) + { + return spp.GetOrAdd(string.Join("/", propertyNames), x => metadata.GetStructuralPropertyPath(collectionName, propertyNames)); + } + + public IEnumerable GetDeclaredKeyPropertyNames(string collectionName) + { + return dkpns.GetOrAdd(collectionName, x => metadata.GetDeclaredKeyPropertyNames(collectionName).ToList()); + } + + public IEnumerable GetNavigationPropertyNames(string collectionName) + { + return npn.GetOrAdd(collectionName, x => metadata.GetNavigationPropertyNames(collectionName).ToList()); + } + + public IEnumerable> GetAlternateKeyPropertyNames(string collectionName) + { + return akpns.GetOrAdd(collectionName, x => metadata.GetAlternateKeyPropertyNames(collectionName).Select(y => (IList)y.ToList()).ToList()); + } + + public bool HasNavigationProperty(string collectionName, string propertyName) + { + return np.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.HasNavigationProperty(collectionName, propertyName)); + } + + public string GetNavigationPropertyExactName(string collectionName, string propertyName) + { + return npen.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.GetNavigationPropertyExactName(collectionName, propertyName)); + } + + public string GetNavigationPropertyPartnerTypeName(string collectionName, string propertyName) + { + return nppt.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.GetNavigationPropertyPartnerTypeName(collectionName, propertyName)); + } + + public bool IsNavigationPropertyCollection(string collectionName, string propertyName) + { + return npc.GetOrAdd($"{collectionName}/{propertyName}", x => metadata.IsNavigationPropertyCollection(collectionName, propertyName)); + } + + public string GetFunctionFullName(string functionName) + { + return ffn.GetOrAdd(functionName, x => metadata.GetFunctionFullName(x)); + } + + public EntityCollection GetFunctionReturnCollection(string functionName) + { + return frc.GetOrAdd(functionName, x => metadata.GetFunctionReturnCollection(x)); + } + + public string GetFunctionVerb(string functionName) + { + return fv.GetOrAdd(functionName, x => metadata.GetFunctionVerb(x)); + } + + public string GetActionFullName(string actionName) + { + return afn.GetOrAdd(actionName, x => metadata.GetActionFullName(x)); + } + + public EntityCollection GetActionReturnCollection(string functionName) + { + return arc.GetOrAdd(functionName, x => metadata.GetActionReturnCollection(functionName)); + } + + public EntryDetails ParseEntryDetails(string collectionName, IDictionary entryData, string contentId = null) + { + // Copied from MetadataBase so we use caches for the property acquisition + var entryDetails = new EntryDetails(); + + foreach (var item in entryData) + { + if (HasStructuralProperty(collectionName, item.Key)) + { + entryDetails.AddProperty(item.Key, item.Value); + } + else if (HasNavigationProperty(collectionName, item.Key)) + { + if (IsNavigationPropertyCollection(collectionName, item.Key)) + { + switch (item.Value) + { + case null: + entryDetails.AddLink(item.Key, null, contentId); + break; + case IEnumerable collection: + foreach (var element in collection) + { + entryDetails.AddLink(item.Key, element, contentId); + } + + break; + } + } + else + { + entryDetails.AddLink(item.Key, item.Value, contentId); + } + } + else if (IsOpenType(collectionName)) + { + entryDetails.HasOpenTypeProperties = true; + entryDetails.AddProperty(item.Key, item.Value); + } + else if (!IgnoreUnmappedProperties) + { + throw new UnresolvableObjectException(item.Key, $"No property or association found for [{item.Key}]."); + } + } + + return entryDetails; + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/ODataAdapterBase.cs b/src/Simple.OData.Client.Core/Adapter/ODataAdapterBase.cs new file mode 100644 index 000000000..82af41c78 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ODataAdapterBase.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public abstract class ODataAdapterBase : IODataAdapter +{ + public abstract AdapterVersion AdapterVersion { get; } + + public abstract ODataPayloadFormat DefaultPayloadFormat { get; } + + public string ProtocolVersion { get; set; } + + public object Model { get; set; } + + public abstract string GetODataVersionString(); + + public abstract IMetadata GetMetadata(); + + public abstract ICommandFormatter GetCommandFormatter(); + + public abstract IResponseReader GetResponseReader(); + + public abstract IRequestWriter GetRequestWriter(Lazy deferredBatchWriter); + + public abstract IBatchWriter GetBatchWriter(IDictionary> batchEntries); +} diff --git a/src/Simple.OData.Client.Core/Adapter/ODataAdapterFactory.cs b/src/Simple.OData.Client.Core/Adapter/ODataAdapterFactory.cs new file mode 100644 index 000000000..ed7bc0ee4 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ODataAdapterFactory.cs @@ -0,0 +1,231 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Reflection; +using System.Threading.Tasks; +using System.Xml; + + +namespace Simple.OData.Client; + +/// +/// ODataAdapterFactory creates OData adapters for specific OData protocols. +/// Custom OData adapter classes can be derived from ODataAdapterFactory to provide custom implementation of its methods. +/// +public class ODataAdapterFactory : IODataAdapterFactory +{ + private const string AdapterV3AssemblyName = "Simple.OData.Client.V3.Adapter"; + private const string AdapterV4AssemblyName = "Simple.OData.Client.V4.Adapter"; + private const string AdapterV3TypeName = "Simple.OData.Client.V3.Adapter.ODataAdapter"; + private const string AdapterV4TypeName = "Simple.OData.Client.V4.Adapter.ODataAdapter"; + private const string ModelAdapterV3TypeName = "Simple.OData.Client.V3.Adapter.ODataModelAdapter"; + private const string ModelAdapterV4TypeName = "Simple.OData.Client.V4.Adapter.ODataModelAdapter"; + + /// + public async virtual Task CreateModelAdapterAsync(HttpResponseMessage response, ITypeCache typeCache) + { + var protocolVersions = (await GetSupportedProtocolVersionsAsync(response).ConfigureAwait(false)).ToArray(); + + foreach (var protocolVersion in protocolVersions) + { + var loadModelAdapter = GetModelAdapterLoader(protocolVersion, response, typeCache); + if (loadModelAdapter != null) + { + return loadModelAdapter(); + } + } + + throw new NotSupportedException($"OData protocols {string.Join(",", protocolVersions)} are not supported"); + } + + /// + public virtual IODataModelAdapter CreateModelAdapter(string metadataString, ITypeCache typeCache) + { + var protocolVersion = GetMetadataProtocolVersion(metadataString); + var loadModelAdapter = GetModelAdapterLoader(protocolVersion, metadataString, typeCache); + if (loadModelAdapter == null) + { + throw new NotSupportedException($"OData protocol {protocolVersion} is not supported"); + } + + return loadModelAdapter(); + } + + /// + public virtual Func CreateAdapterLoader(string metadataString, ITypeCache typeCache) + { + var modelAdapter = CreateModelAdapter(metadataString, typeCache); + + var loadAdapter = GetAdapterLoader(modelAdapter, typeCache); + if (loadAdapter == null) + { + throw new NotSupportedException($"OData protocol {modelAdapter.ProtocolVersion} is not supported"); + } + + return loadAdapter; + } + + /// + /// Returns a collection of supported protocol versions. + /// + /// HTTP response message with schema information + /// + /// + protected async Task> GetSupportedProtocolVersionsAsync(HttpResponseMessage response) + { + if (response.Headers.TryGetValues(HttpLiteral.DataServiceVersion, out var headerValues) || + response.Headers.TryGetValues(HttpLiteral.ODataVersion, out headerValues)) + { + return headerValues.SelectMany(x => x.Split(';')).Where(x => x.Length > 0); + } + else + { + try + { + var metadataString = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + var protocolVersion = GetMetadataProtocolVersion(metadataString); + return new[] { protocolVersion }; + } + catch (Exception) + { + throw new InvalidOperationException("Unable to identify OData protocol version."); + } + } + } + + private Func GetAdapterLoader(IODataModelAdapter modelAdapter, ITypeCache typeCache) + { + if (modelAdapter.ProtocolVersion == ODataProtocolVersion.V1 || + modelAdapter.ProtocolVersion == ODataProtocolVersion.V2 || + modelAdapter.ProtocolVersion == ODataProtocolVersion.V3) + { + return session => LoadAdapter(AdapterV3AssemblyName, typeCache, AdapterV3TypeName, session, modelAdapter); + } + + if (modelAdapter.ProtocolVersion == ODataProtocolVersion.V4) + { + return session => LoadAdapter(AdapterV4AssemblyName, typeCache, AdapterV4TypeName, session, modelAdapter); + } + + return null; + } + + private Func GetModelAdapterLoader(string protocolVersion, object extraInfo, ITypeCache typeCache) + { + if (protocolVersion == ODataProtocolVersion.V1 || + protocolVersion == ODataProtocolVersion.V2 || + protocolVersion == ODataProtocolVersion.V3) + { + return () => LoadModelAdapter(typeCache, AdapterV3AssemblyName, ModelAdapterV3TypeName, protocolVersion, extraInfo); + } + + if (protocolVersion == ODataProtocolVersion.V4) + { + return () => LoadModelAdapter(typeCache, AdapterV4AssemblyName, ModelAdapterV4TypeName, protocolVersion, extraInfo); + } + + return null; + } + + private IODataModelAdapter LoadModelAdapter(ITypeCache typeCache, string modelAdapterAssemblyName, string modelAdapterTypeName, params object[] ctorParams) + { + try + { + var type = LoadType(modelAdapterAssemblyName, modelAdapterTypeName); + var ctor = FindAdapterConstructor(type, typeCache, ctorParams); + return ctor.Invoke(ctorParams) as IODataModelAdapter; + } + catch (Exception exception) + { + throw new InvalidOperationException($"Unable to load OData adapter from assembly {modelAdapterAssemblyName}", exception); + } + } + + private Type LoadType(string assemblyName, string typeName) + { + try + { + var assemblyNameObj = new AssemblyName(assemblyName); + return Assembly.Load(assemblyNameObj).GetType(typeName); + } + catch (FileNotFoundException) + { + var type = Type.GetType(typeName); + if (type == null) + { + throw; + } + + return type; + } + } + + private ConstructorInfo FindAdapterConstructor(Type type, ITypeCache typeCache, params object[] ctorParams) + { + var constructors = typeCache.GetDeclaredConstructors(type); + return constructors.Single(x => + x.GetParameters().Count() == ctorParams.Count() && + x.GetParameters().Last().ParameterType.GetTypeInfo().IsAssignableFrom(ctorParams.Last().GetType().GetTypeInfo())); + } + + private IODataAdapter LoadAdapter(string adapterAssemblyName, ITypeCache typeCache, string adapterTypeName, params object[] ctorParams) + { + try + { + + var type = LoadType(adapterAssemblyName, adapterTypeName); + var constructors = typeCache.GetDeclaredConstructors(type); + + var ctor = constructors.Single(x => + x.GetParameters().Count() == ctorParams.Count() && + x.GetParameters().Last().ParameterType.IsInstanceOfType(ctorParams.Last())); + + return ctor.Invoke(ctorParams) as IODataAdapter; + } + catch (Exception exception) + { + throw new InvalidOperationException($"Unable to load OData adapter from assembly {adapterAssemblyName}", exception); + } + } + + /// + /// Returns OData protocol version + /// + /// Service metadata + /// + protected string GetMetadataProtocolVersion(string metadataString) + { + using var reader = XmlReader.Create(new StringReader(metadataString)); + reader.MoveToContent(); + + var protocolVersion = reader.GetAttribute("Version"); + + if (protocolVersion == ODataProtocolVersion.V1 || + protocolVersion == ODataProtocolVersion.V2 || + protocolVersion == ODataProtocolVersion.V3) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + var version = reader.GetAttribute("m:" + HttpLiteral.MaxDataServiceVersion); + if (string.IsNullOrEmpty(version)) + { + version = reader.GetAttribute("m:" + HttpLiteral.DataServiceVersion); + } + + if (!string.IsNullOrEmpty(version) && string.Compare(version, protocolVersion, StringComparison.Ordinal) > 0) + { + protocolVersion = version; + } + + break; + } + } + } + + return protocolVersion; + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/ODataModelAdapterBase.cs b/src/Simple.OData.Client.Core/Adapter/ODataModelAdapterBase.cs new file mode 100644 index 000000000..af5a17324 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ODataModelAdapterBase.cs @@ -0,0 +1,11 @@ + +namespace Simple.OData.Client; + +public abstract class ODataModelAdapterBase : IODataModelAdapter +{ + public abstract AdapterVersion AdapterVersion { get; } + + public string ProtocolVersion { get; set; } + + public object Model { get; set; } +} diff --git a/src/Simple.OData.Client.Core/Adapter/RequestWriterBase.cs b/src/Simple.OData.Client.Core/Adapter/RequestWriterBase.cs new file mode 100644 index 000000000..163416df8 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/RequestWriterBase.cs @@ -0,0 +1,246 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; + +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public abstract class RequestWriterBase : IRequestWriter +{ + protected readonly ISession _session; + protected readonly Lazy _deferredBatchWriter; + + protected RequestWriterBase(ISession session, Lazy deferredBatchWriter) + { + _session = session; + _deferredBatchWriter = deferredBatchWriter; + } + + protected bool IsBatch => _deferredBatchWriter != null; + + protected ITypeCache TypeCache => _session.TypeCache; + + protected ITypeConverter Converter => TypeCache.Converter; + + public async Task CreateGetRequestAsync(string commandText, bool scalarResult, IDictionary headers = null) + { + await WriteEntryContentAsync( + RestVerbs.Get, Utils.ExtractCollectionName(commandText), commandText, null, true).ConfigureAwait(false); + + var request = new ODataRequest(RestVerbs.Get, _session, commandText, headers) + { + ReturnsScalarResult = scalarResult, + ResultRequired = true, + }; + AssignHeaders(request); + return request; + } + + public async Task CreatePutRequestAsync(string commandText, Stream stream, string mediaType = null, bool optimisticConcurrency = false, IDictionary headers = null) + { + var entryContent = await WriteStreamContentAsync(stream, IsTextMediaType(mediaType)); + + var request = new ODataRequest(RestVerbs.Put, _session, commandText, null, entryContent, mediaType, headers) + { + CheckOptimisticConcurrency = optimisticConcurrency + }; + AssignHeaders(request); + return request; + } + + public async Task CreateInsertRequestAsync(string collection, string commandText, IDictionary entryData, bool resultRequired, IDictionary headers = null) + { + var segments = commandText.Split('/'); + if (segments.Count() > 1 && segments.Last().Contains(".")) + { + commandText = commandText.Substring(0, commandText.Length - segments.Last().Length - 1); + } + + var entryContent = await WriteEntryContentAsync( + RestVerbs.Post, collection, commandText, entryData, resultRequired).ConfigureAwait(false); + + var request = new ODataRequest(RestVerbs.Post, _session, commandText, entryData, entryContent, headers: headers) + { + ResultRequired = resultRequired, + }; + AssignHeaders(request); + return request; + } + + public async Task CreateUpdateRequestAsync(string collection, string entryIdent, IDictionary entryKey, IDictionary entryData, bool resultRequired, IDictionary headers = null) + { + var entityCollection = _session.Metadata.GetEntityCollection(collection); + var entryDetails = _session.Metadata.ParseEntryDetails(entityCollection.Name, entryData); + + var hasPropertiesToUpdate = entryDetails.Properties.Count > 0; + var usePatch = _session.Settings.PreferredUpdateMethod == ODataUpdateMethod.Patch || !hasPropertiesToUpdate; + if (HasUpdatedKeyProperties(collection, entryKey, entryData)) + { + usePatch = false; + } + + var updateMethod = usePatch ? RestVerbs.Patch : RestVerbs.Put; + +#pragma warning disable CS0618 // Type or member is obsolete - purpose of this test + updateMethod = _session.Settings.PreferredUpdateMethod == ODataUpdateMethod.Merge ? RestVerbs.Merge : updateMethod; +#pragma warning restore CS0618 // Type or member is obsolete + + var entryContent = await WriteEntryContentAsync( + updateMethod, collection, entryIdent, entryData, resultRequired).ConfigureAwait(false); + + var checkOptimisticConcurrency = _session.Metadata.EntityCollectionRequiresOptimisticConcurrencyCheck(collection); + var request = new ODataRequest(updateMethod, _session, entryIdent, entryData, entryContent, headers: headers) + { + ResultRequired = resultRequired, + CheckOptimisticConcurrency = checkOptimisticConcurrency + }; + AssignHeaders(request); + return request; + } + + public async Task CreateDeleteRequestAsync(string collection, string entryIdent, IDictionary headers = null) + { + await WriteEntryContentAsync( + RestVerbs.Delete, collection, entryIdent, null, false).ConfigureAwait(false); + + var request = new ODataRequest(RestVerbs.Delete, _session, entryIdent, headers) + { + CheckOptimisticConcurrency = _session.Metadata.EntityCollectionRequiresOptimisticConcurrencyCheck(collection) + }; + AssignHeaders(request); + return request; + } + + public async Task CreateLinkRequestAsync(string collection, string linkName, string entryIdent, string linkIdent, IDictionary headers = null) + { + var associationName = _session.Metadata.GetNavigationPropertyExactName(collection, linkName); + var linkMethod = _session.Metadata.IsNavigationPropertyCollection(collection, associationName) ? + RestVerbs.Post : + RestVerbs.Put; + + var commandText = FormatLinkPath(entryIdent, associationName); + var linkContent = await WriteLinkContentAsync(linkMethod, commandText, linkIdent).ConfigureAwait(false); + var request = new ODataRequest(linkMethod, _session, commandText, null, linkContent, headers: headers) + { + IsLink = true, + }; + AssignHeaders(request); + return request; + } + + public async Task CreateUnlinkRequestAsync(string collection, string linkName, string entryIdent, string linkIdent, IDictionary headers = null) + { + var associationName = _session.Metadata.GetNavigationPropertyExactName(collection, linkName); + var commandText = FormatLinkPath(entryIdent, associationName, linkIdent); + + await WriteEntryContentAsync(RestVerbs.Delete, collection, commandText, null, false).ConfigureAwait(false); + + var request = new ODataRequest(RestVerbs.Delete, _session, commandText, headers) + { + IsLink = true, + }; + AssignHeaders(request); + return request; + } + + public async Task CreateFunctionRequestAsync(string commandText, string functionName, IDictionary headers = null) + { + var verb = _session.Metadata.GetFunctionVerb(functionName); + + await WriteFunctionContentAsync(verb, commandText).ConfigureAwait(false); + + var request = new ODataRequest(verb, _session, commandText, headers) + { + ResultRequired = true, + }; + AssignHeaders(request); + return request; + } + + public async Task CreateActionRequestAsync(string commandText, string actionName, string boundTypeName, IDictionary parameters, bool resultRequired, IDictionary headers = null) + { + var verb = RestVerbs.Post; + Stream entryContent = null; + var usePayloadFormat = ODataPayloadFormat.Unspecified; + + if (parameters != null && parameters.Any()) + { + entryContent = await WriteActionContentAsync(RestVerbs.Post, commandText, actionName, boundTypeName, parameters).ConfigureAwait(false); + usePayloadFormat = ODataPayloadFormat.Json; + } + else + { + await WriteFunctionContentAsync(verb, commandText).ConfigureAwait(false); + } + + var request = new ODataRequest(verb, _session, commandText, parameters, entryContent, headers: headers) + { + ResultRequired = resultRequired, + UsePayloadFormat = usePayloadFormat, + }; + AssignHeaders(request); + return request; + } + + protected abstract Task WriteEntryContentAsync(string method, string collection, string commandText, IDictionary entryData, bool resultRequired); + protected abstract Task WriteLinkContentAsync(string method, string commandText, string linkIdent); + protected abstract Task WriteFunctionContentAsync(string method, string commandText); + protected abstract Task WriteActionContentAsync(string method, string commandText, string actionName, string boundTypeName, IDictionary parameters); + protected abstract Task WriteStreamContentAsync(Stream stream, bool writeAsText); + protected abstract string FormatLinkPath(string entryIdent, string navigationPropertyName, string linkIdent = null); + protected abstract void AssignHeaders(ODataRequest request); + + protected string GetContentId(ReferenceLink referenceLink) + { + string contentId = null; + var linkEntry = referenceLink.LinkData.ToDictionary(TypeCache); + if (_deferredBatchWriter != null) + { + contentId = _deferredBatchWriter.Value.GetContentId(linkEntry, referenceLink.LinkData); + } + + return contentId; + } + + private bool HasUpdatedKeyProperties(string collection, IDictionary entryKey, IDictionary entryData) + { + var entityCollection = _session.Metadata.GetEntityCollection(collection); + foreach (var propertyName in _session.Metadata.GetStructuralPropertyNames(entityCollection.Name)) + { + if (entryKey.ContainsKey(propertyName) && entryData.ContainsKey(propertyName) && + !entryKey[propertyName].Equals(entryData[propertyName])) + { + return true; + } + } + + return false; + } + + private bool IsTextMediaType(string mediaType) + { + if (mediaType == null) + { + return true; + } + + var items = mediaType.Split('/'); + var type = items[0]; + var subtype = items.Length > 0 ? items[1] : string.Empty; + + if (type == "text") + { + return true; + } + + if (subtype == "text" || subtype == "xml" || subtype == "json") + { + return true; + } + + return false; + } +} diff --git a/src/Simple.OData.Client.Core/Adapter/ResponseNode.cs b/src/Simple.OData.Client.Core/Adapter/ResponseNode.cs new file mode 100644 index 000000000..33a7b5991 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ResponseNode.cs @@ -0,0 +1,12 @@ +namespace Simple.OData.Client; + +public class ResponseNode +{ + public AnnotatedFeed Feed { get; set; } + public AnnotatedEntry Entry { get; set; } + public string LinkName { get; set; } + + public object Value => Feed != null && Feed.Entries != null + ? Feed.Entries + : Entry?.Data; +} diff --git a/src/Simple.OData.Client.Core/Adapter/ResponseReaderBase.cs b/src/Simple.OData.Client.Core/Adapter/ResponseReaderBase.cs new file mode 100644 index 000000000..c888e8bf7 --- /dev/null +++ b/src/Simple.OData.Client.Core/Adapter/ResponseReaderBase.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public abstract class ResponseReaderBase : IResponseReader +{ + protected readonly ISession _session; + + protected ResponseReaderBase(ISession session) + { + _session = session; + } + + protected ITypeCache TypeCache => _session.TypeCache; + + public abstract Task GetResponseAsync(HttpResponseMessage responseMessage); + + public async Task AssignBatchActionResultsAsync(IODataClient client, + ODataResponse batchResponse, IList> actions, IList responseIndexes) + { + var exceptions = new List(); + for (var actionIndex = 0; actionIndex < actions.Count && !exceptions.Any(); actionIndex++) + { + var responseIndex = responseIndexes[actionIndex]; + if (responseIndex >= 0 && responseIndex < batchResponse.Batch.Count) + { + var actionResponse = batchResponse.Batch[responseIndex]; + if (actionResponse.Exception != null) + { + if (actionResponse.StatusCode == (int)HttpStatusCode.NotFound && _session.Settings.IgnoreResourceNotFoundException) + { + await actions[actionIndex](new ODataClient(client as ODataClient, actionResponse)).ConfigureAwait(false); + } + else + { + exceptions.Add(actionResponse.Exception); + } + } + else + { + await actions[actionIndex](new ODataClient(client as ODataClient, actionResponse)).ConfigureAwait(false); + } + } + } + + if (exceptions.Any()) + { + throw exceptions.First(); + } + } + + protected abstract void ConvertEntry(ResponseNode entryNode, object entry); + + [Obsolete("The feed annotations are ignored. Use the method StartFeed(Stack nodeStack) instead.")] + protected void StartFeed(Stack nodeStack, ODataFeedAnnotations feedAnnotations) + { + StartFeed(nodeStack); + } + + protected void StartFeed(Stack nodeStack) + { + nodeStack.Push(new ResponseNode + { + Feed = new AnnotatedFeed(new List()), + }); + } + + protected void EndFeed(Stack nodeStack, ODataFeedAnnotations feedAnnotations, ref ResponseNode rootNode) + { + var feedNode = nodeStack.Pop(); + if (nodeStack.Any()) + { + nodeStack.Peek().Feed = feedNode.Feed; + } + else + { + rootNode = feedNode; + } + + feedNode.Feed.SetAnnotations(feedAnnotations); + } + + protected void StartEntry(Stack nodeStack) + { + nodeStack.Push(new ResponseNode + { + Entry = new AnnotatedEntry(new Dictionary()) + }); + } + + protected void EndEntry(Stack nodeStack, ref ResponseNode rootNode, object entry) + { + var entryNode = nodeStack.Pop(); + ConvertEntry(entryNode, entry); + if (nodeStack.Any()) + { + var node = nodeStack.Peek(); + if (node.Feed != null) + { + node.Feed.Entries.Add(entryNode.Entry); + } + else + { + node.Entry = entryNode.Entry; + } + } + else + { + rootNode = entryNode; + } + } + + protected void StartNavigationLink(Stack nodeStack, string linkName) + { + nodeStack.Push(new ResponseNode + { + LinkName = linkName, + }); + } + + protected void EndNavigationLink(Stack nodeStack) + { + var linkNode = nodeStack.Pop(); + var linkValue = linkNode.Value; + if (linkValue != null) + { + if (linkValue is IDictionary d) + { + if (!d.Any()) + { + linkValue = null; + } + else if (_session.Settings.IncludeAnnotationsInResults) + { + d[FluentCommand.AnnotationsLiteral] = linkNode.Entry.Annotations; + } + } + else if (linkValue is IEnumerable annotatedEntries) + { + linkValue = annotatedEntries.Select(x => + { + if (_session.Settings.IncludeAnnotationsInResults) + { + x.Data[FluentCommand.AnnotationsLiteral] = x.Annotations; + } + + return x.Data; + }).ToArray(); + } + + nodeStack.Peek().Entry.Data.Add(linkNode.LinkName, linkValue); + } + + if (linkNode.Feed?.Annotations != null) + { + nodeStack.Peek().Entry.SetLinkAnnotations(linkNode.Feed.Annotations); + } + } +} diff --git a/src/Simple.OData.Client.Core/BatchPayloadUriOption.cs b/src/Simple.OData.Client.Core/BatchPayloadUriOption.cs new file mode 100644 index 000000000..8ee12befc --- /dev/null +++ b/src/Simple.OData.Client.Core/BatchPayloadUriOption.cs @@ -0,0 +1,32 @@ +namespace Simple.OData.Client; + +/// +/// Indicates the format of Request-URI in each sub request in the batch operation. +/// +/// +/// This must be kept aligned with https://github.com/OData/odata.net/blob/master/src/Microsoft.OData.Core/Batch/ODataBatchPayloadUriOptions.cs +/// +public enum BatchPayloadUriOption +{ + /// + /// Absolute URI with schema, host, port, and absolute resource path. + /// + /// Example: + /// GET https://host:1234/path/service/People(1) HTTP/1.1 + AbsoluteUri, + + /// + /// Absolute resource path and separate Host header. + /// + /// Example: + /// GET /path/service/People(1) HTTP/1.1 + /// Host: myserver.mydomain.org:1234 + AbsoluteUriUsingHostHeader, + + /// + /// Resource path relative to the batch request URI. + /// + /// Example: + /// GET People(1) HTTP/1.1 + RelativeUri +} diff --git a/src/Simple.OData.Client.Core/Cache/ITypeCache.cs b/src/Simple.OData.Client.Core/Cache/ITypeCache.cs new file mode 100644 index 000000000..d90888667 --- /dev/null +++ b/src/Simple.OData.Client.Core/Cache/ITypeCache.cs @@ -0,0 +1,264 @@ +using System; +using System.Collections.Generic; +using System.Reflection; + +namespace Simple.OData.Client; + +/// +/// Access the type definition with good performance. +/// +public interface ITypeCache +{ + /// + /// Gets the type converters. + /// + ITypeConverter Converter { get; } + + /// + /// Register the type, along with its dynamic properties name, also applies to sub-types in the same assembly + /// + /// + /// + void Register(string dynamicContainerName = "DynamicProperties"); + + /// + /// Register the type, along with its dynamic properties name, also applies to sub-types in the same assembly + /// + /// + /// + void Register(Type type, string dynamicContainerName = "DynamicProperties"); + + /// + /// Get whether the type is a dynamic + /// + /// + /// + [Obsolete("Should check DynamicContainerName")] + bool IsDynamicType(Type type); + + /// + /// Gets the dynamic properties container name for a type, will be unless registered + /// + /// + /// + string DynamicContainerName(Type type); + + /// + /// Get the OData annotations property if any. + /// + PropertyInfo GetAnnotationsProperty(Type type); + + /// + /// Get all derived types in the same assembly. + /// + /// + /// + IEnumerable GetDerivedTypes(Type type); + + /// + /// Get the mapped properties for a type + /// + /// + /// + IEnumerable GetMappedProperties(Type type); + + /// + /// Get the mapped properties for a type along with the associated property name + /// + /// + /// + IEnumerable> GetMappedPropertiesWithNames(Type type); + + /// + /// Get a property that is either directly named or mapped via an attribute + /// + /// + /// + /// + PropertyInfo GetMappedProperty(Type type, string propertyName); + + /// + /// Get the mapping name for a property + /// + /// + /// + /// + string GetMappedName(Type type, PropertyInfo propertyInfo); + + /// + /// Get the mapping name for a named property + /// + /// + /// + /// + string GetMappedName(Type type, string propertyName); + + /// + /// Get all properties for a type + /// + /// + /// + IEnumerable GetAllProperties(Type type); + + /// + /// Get a directly named property + /// + /// + /// + /// + PropertyInfo GetNamedProperty(Type type, string propertyName); + + /// + /// Get declared properties for a type. + /// + /// + /// + IEnumerable GetDeclaredProperties(Type type); + + /// + /// Get a declared property + /// + /// + /// + /// + PropertyInfo GetDeclaredProperty(Type type, string propertyName); + + /// + /// Get all fields for a type + /// + /// + /// + IEnumerable GetAllFields(Type type); + + /// + /// Get a field for a type + /// + /// + /// + /// + [Obsolete("The includeNonPublic field is ignored. Use the method GetAnyField(Type type, string fieldName) instead.")] + FieldInfo GetAnyField(Type type, string fieldName, bool includeNonPublic); + + /// + /// Get a field for a type + /// + /// + /// + /// + /// + FieldInfo GetAnyField(Type type, string fieldName); + + /// + /// Get declared fields for a type + /// + /// + /// + IEnumerable GetDeclaredFields(Type type); + + /// + /// Get a declared field for a type + /// + /// + /// + /// + FieldInfo GetDeclaredField(Type type, string fieldName); + + /// + /// Get a declared method for a type + /// + /// + /// + /// + MethodInfo GetDeclaredMethod(Type type, string methodName); + + /// + /// Get the declared constructors for a type + /// + /// + /// + IEnumerable GetDeclaredConstructors(Type type); + + /// + /// Get the default constructor for a type + /// + /// + /// + ConstructorInfo GetDefaultConstructor(Type type); + + /// + /// Get the type's attributes + /// + /// + /// + TypeAttributes GetTypeAttributes(Type type); + + /// + /// Get the generic type arguments for a type + /// + /// + /// + Type[] GetGenericTypeArguments(Type type); + + /// + /// Get whether a type is anonymous + /// + /// + /// + bool IsAnonymousType(Type type); + + /// + /// Get whether we can assign a value of this type to another + /// + /// + /// + /// + bool IsTypeAssignableFrom(Type type, Type otherType); + + /// + /// Get whether a type has a specific custom attribute + /// + /// + /// + /// + /// + bool HasCustomAttribute(Type type, Type attributeType, bool inherit); + + /// + /// Get whether a type is generic + /// + /// + /// + bool IsGeneric(Type type); + + /// + /// Gets whether a type is a value type + /// + /// + /// + bool IsValue(Type type); + + /// + /// Gets whether a type is an enum + /// + /// + /// + bool IsEnumType(Type type); + + /// + /// Get the base type of a type + /// + /// + /// + Type GetBaseType(Type type); + + /// + /// Get the mapped name of a type. + /// + /// + /// + string GetMappedName(Type type); + + bool TryConvert(object value, Type targetType, out object result); + + object Convert(object value, Type targetType); +} diff --git a/src/Simple.OData.Client.Core/Cache/TypeCache.cs b/src/Simple.OData.Client.Core/Cache/TypeCache.cs new file mode 100644 index 000000000..6852d673e --- /dev/null +++ b/src/Simple.OData.Client.Core/Cache/TypeCache.cs @@ -0,0 +1,347 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Reflection; + +namespace Simple.OData.Client; + +/// +public class TypeCache : ITypeCache +{ + private readonly ConcurrentDictionary _cache; + + /// + /// Creates a new instance of the class. + /// + /// + /// + public TypeCache(ITypeConverter converter, INameMatchResolver nameMatchResolver) + { + _cache = new ConcurrentDictionary(); + NameMatchResolver = nameMatchResolver ?? ODataNameMatchResolver.Strict; ; + Converter = converter; + } + + /// + public ITypeConverter Converter { get; } + + public INameMatchResolver NameMatchResolver { get; } + + /// + public void Register(string dynamicContainerName = "DynamicProperties") + { + Register(typeof(T), dynamicContainerName); + } + + /// + public void Register(Type type, string dynamicContainerName = "DynamicProperties") + { + InternalRegister(type, true, dynamicContainerName); + + foreach (var subType in GetDerivedTypes(type)) + { + InternalRegister(subType, true, dynamicContainerName); + } + } + + /// + public bool IsDynamicType(Type type) + { + return Resolver(type).IsDynamicType; + } + + /// + public string DynamicContainerName(Type type) + { + return Resolver(type).DynamicPropertiesName; + } + + public PropertyInfo GetAnnotationsProperty(Type type) + { + return Resolver(type).AnnotationsProperty; + } + + public IEnumerable GetDerivedTypes(Type type) + { + return Resolver(type).DerivedTypes; + } + + /// + public IEnumerable GetMappedProperties(Type type) + { + return Resolver(type).MappedProperties; + } + + /// + public IEnumerable> GetMappedPropertiesWithNames(Type type) + { + return Resolver(type).MappedPropertiesWithNames; + } + + /// + public PropertyInfo GetMappedProperty(Type type, string propertyName) + { + return Resolver(type).GetMappedProperty(propertyName); + } + + /// + public string GetMappedName(Type type, PropertyInfo propertyInfo) + { + return Resolver(type).GetMappedName(propertyInfo); + } + + /// + public string GetMappedName(Type type, string propertyName) + { + return Resolver(type).GetMappedName(propertyName); + } + + /// + public IEnumerable GetAllProperties(Type type) + { + return Resolver(type).AllProperties; + } + + /// + public PropertyInfo GetNamedProperty(Type type, string propertyName) + { + return Resolver(type).GetAnyProperty(propertyName); + } + + /// + public IEnumerable GetDeclaredProperties(Type type) + { + return Resolver(type).DeclaredProperties; + } + + /// + public PropertyInfo GetDeclaredProperty(Type type, string propertyName) + { + return Resolver(type).GetDeclaredProperty(propertyName); + } + + /// + public IEnumerable GetAllFields(Type type) + { + return Resolver(type).AllFields; + } + + /// + + [Obsolete("The includeNonPublic field is ignored. Use the method GetAnyField(Type type, string fieldName) instead.")] + public FieldInfo GetAnyField(Type type, string fieldName, bool includeNonPublic) + { + return GetAnyField(type, fieldName); + } + + /// + public FieldInfo GetAnyField(Type type, string fieldName) + { + return Resolver(type).GetAnyField(fieldName); + } + + /// + public IEnumerable GetDeclaredFields(Type type) + { + return Resolver(type).DeclaredFields; + } + + /// + public FieldInfo GetDeclaredField(Type type, string fieldName) + { + return Resolver(type).GetDeclaredField(fieldName); + } + + /// + public MethodInfo GetDeclaredMethod(Type type, string methodName) + { + return Resolver(type).GetDeclaredMethod(methodName); + } + + /// + public IEnumerable GetDeclaredConstructors(Type type) + { + return Resolver(type).GetDeclaredConstructors(); + } + + /// + public ConstructorInfo GetDefaultConstructor(Type type) + { + return Resolver(type).GetDefaultConstructor(); + } + + /// + public TypeAttributes GetTypeAttributes(Type type) + { + return Resolver(type).GetTypeAttributes(); + } + + /// + public Type[] GetGenericTypeArguments(Type type) + { + return Resolver(type).GetGenericTypeArguments(); + } + + /// + public bool IsAnonymousType(Type type) + { + return Resolver(type).IsAnonymousType; + } + + /// + public bool IsGeneric(Type type) + { + return Resolver(type).IsGeneric; + } + + /// + public bool IsValue(Type type) + { + return Resolver(type).IsValue; + } + + /// + public bool IsEnumType(Type type) + { + return Resolver(type).IsEnumType; + } + + /// + public Type GetBaseType(Type type) + { + return Resolver(type).BaseType; + } + + /// + public bool IsTypeAssignableFrom(Type type, Type otherType) + { + return Resolver(type).IsTypeAssignableFrom(otherType); + } + + /// + public bool HasCustomAttribute(Type type, Type attributeType, bool inherit) + { + return Resolver(type).HasCustomAttribute(attributeType, inherit); + } + + /// + public string GetMappedName(Type type) + { + return Resolver(type).MappedName; + } + + public bool TryConvert(object value, Type targetType, out object result) + { + try + { + if (value == null) + { + result = IsValue(targetType) + ? Activator.CreateInstance(targetType) + : null; + } + else if (IsTypeAssignableFrom(targetType, value.GetType())) + { + result = value; + } + else if (targetType == typeof(string)) + { + result = value.ToString(); + } + else if (IsEnumType(targetType) && value is string) + { + result = Enum.Parse(targetType, value.ToString(), true); + } + else if (targetType == typeof(byte[]) && value is string) + { + result = System.Convert.FromBase64String(value.ToString()); + } + else if (targetType == typeof(string) && value is byte[] bytes) + { + result = System.Convert.ToBase64String(bytes); + } + else if ((targetType == typeof(DateTime) || targetType == typeof(DateTime?)) && value is DateTimeOffset offset) + { + result = offset.DateTime; + } + else if ((targetType == typeof(DateTime) || targetType == typeof(DateTime?)) && ImplicitConversionTo(value) is MethodInfo implicitMethod) + { + result = (DateTime)implicitMethod.Invoke(value, new object[] { value }); + } + else if ((targetType == typeof(DateTimeOffset) || targetType == typeof(DateTimeOffset?)) && value is DateTime time) + { + result = new DateTimeOffset(time); + } + else if (IsEnumType(targetType)) + { + result = Enum.ToObject(targetType, value); + } + else if (targetType == typeof(Guid) && value is string) + { + result = new Guid(value.ToString()); + } + else if (Nullable.GetUnderlyingType(targetType) != null) + { + result = Convert(value, Nullable.GetUnderlyingType(targetType)); + } + else if (Converter.HasObjectConverter(targetType)) + { + result = Converter.Convert(value, targetType); + } + else + { + var descriptor = TypeDescriptor.GetConverter(targetType); + result = descriptor != null & descriptor.CanConvertTo(targetType) + ? descriptor.ConvertTo(value, targetType) + : System.Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture); + } + + return true; + } + catch (Exception) + { + result = null; + return false; + } + } + + public object Convert(object value, Type targetType) + { + if (value == null && !IsValue(targetType)) + { + return null; + } + else if (TryConvert(value, targetType, out var result)) + { + return result; + } + + throw new FormatException($"Unable to convert value from type {value.GetType()} to type {targetType}"); + } + + private TypeCacheResolver Resolver(Type type) + { + var resolver = _cache.GetOrAdd(type, x => InternalRegister(x)); + + return resolver; + } + + private TypeCacheResolver InternalRegister(Type type, bool dynamicType = false, string dynamicContainerName = null) + { + var resolver = new TypeCacheResolver(type, NameMatchResolver, dynamicType, dynamicContainerName); + + _cache[type] = resolver; + + return resolver; + } + + private MethodInfo ImplicitConversionTo(object value) + { + return value.GetType().GetMethods() + .FirstOrDefault(m => string.Equals(m.Name, "op_Implicit") + && m.ReturnType == typeof(T)); + } +} diff --git a/src/Simple.OData.Client.Core/Cache/TypeCacheExtensions.cs b/src/Simple.OData.Client.Core/Cache/TypeCacheExtensions.cs new file mode 100644 index 000000000..36ce55940 --- /dev/null +++ b/src/Simple.OData.Client.Core/Cache/TypeCacheExtensions.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; + +namespace Simple.OData.Client.Extensions; + +internal static class TypeCacheExtensions +{ + public static IDictionary ToDictionary(this ITypeCache typeCache, object value) + { + var mpn = typeCache.GetMappedPropertiesWithNames(value.GetType()); + + return mpn.Select(x => new KeyValuePair(x.Item2, x.Item1.GetValueEx(value))) + .ToIDictionary(); + } + + public static T Convert(this ITypeCache typeCache, object value) + { + return (T)typeCache.Convert(value, typeof(T)); + } + + public static object Convert(this ITypeCache typeCache, object value, Type targetType) + { + if (value == null && !typeCache.IsValue(targetType)) + { + return null; + } + else if (typeCache.TryConvert(value, targetType, out var result)) + { + return result; + } + + throw new FormatException($"Unable to convert value from type {value.GetType()} to type {targetType}"); + } + + [Obsolete("Use ITypeCache.TryConvert")] + public static bool TryConvert(this ITypeCache typeCache, object value, Type targetType, out object result) + { + try + { + if (value == null) + { + result = typeCache.IsValue(targetType) ? Activator.CreateInstance(targetType) : null; + } + else if (typeCache.IsTypeAssignableFrom(targetType, value.GetType())) + { + result = value; + } + else if (targetType == typeof(string)) + { + result = value.ToString(); + } + else if (typeCache.IsEnumType(targetType) && value is string) + { + result = Enum.Parse(targetType, value.ToString(), true); + } + else if (targetType == typeof(byte[]) && value is string) + { + result = System.Convert.FromBase64String(value.ToString()); + } + else if (targetType == typeof(string) && value is byte[] bytes) + { + result = System.Convert.ToBase64String(bytes); + } + else if ((targetType == typeof(DateTime) || targetType == typeof(DateTime?)) && value is DateTimeOffset offset) + { + result = offset.DateTime; + } + else if ((targetType == typeof(DateTimeOffset) || targetType == typeof(DateTimeOffset?)) && value is DateTime time) + { + result = new DateTimeOffset(time); + } + else if (typeCache.IsEnumType(targetType)) + { + result = Enum.ToObject(targetType, value); + } + else if (targetType == typeof(Guid) && value is string) + { + result = new Guid(value.ToString()); + } + else if (Nullable.GetUnderlyingType(targetType) != null) + { + result = typeCache.Convert(value, Nullable.GetUnderlyingType(targetType)); + } + else if (typeCache.Converter.HasObjectConverter(targetType)) + { + result = typeCache.Convert(value, targetType); + } + else + { + var descriptor = TypeDescriptor.GetConverter(targetType); + result = descriptor != null & descriptor.CanConvertTo(targetType) + ? descriptor.ConvertTo(value, targetType) + : System.Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture); + } + + return true; + } + catch (Exception) + { + result = null; + return false; + } + } +} diff --git a/src/Simple.OData.Client.Core/Cache/TypeCacheResolver.cs b/src/Simple.OData.Client.Core/Cache/TypeCacheResolver.cs new file mode 100644 index 000000000..628608a70 --- /dev/null +++ b/src/Simple.OData.Client.Core/Cache/TypeCacheResolver.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +/// +/// Holds information about a type. +/// +public class TypeCacheResolver +{ + private readonly INameMatchResolver _nameMatchResolver; + + /// + /// Creates a new instance of the class. + /// + /// Type of the cached properties. + /// Name match resolver. + /// Whether the cached type is dynamic. + /// Dynamic container name. + public TypeCacheResolver(Type type, INameMatchResolver nameMatchResolver, bool dynamicType = false, string dynamicContainerName = "DynamicProperties") + { + _nameMatchResolver = nameMatchResolver; + + Type = type; + DerivedTypes = type.DerivedTypes().ToList(); + IsDynamicType = dynamicType; + DynamicPropertiesName = dynamicContainerName; + TypeInfo = type.GetTypeInfo(); + AllProperties = type.GetAllProperties().ToList(); + DeclaredProperties = type.GetDeclaredProperties().ToList(); + AllFields = type.GetAllFields().ToList(); + DeclaredFields = type.GetDeclaredFields().ToList(); + MappedName = type.GetMappedName(); + MappedProperties = type.GetMappedProperties().ToList(); + MappedPropertiesWithNames = type.GetMappedPropertiesWithNames().ToList(); + + IsAnonymousType = type.IsAnonymousType(); + AnnotationsProperty = AllProperties.FirstOrDefault(x => x.PropertyType == typeof(ODataEntryAnnotations)); + } + + /// + /// Gets the type we are responsible for. + /// + public Type Type { get; } + + /// + /// Get all derived types in the same assembly. + /// + public IList DerivedTypes { get; } + + public TypeInfo TypeInfo { get; } + + /// + /// Gets the mapped name i.e. the OData type we correspond to. + /// + public string MappedName { get; } + + /// + /// Gets whether we are a dynamic type + /// + public bool IsDynamicType { get; } + + /// + /// Gets whether we are an anonymous type + /// + public bool IsAnonymousType { get; } + + /// + /// Gets whether we are a generic type + /// + public bool IsGeneric => TypeInfo.IsGenericType; + + /// + /// Gets whether we are a value type + /// + public bool IsValue => TypeInfo.IsValueType; + + /// + /// Gets whether we are an enum + /// + public bool IsEnumType => TypeInfo.IsEnum; + + /// + /// Gets the base type + /// + public Type BaseType => TypeInfo.BaseType; + + /// + /// Gets the dynamic properties container name + /// + // TODO: Store this as a PropertyInfo? + public string DynamicPropertiesName { get; set; } + + /// + /// Gets all properties + /// + public IList AllProperties { get; } + + /// + /// Gets declared properties + /// + public IList DeclaredProperties { get; } + + /// + /// Gets all fields + /// + public IList AllFields { get; } + + /// + /// Gets declared fields. + /// + public IList DeclaredFields { get; } + + /// + /// Gets mapped properties + /// + public IList MappedProperties { get; } + + /// + /// Gets mapped properties with the mapped name + /// + public IList> MappedPropertiesWithNames { get; } + + public PropertyInfo AnnotationsProperty { get; } + + /// + /// Gets a mapped property + /// + /// + /// + public PropertyInfo GetMappedProperty(string propertyName) + { + return (from t in MappedPropertiesWithNames where _nameMatchResolver.IsMatch(t.Item2, propertyName) select t.Item1).FirstOrDefault(); + } + + public string GetMappedName(PropertyInfo propertyInfo) + { + return (from t in MappedPropertiesWithNames where t.Item1 == propertyInfo select t.Item2).FirstOrDefault(); + } + + public string GetMappedName(string propertyName) + { + return (from t in MappedPropertiesWithNames where _nameMatchResolver.IsMatch(t.Item1.Name, propertyName) select t.Item2).FirstOrDefault(); + } + + public PropertyInfo GetAnyProperty(string propertyName) + { + var currentType = Type; + while (currentType != null && currentType != typeof(object)) + { + var property = currentType.GetTypeInfo().GetDeclaredProperty(propertyName); + if (property != null) + { + return property; + } + + currentType = currentType.GetTypeInfo().BaseType; + } + + return null; + } + + public PropertyInfo GetDeclaredProperty(string propertyName) + { + return TypeInfo.GetDeclaredProperty(propertyName); + } + + [Obsolete("The includeNonPublic field is ignored. Use the method GetAnyField(string fieldName) instead.")] + public FieldInfo GetAnyField(string fieldName, bool includeNonPublic) + { + return GetAnyField(fieldName); + } + + public FieldInfo GetAnyField(string fieldName) + { + var currentType = Type; + while (currentType != null && currentType != typeof(object)) + { + var field = currentType.GetDeclaredField(fieldName); + if (field != null) + { + return field; + } + + currentType = currentType.GetTypeInfo().BaseType; + } + + return null; + } + + public FieldInfo GetDeclaredField(string fieldName) + { + return TypeInfo.GetDeclaredField(fieldName); + } + + public MethodInfo GetDeclaredMethod(string methodName) + { + return TypeInfo.GetDeclaredMethod(methodName); + } + + public IEnumerable GetDeclaredConstructors() + { + return TypeInfo.DeclaredConstructors.Where(x => !x.IsStatic); + } + + public ConstructorInfo GetDefaultConstructor() + { + return GetDeclaredConstructors().SingleOrDefault(x => x.GetParameters().Length == 0); + } + + public TypeAttributes GetTypeAttributes() + { + return TypeInfo.Attributes; + } + + public Type[] GetGenericTypeArguments() + { + return TypeInfo.GenericTypeArguments; + } + + public bool IsTypeAssignableFrom(Type otherType) + { + return TypeInfo.IsAssignableFrom(otherType.GetTypeInfo()); + } + + public bool HasCustomAttribute(Type attributeType, bool inherit) + { + return TypeInfo.GetCustomAttribute(attributeType, inherit) != null; + } +} diff --git a/src/Simple.OData.Client.Core/CachedPluralizer.cs b/src/Simple.OData.Client.Core/CachedPluralizer.cs new file mode 100644 index 000000000..5925dbb3f --- /dev/null +++ b/src/Simple.OData.Client.Core/CachedPluralizer.cs @@ -0,0 +1,27 @@ +using System.Collections.Concurrent; + +namespace Simple.OData.Client; + +public class CachedPluralizer : IPluralizer +{ + private readonly IPluralizer pluralizer; + private readonly ConcurrentDictionary singles; + private readonly ConcurrentDictionary plurals; + + public CachedPluralizer(IPluralizer pluralizer) + { + this.pluralizer = pluralizer; + singles = new ConcurrentDictionary(); + plurals = new ConcurrentDictionary(); + } + + public string Pluralize(string word) + { + return plurals.GetOrAdd(word, x => pluralizer.Pluralize(x)); + } + + public string Singularize(string word) + { + return singles.GetOrAdd(word, x => pluralizer.Singularize(x)); + } +} diff --git a/src/Simple.OData.Client.Core/CustomConverters.cs b/src/Simple.OData.Client.Core/CustomConverters.cs new file mode 100644 index 000000000..c8a2bf2af --- /dev/null +++ b/src/Simple.OData.Client.Core/CustomConverters.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public static class CustomConverters +{ + private static readonly ConcurrentDictionary _converters; + + static CustomConverters() + { + _converters = new ConcurrentDictionary(); + } + + public static ITypeConverter Converter(string uri) + { + // TODO: Have a settings switch whether we use global dictionary or not? + return _converters.GetOrAdd(uri, new TypeConverter()); + } + + public static ITypeConverter Global => Converter("global"); + + [Obsolete("Use ODataClientSettings.TypeCache.RegisterTypeConverter")] + public static void RegisterTypeConverter(Type type, Func, object> converter) + { + Global.RegisterTypeConverter(type, converter); + + // Side-effect if we call the global is to register in all other converters + foreach (var kvp in _converters) + { + if (kvp.Key != "global") + { + kvp.Value.RegisterTypeConverter(type, converter); + } + } + } + + [Obsolete("Use ODataClientSettings.TypeCache.RegisterTypeConverter")] + public static void RegisterTypeConverter(Type type, Func converter) + { + Global.RegisterTypeConverter(type, converter); + + // Side-effect if we call the global is to register in all other converters + foreach (var kvp in _converters) + { + if (kvp.Key != "global") + { + kvp.Value.RegisterTypeConverter(type, converter); + } + } + } + + [Obsolete("Use ITypeCache.Converter")] + public static bool HasDictionaryConverter(Type type) + { + return Global.HasDictionaryConverter(type); + } + + [Obsolete("Use ITypeCache.Converter")] + public static bool HasObjectConverter(Type type) + { + return Global.HasObjectConverter(type); + } + + [Obsolete("Use ITypeCache.Converter")] + public static T Convert(IDictionary value) + { + return Global.Convert(value); + } + + [Obsolete("Use ITypeCache.Converter")] + public static T Convert(object value) + { + return Global.Convert(value); + } + + [Obsolete("Use ITypeCache.Converter")] + public static object Convert(IDictionary value, Type type) + { + return Global.Convert(value, type); + } + + [Obsolete("Use ITypeCache.Converter")] + public static object Convert(object value, Type type) + { + return Global.Convert(value, type); + } +} diff --git a/src/Simple.OData.Client.Core/EdmMetadataCache.cs b/src/Simple.OData.Client.Core/EdmMetadataCache.cs new file mode 100644 index 000000000..57230e1b2 --- /dev/null +++ b/src/Simple.OData.Client.Core/EdmMetadataCache.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Concurrent; +using System.Threading; +using System.Threading.Tasks; + +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +internal class EdmMetadataCache +{ + private static readonly ConcurrentDictionary _instances = new(); + private static readonly SemaphoreSlim semaphore = new(1); + + public static void Clear() + { + _instances.Clear(); + // NOTE: Is this necessary, if so should we wipe the ITypeCache constructors? + DictionaryExtensions.ClearCache(); + } + + public static void Clear(string key) + { + _instances.TryRemove(key, out _); + } + + public static EdmMetadataCache GetOrAdd(string key, Func valueFactory) + { + return _instances.GetOrAdd(key, valueFactory); + } + + public async static Task GetOrAddAsync(string key, Func> valueFactory) + { + // Cheaper to check first before we do the remote call + if (_instances.TryGetValue(key, out var found)) + { + return found; + } + + // Just allow one schema request at a time, unlikely to be much contention but avoids multiple requests for same endpoint. + await semaphore.WaitAsync().ConfigureAwait(false); + + try + { + if (_instances.TryGetValue(key, out found)) + { + return found; + } + + found = await valueFactory(key).ConfigureAwait(false); + + return _instances.GetOrAdd(key, found); + } + finally + { + semaphore.Release(); + } + } + + private readonly ITypeCache typeCache; + + public EdmMetadataCache(string key, string metadataDocument, ITypeCache typeCache) + { + if (string.IsNullOrWhiteSpace(key)) + { + throw new ArgumentNullException(nameof(key)); + } + + if (string.IsNullOrWhiteSpace(metadataDocument)) + { + throw new ArgumentNullException(nameof(metadataDocument)); + } + + this.typeCache = typeCache; + + Key = key; + MetadataDocument = metadataDocument; + } + + public string Key { get; } + + public string MetadataDocument { get; } + + public IODataAdapter GetODataAdapter(ISession session) + { + return session.Settings.AdapterFactory.CreateAdapterLoader(MetadataDocument, typeCache)(session); + } +} diff --git a/src/Simple.OData.Client.Core/EntityCollection.cs b/src/Simple.OData.Client.Core/EntityCollection.cs new file mode 100644 index 000000000..a572857c5 --- /dev/null +++ b/src/Simple.OData.Client.Core/EntityCollection.cs @@ -0,0 +1,19 @@ +namespace Simple.OData.Client; + +public class EntityCollection +{ + internal EntityCollection(string name, EntityCollection baseEntityCollection = null) + { + Name = name; + BaseEntityCollection = baseEntityCollection; + } + + public override string ToString() + { + return Name; + } + + public string Name { get; private set; } + + public EntityCollection BaseEntityCollection { get; private set; } +} diff --git a/src/Simple.OData.Client.Core/EntryDetails.cs b/src/Simple.OData.Client.Core/EntryDetails.cs new file mode 100644 index 000000000..ffbbeee92 --- /dev/null +++ b/src/Simple.OData.Client.Core/EntryDetails.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public class ReferenceLink +{ + public string LinkName { get; set; } + public object LinkData { get; set; } + public string ContentId { get; set; } +} + +public class EntryDetails +{ + public IDictionary Properties { get; } = new Dictionary(); + public IDictionary> Links { get; } = new Dictionary>(); + public bool HasOpenTypeProperties { get; set; } + + public void AddProperty(string propertyName, object propertyValue) + { + Properties.Add(propertyName, propertyValue); + } + + public void AddLink(string linkName, object linkData, string contentId = null) + { + if (!Links.TryGetValue(linkName, out var links)) + { + links = new List(); + Links.Add(linkName, links); + } + + links.Add(new ReferenceLink() { LinkName = linkName, LinkData = linkData, ContentId = contentId }); + } +} + diff --git a/src/Simple.OData.Client.Core/Expressions/ColumnExpression.cs b/src/Simple.OData.Client.Core/Expressions/ColumnExpression.cs new file mode 100644 index 000000000..3d0915c9c --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ColumnExpression.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +internal static class ColumnExpression +{ + public static IEnumerable ExtractColumnNames(this Expression> expression, ITypeCache typeCache) + { + if (expression is not LambdaExpression lambdaExpression) + { + throw Utils.NotSupportedExpression(expression); + } + + return lambdaExpression.Body.NodeType switch + { + ExpressionType.MemberAccess or ExpressionType.Convert => ExtractColumnNames(lambdaExpression.Body, typeCache), + ExpressionType.Call => ExtractColumnNames(lambdaExpression.Body as MethodCallExpression, typeCache), + ExpressionType.New => ExtractColumnNames(lambdaExpression.Body as NewExpression, typeCache), + _ => throw Utils.NotSupportedExpression(lambdaExpression.Body), + }; + } + + public static string ExtractColumnName(this Expression expression, ITypeCache typeCache) + { + return expression.ExtractColumnNames(typeCache).Single(); + } + + public static IEnumerable ExtractColumnNames(this Expression expression, ITypeCache typeCache) + { + return expression.NodeType switch + { + ExpressionType.MemberAccess => ExtractColumnNames(expression as MemberExpression, typeCache), + ExpressionType.Convert or ExpressionType.Quote => ExtractColumnNames((expression as UnaryExpression).Operand, typeCache), + ExpressionType.Lambda => ExtractColumnNames((expression as LambdaExpression).Body, typeCache), + ExpressionType.Call => ExtractColumnNames(expression as MethodCallExpression, typeCache), + ExpressionType.New => ExtractColumnNames(expression as NewExpression, typeCache), + _ => throw Utils.NotSupportedExpression(expression), + }; + } + + private static IEnumerable ExtractColumnNames(MethodCallExpression callExpression, ITypeCache typeCache) + { + if (callExpression.Method.Name == "Select" && callExpression.Arguments.Count == 2) + { + return ExtractColumnNames(callExpression.Arguments[0], typeCache) + .SelectMany(x => ExtractColumnNames(callExpression.Arguments[1], typeCache) + .Select(y => string.Join("/", x, y))); + } + else if (callExpression.Method.Name == "OrderBy" && callExpression.Arguments.Count == 2) + { + if (callExpression.Arguments[0] is MethodCallExpression && ((callExpression.Arguments[0] as MethodCallExpression).Method.Name == "Select")) + { + throw Utils.NotSupportedExpression(callExpression); + } + + return ExtractColumnNames(callExpression.Arguments[0], typeCache) + .SelectMany(x => ExtractColumnNames(callExpression.Arguments[1], typeCache) + .OrderBy(y => string.Join("/", x, y))); + } + else if (callExpression.Method.Name == "OrderByDescending" && callExpression.Arguments.Count == 2) + { + if (callExpression.Arguments[0] is MethodCallExpression && ((callExpression.Arguments[0] as MethodCallExpression).Method.Name == "Select")) + { + throw Utils.NotSupportedExpression(callExpression); + } + + return ExtractColumnNames(callExpression.Arguments[0], typeCache) + .SelectMany(x => ExtractColumnNames(callExpression.Arguments[1], typeCache) + .OrderByDescending(y => string.Join("/", x, y))); + } + else + { + throw Utils.NotSupportedExpression(callExpression); + } + } + + private static IEnumerable ExtractColumnNames(NewExpression newExpression, ITypeCache typeCache) + { + return newExpression.Arguments.SelectMany(x => ExtractColumnNames(x, typeCache)); + } + + private static IEnumerable ExtractColumnNames(MemberExpression memberExpression, ITypeCache typeCache) + { + var memberName = typeCache.GetMappedName(memberExpression.Expression.Type, memberExpression.Member.Name); + + //var memberName = memberExpression.Expression.Type + // .GetNamedProperty(memberExpression.Member.Name) + // .GetMappedName(); + + return memberExpression.Expression is MemberExpression + ? memberExpression.Expression.ExtractColumnNames(typeCache).Select(x => string.Join("/", x, memberName)) + : new[] { memberName }; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ExpandExpression.cs b/src/Simple.OData.Client.Core/Expressions/ExpandExpression.cs new file mode 100644 index 000000000..9f00ec1e3 --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ExpandExpression.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +internal static class ExpandExpression +{ + public static IEnumerable ExtractExpandAssociations( + this Expression> expression, + ITypeCache typeCache) + { + var expandExpressionVisitor = new ExpandExpressionVisitor(typeCache); + expandExpressionVisitor.Visit(expression); + + if (expandExpressionVisitor.ExpandAssociations.Any()) + { + return expandExpressionVisitor.ExpandAssociations; + } + + throw Utils.NotSupportedExpression(expression); + } +} + +internal class ExpandExpressionVisitor : ExpressionVisitor +{ + private readonly ITypeCache _typeCache; + + public ExpandExpressionVisitor(ITypeCache typeCache) + { + _typeCache = typeCache; + } + + public List ExpandAssociations { get; } = new List(); + + protected override Expression VisitMember(MemberExpression node) + { + var memberName = _typeCache.GetMappedName(node.Expression.Type, node.Member.Name); + var association = new ODataExpandAssociation(memberName); + var associationCollection = node.Expression is MemberExpression + ? AddNestedExpandAssociationAndGetDeepestChild(node.Expression).ExpandAssociations + : ExpandAssociations; + associationCollection.Add(association); + + return node; + } + + protected override Expression VisitUnary(UnaryExpression node) + { + if (node.NodeType != ExpressionType.Convert) + { + return base.VisitUnary(node); + } + + ExpandAssociations.AddRange(ExtractNestedExpandAssociations(node.Operand)); + return node; + } + + protected override Expression VisitMethodCall(MethodCallExpression node) + { + if (node.Arguments.Count != 2) + { + throw Utils.NotSupportedExpression(node); + } + + var association = AddNestedExpandAssociationAndGetDeepestChild(node.Arguments[0]); + + switch (node.Method.Name) + { + case "Select": + { + association.ExpandAssociations.AddRange(ExtractNestedExpandAssociations(node.Arguments[1])); + + return node; + } + case "OrderBy": + case "ThenBy": + { + if ((node.Arguments[0] as MethodCallExpression)?.Method.Name == "Select") + { + throw Utils.NotSupportedExpression(node); + } + + association.OrderByColumns + .AddRange(node.Arguments[1] + .ExtractColumnNames(_typeCache).Select(c => new ODataOrderByColumn(c, false))); + + return node; + } + case "OrderByDescending": + case "ThenByDescending": + { + if ((node.Arguments[0] as MethodCallExpression)?.Method.Name == "Select") + { + throw Utils.NotSupportedExpression(node); + } + + association.OrderByColumns + .AddRange(node.Arguments[1] + .ExtractColumnNames(_typeCache).Select(c => new ODataOrderByColumn(c, true))); + + return node; + } + case "Where": + { + var filterExpression = + ODataExpression.FromLinqExpression((node.Arguments[1] as LambdaExpression)?.Body); + association.FilterExpression = association.FilterExpression is null + ? filterExpression + : association.FilterExpression && filterExpression; + + return node; + } + default: + throw Utils.NotSupportedExpression(node); + } + } + + protected override Expression VisitNew(NewExpression node) + { + ExpandAssociations.AddRange(node.Arguments.SelectMany(ExtractNestedExpandAssociations)); + return node; + } + + private ODataExpandAssociation AddNestedExpandAssociationAndGetDeepestChild(Expression nestedExpression) + { + var nestedAssociation = ExtractNestedExpandAssociations(nestedExpression).First(); + ExpandAssociations.Add(nestedAssociation); + var deepestChildAssociation = nestedAssociation; + while (deepestChildAssociation.ExpandAssociations.Any()) + { + deepestChildAssociation = deepestChildAssociation.ExpandAssociations.First(); + } + + return deepestChildAssociation; + } + + private IEnumerable ExtractNestedExpandAssociations(Expression expression) + { + var nestedExpandExpressionVisitor = new ExpandExpressionVisitor(_typeCache); + nestedExpandExpressionVisitor.Visit(expression); + return nestedExpandExpressionVisitor.ExpandAssociations; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ExpressionContext.cs b/src/Simple.OData.Client.Core/Expressions/ExpressionContext.cs new file mode 100644 index 000000000..c73ae6356 --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ExpressionContext.cs @@ -0,0 +1,29 @@ +namespace Simple.OData.Client; + +internal class ExpressionContext +{ + public ISession Session { get; set; } + public EntityCollection EntityCollection { get; set; } + public string ScopeQualifier { get; set; } + public string DynamicPropertiesContainerName { get; set; } + public bool IsQueryOption { get; set; } + + public ExpressionContext(ISession session) + { + Session = session; + } + + public ExpressionContext(ISession session, EntityCollection entityCollection, string scopeQualifier, string dynamicPropertiesContainerName) + { + Session = session; + EntityCollection = entityCollection; + ScopeQualifier = scopeQualifier; + DynamicPropertiesContainerName = dynamicPropertiesContainerName; + } + + public ExpressionContext(ISession session, bool isQueryOption) + { + Session = session; + IsQueryOption = isQueryOption; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ExpressionFunction.cs b/src/Simple.OData.Client.Core/Expressions/ExpressionFunction.cs new file mode 100644 index 000000000..3ac9f4a33 --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ExpressionFunction.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +public class ExpressionFunction +{ + public string FunctionName { get; set; } + public List Arguments { get; set; } + + public class FunctionCall + { + public string FunctionName { get; private set; } + public int ArgumentCount { get; private set; } + + public FunctionCall(string functionName, int argumentCount) + { + FunctionName = functionName; + ArgumentCount = argumentCount; + } + + public override bool Equals(object obj) + { + if (obj is FunctionCall) + { + return FunctionName == (obj as FunctionCall).FunctionName && + ArgumentCount == (obj as FunctionCall).ArgumentCount; + } + else + { + return base.Equals(obj); + } + } + + public override int GetHashCode() + { + return FunctionName.GetHashCode() ^ ArgumentCount.GetHashCode(); + } + } + + internal ExpressionFunction() + { + } + + public ExpressionFunction(string functionName, IEnumerable arguments) + { + FunctionName = functionName; + Arguments = arguments.Select(ODataExpression.FromValue).ToList(); + } + + public ExpressionFunction(string functionName, IEnumerable arguments) + { + FunctionName = functionName; + Arguments = arguments.Select(ODataExpression.FromLinqExpression).ToList(); + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/FunctionMapping.cs b/src/Simple.OData.Client.Core/Expressions/FunctionMapping.cs new file mode 100644 index 000000000..4d8a74b5c --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/FunctionMapping.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +internal class FunctionMapping +{ + public class FunctionDefinition + { + public FunctionDefinition(ExpressionFunction.FunctionCall functionCall, FunctionMapping functionMapping, AdapterVersion adapterVersion = AdapterVersion.Any) + { + FunctionCall = functionCall; + FunctionMapping = functionMapping; + AdapterVersion = adapterVersion; + } + + public ExpressionFunction.FunctionCall FunctionCall { get; set; } + public FunctionMapping FunctionMapping { get; set; } + public AdapterVersion AdapterVersion { get; set; } + } + + public string FunctionName { get; private set; } + public Func, ODataExpression> FunctionMapper { get; private set; } + + private FunctionMapping(string functionName) + { + FunctionName = functionName; + } + + private static readonly Func, ODataExpression>> FunctionWithTarget = + function => + (functionName, target, arguments) => ODataExpression.FromFunction( + new ExpressionFunction() + { + FunctionName = function.FunctionMapping.FunctionName, + Arguments = new List() { target }, + }); + + private static readonly Func, ODataExpression>> FunctionWithTargetAndArguments = + function => + (functionName, target, arguments) => ODataExpression.FromFunction( + new ExpressionFunction() + { + FunctionName = function.FunctionMapping.FunctionName, + Arguments = MergeArguments(target, arguments), + }); + + private static readonly Func, ODataExpression>> FunctionWithArgumentsAndTarget = + function => + (functionName, target, arguments) => ODataExpression.FromFunction( + new ExpressionFunction() + { + FunctionName = function.FunctionMapping.FunctionName, + Arguments = MergeArguments(arguments, target), + }); + + public static readonly FunctionDefinition[] DefinedFunctions = + { + CreateFunctionDefinition("Contains", 1, "substringof", FunctionWithArgumentsAndTarget, AdapterVersion.V3), + CreateFunctionDefinition("Contains", 1, "contains", FunctionWithTargetAndArguments, AdapterVersion.V4), + CreateFunctionDefinition("StartsWith", 1, "startswith", FunctionWithTargetAndArguments), + CreateFunctionDefinition("EndsWith", 1, "endswith", FunctionWithTargetAndArguments), + CreateFunctionDefinition("Length", 0, "length", FunctionWithTarget), + CreateFunctionDefinition("IndexOf", 1, "indexof", FunctionWithTargetAndArguments), + CreateFunctionDefinition("Replace", 2, "replace", FunctionWithTargetAndArguments), + CreateFunctionDefinition("Substring", 1, "substring", FunctionWithTargetAndArguments), + CreateFunctionDefinition("Substring", 2, "substring", FunctionWithTargetAndArguments), + CreateFunctionDefinition("ToLower", 0, "tolower", FunctionWithTarget), + CreateFunctionDefinition("ToUpper", 0, "toupper", FunctionWithTarget), + CreateFunctionDefinition("Trim", 0, "trim", FunctionWithTarget), + CreateFunctionDefinition("Concat", 1, "concat", FunctionWithTargetAndArguments), + CreateFunctionDefinition("Year", 0, "year", FunctionWithTarget), + CreateFunctionDefinition("Month", 0, "month", FunctionWithTarget), + CreateFunctionDefinition("Day", 0, "day", FunctionWithTarget), + CreateFunctionDefinition("Hour", 0, "hour", FunctionWithTarget), + CreateFunctionDefinition("Minute", 0, "minute", FunctionWithTarget), + CreateFunctionDefinition("Second", 0, "second", FunctionWithTarget), + CreateFunctionDefinition("Milliseconds", 0, "fractionalseconds", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Date", 0, "date", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Time", 0, "time", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Totaloffsetminutes", 0, "totaloffsetminutes", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Now", 0, "now", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Maxdatetime", 0, "maxdatetime", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Mindatetime", 0, "mindatetime", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Totalseconds", 0, "totalseconds", FunctionWithTarget, AdapterVersion.V4), + CreateFunctionDefinition("Round", 0, "round", FunctionWithTarget), + CreateFunctionDefinition("Floor", 0, "floor", FunctionWithTarget), + CreateFunctionDefinition("Ceiling", 0, "ceiling", FunctionWithTarget), + }; + + public static bool ContainsFunction(string functionName, int argumentCount) + { + return DefinedFunctions.Any(x => x.FunctionCall.Equals(new ExpressionFunction.FunctionCall(functionName, argumentCount))); + } + + public static bool TryGetFunctionMapping(string functionName, int argumentCount, AdapterVersion adapterVersion, out FunctionMapping functionMapping) + { + functionMapping = null; + var function = DefinedFunctions.SingleOrDefault(x => + x.FunctionCall.Equals(new ExpressionFunction.FunctionCall(functionName, argumentCount)) && + (x.AdapterVersion & adapterVersion) == adapterVersion); + + if (function != null) + { + functionMapping = function.FunctionMapping; + } + + return function != null; + } + + private static FunctionDefinition CreateFunctionDefinition(string functionName, int argumentCount, string mappedFunctionName, + Func, ODataExpression>> mapper, AdapterVersion adapterVersion = AdapterVersion.Any) + { + var functionCall = new ExpressionFunction.FunctionCall(functionName, argumentCount); + var functionMapping = new FunctionMapping(mappedFunctionName); + var function = new FunctionDefinition(functionCall, functionMapping, adapterVersion); + functionMapping.FunctionMapper = mapper(function); + return function; + } + + private static List MergeArguments(ODataExpression argument, IEnumerable arguments) + { + var collection = new List + { + argument + }; + collection.AddRange(arguments.Select(ODataExpression.FromValue)); + return collection; + } + + private static List MergeArguments(IEnumerable arguments, ODataExpression argument) + { + var collection = new List(); + collection.AddRange(arguments.Select(ODataExpression.FromValue)); + collection.Add(argument); + return collection; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/FunctionToOperatorMapping.cs b/src/Simple.OData.Client.Core/Expressions/FunctionToOperatorMapping.cs new file mode 100644 index 000000000..8c028dfb3 --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/FunctionToOperatorMapping.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Simple.OData.Client; + +internal abstract class FunctionToOperatorMapping +{ + public static bool TryGetOperatorMapping(ODataExpression functionCaller, ExpressionFunction function, AdapterVersion adapterVersion, + out FunctionToOperatorMapping operatorMapping) + { + operatorMapping = DefinedMappings.SingleOrDefault(x => x.CanMap(function.FunctionName, function.Arguments.Count, functionCaller, adapterVersion)); + return operatorMapping != null; + } + + public abstract string Format(ExpressionContext context, ODataExpression functionCaller, List functionArguments); + + protected abstract bool CanMap(string functionName, int argumentCount, ODataExpression functionCaller, AdapterVersion adapterVersion = AdapterVersion.Any); + + private static readonly FunctionToOperatorMapping[] DefinedMappings = + { + new InOperatorMapping() + }; +} + +internal class InOperatorMapping : FunctionToOperatorMapping +{ + public override string Format(ExpressionContext context, ODataExpression functionCaller, List functionArguments) + { + if (functionCaller.Value is not IEnumerable list) + { + throw new ArgumentException("Function caller should have a value"); + } + + var listAsString = new StringBuilder(); + var delimiter = string.Empty; + listAsString.Append("("); + foreach (var item in list) + { + listAsString.Append(delimiter); + listAsString.Append(context.Session.Adapter.GetCommandFormatter().ConvertValueToUriLiteral(item, false)); + delimiter = ","; + } + + listAsString.Append(")"); + + // to work around the issue in OData/odata.net (https://github.com/OData/odata.net/issues/2016) the 'in' is always grouped + // the workaround can be removed later if this issue is fixed + return $"({functionArguments[0].Format(context)} in {listAsString})"; + } + + protected override bool CanMap(string functionName, int argumentCount, ODataExpression functionCaller, AdapterVersion adapterVersion = AdapterVersion.Any) + { + return functionName == nameof(Enumerable.Contains) && + argumentCount == 1 && + functionCaller.Value != null && + functionCaller.Value.GetType() != typeof(string) && + IsInstanceOfType(typeof(IEnumerable), functionCaller.Value) && + adapterVersion == AdapterVersion.V4; + } + + private static bool IsInstanceOfType(Type expectedType, object value) + { + if (value == null) + { + return false; + } + + var valueType = value.GetType(); + if (expectedType.IsAssignableFrom(valueType)) + { + return true; + } + + if (expectedType.IsGenericType && !expectedType.GenericTypeArguments.Any() && valueType.IsGenericType) + { + var genericArgumentTypes = valueType.GenericTypeArguments; + if (!genericArgumentTypes.Any()) + { + genericArgumentTypes = new[] { typeof(object) }; + valueType = valueType.MakeGenericType(genericArgumentTypes); + } + + var expectedGenericType = expectedType.MakeGenericType(genericArgumentTypes); + return expectedGenericType.IsAssignableFrom(valueType); + } + + return false; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ODataExpression.Format.cs b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Format.cs new file mode 100644 index 000000000..d633a8aaa --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Format.cs @@ -0,0 +1,423 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +public partial class ODataExpression +{ + internal static int ArgumentCounter = 0; + + internal string Format(ExpressionContext context) + { + if (context.IsQueryOption && _operator != ExpressionType.Default && + _operator != ExpressionType.And && _operator != ExpressionType.Equal) + { + throw new InvalidOperationException("Invalid custom query option."); + } + + if (_operator == ExpressionType.Default && !IsValueConversion) + { + return Reference != null ? + FormatReference(context) : Function != null ? + FormatFunction(context) : + FormatValue(context); + } + else if (IsValueConversion) + { + var expr = Value as ODataExpression; + if (expr.Reference == null && expr.Function == null && !expr.IsValueConversion) + { + if (expr.Value != null && context.Session.TypeCache.IsEnumType(expr.Value.GetType())) + { + expr = new ODataExpression(expr.Value); + } + else if (context.Session.TypeCache.TryConvert(expr.Value, _conversionType, out var result)) + { + expr = new ODataExpression(result); + } + } + + return FormatExpression(expr, context); + } + else if (_operator == ExpressionType.Not || _operator == ExpressionType.Negate) + { + var left = FormatExpression(_left, context); + var op = FormatOperator(context); + if (NeedsGrouping(_left)) + { + return $"{op} ({left})"; + } + else + { + return $"{op} {left}"; + } + } + else + { + var left = FormatExpression(_left, context); + var right = FormatExpression(_right, context); + var op = FormatOperator(context); + + if (context.IsQueryOption) + { + return $"{left}{op}{right}"; + } + else + { + if (NeedsGrouping(_left)) + { + left = $"({left})"; + } + + if (NeedsGrouping(_right)) + { + right = $"({right})"; + } + + return $"{left} {op} {right}"; + } + } + } + + private static string FormatExpression(ODataExpression expr, ExpressionContext context) + { + if (expr is null) + { + if (!string.IsNullOrEmpty(context.ScopeQualifier)) + { + return context.ScopeQualifier; + } + + return "null"; + } + else + { + return expr.Format(context); + } + } + + private string FormatReference(ExpressionContext context) + { + var elementNames = new List(Reference.Split('.', '/')); + var entityCollection = context.EntityCollection; + var segmentNames = BuildReferencePath(new List(), entityCollection, elementNames, context); + return FormatScope(string.Join("/", segmentNames), context); + } + + private string FormatFunction(ExpressionContext context) + { + var adapterVersion = context.Session?.Adapter.AdapterVersion ?? AdapterVersion.Default; + if (FunctionToOperatorMapping.TryGetOperatorMapping(_functionCaller, Function, adapterVersion, out var operatorMapping)) + { + return FormatMappedOperator(context, operatorMapping); + } + + if (FunctionMapping.TryGetFunctionMapping(Function.FunctionName, Function.Arguments.Count(), adapterVersion, out var functionMapping)) + { + return FormatMappedFunction(context, functionMapping); + } + else if (string.Equals(Function.FunctionName, ODataLiteral.Any, StringComparison.OrdinalIgnoreCase) || + string.Equals(Function.FunctionName, ODataLiteral.All, StringComparison.OrdinalIgnoreCase)) + { + return FormatAnyAllFunction(context); + } + else if (string.Equals(Function.FunctionName, ODataLiteral.IsOf, StringComparison.OrdinalIgnoreCase) || + string.Equals(Function.FunctionName, ODataLiteral.Cast, StringComparison.OrdinalIgnoreCase)) + { + return FormatIsOfCastFunction(context); + } + else if (string.Equals(Function.FunctionName, "get_Item", StringComparison.Ordinal) && + Function.Arguments.Count == 1) + { + return FormatArrayIndexFunction(context); + } + else if (string.Equals(Function.FunctionName, "HasFlag", StringComparison.Ordinal) && + Function.Arguments.Count == 1) + { + return FormatEnumHasFlagFunction(context); + } + else if (string.Equals(Function.FunctionName, "ToString", StringComparison.Ordinal) && + Function.Arguments.Count == 0) + { + return FormatToStringFunction(context); + } + else if (Function.Arguments.Count == 1) + { + var val = Function.Arguments.First(); + if (val.Value != null) + { + var formattedVal = ODataExpression.FromValue( + string.Equals(Function.FunctionName, "ToBoolean", StringComparison.Ordinal) ? Convert.ToBoolean(val.Value) : + string.Equals(Function.FunctionName, "ToByte", StringComparison.Ordinal) ? Convert.ToByte(val.Value) : + string.Equals(Function.FunctionName, "ToChar", StringComparison.Ordinal) ? Convert.ToChar(val.Value) : + string.Equals(Function.FunctionName, "ToDateTime", StringComparison.Ordinal) ? Convert.ToDateTime(val.Value) : + string.Equals(Function.FunctionName, "ToDecimal", StringComparison.Ordinal) ? Convert.ToDecimal(val.Value) : + string.Equals(Function.FunctionName, "ToDouble", StringComparison.Ordinal) ? Convert.ToDouble(val.Value) : + string.Equals(Function.FunctionName, "ToInt16", StringComparison.Ordinal) ? Convert.ToInt16(val.Value) : + string.Equals(Function.FunctionName, "ToInt32", StringComparison.Ordinal) ? Convert.ToInt32(val.Value) : + string.Equals(Function.FunctionName, "ToInt64", StringComparison.Ordinal) ? Convert.ToInt64(val.Value) : + string.Equals(Function.FunctionName, "ToSByte", StringComparison.Ordinal) ? Convert.ToSByte(val.Value) : + string.Equals(Function.FunctionName, "ToSingle", StringComparison.Ordinal) ? Convert.ToSingle(val.Value) : + string.Equals(Function.FunctionName, "ToString", StringComparison.Ordinal) ? Convert.ToString(val.Value) : + string.Equals(Function.FunctionName, "ToUInt16", StringComparison.Ordinal) ? Convert.ToUInt16(val.Value) : + string.Equals(Function.FunctionName, "ToUInt32", StringComparison.Ordinal) ? Convert.ToUInt32(val.Value) : + string.Equals(Function.FunctionName, "ToUInt64", StringComparison.Ordinal) ? Convert.ToUInt64(val.Value) + : null); + if (formattedVal.Value != null) + { + return FormatExpression(formattedVal, context); + } + } + } + + throw new NotSupportedException($"The function {Function.FunctionName} is not supported or called with wrong number of arguments"); + } + + private string FormatMappedOperator(ExpressionContext context, FunctionToOperatorMapping mapping) + { + return mapping.Format(context, _functionCaller, Function.Arguments); + } + + private string FormatMappedFunction(ExpressionContext context, FunctionMapping mapping) + { + var mappedFunction = mapping.FunctionMapper( + Function.FunctionName, _functionCaller, Function.Arguments).Function; + var formattedArguments = string.Join(",", + (IEnumerable)mappedFunction.Arguments.Select(x => FormatExpression(x, context))); + + return $"{mappedFunction.FunctionName}({formattedArguments})"; + } + + private string FormatAnyAllFunction(ExpressionContext context) + { + var navigationPath = FormatCallerReference(); + EntityCollection entityCollection; + if (!context.Session.Metadata.HasNavigationProperty(context.EntityCollection.Name, navigationPath)) + { + //simple collection property + entityCollection = context.EntityCollection; + } + else + { + entityCollection = context.Session.Metadata.NavigateToCollection(context.EntityCollection, navigationPath); + } + + string formattedArguments; + if (!Function.Arguments.Any() && string.Equals(Function.FunctionName, ODataLiteral.Any, StringComparison.OrdinalIgnoreCase)) + { + formattedArguments = string.Empty; + } + else + { + var targetQualifier = $"x{(ArgumentCounter >= 0 ? (1 + (ArgumentCounter++) % 9).ToString() : string.Empty)}"; + var expressionContext = new ExpressionContext(context.Session, entityCollection, targetQualifier, context.DynamicPropertiesContainerName); + formattedArguments = $"{targetQualifier}:{FormatExpression(Function.Arguments.First(), expressionContext)}"; + } + + var formattedNavigationPath = context.Session.Adapter.GetCommandFormatter().FormatNavigationPath(context.EntityCollection, navigationPath); + return FormatScope($"{formattedNavigationPath}/{Function.FunctionName.ToLower()}({formattedArguments})", context); + } + + private string FormatIsOfCastFunction(ExpressionContext context) + { + var formattedArguments = string.Empty; + if (Function.Arguments.First() is not null && !Function.Arguments.First().IsNull) + { + formattedArguments += FormatExpression(Function.Arguments.First(), new ExpressionContext(context.Session)); + formattedArguments += ","; + } + + formattedArguments += FormatExpression(Function.Arguments.Last(), new ExpressionContext(context.Session)); + + return $"{Function.FunctionName.ToLower()}({formattedArguments})"; + } + + private string FormatEnumHasFlagFunction(ExpressionContext context) + { + var value = FormatExpression(Function.Arguments.First(), new ExpressionContext(context.Session)); + return $"{FormatCallerReference()} has {value}"; + } + + private string FormatArrayIndexFunction(ExpressionContext context) + { + var propertyName = + FormatExpression(Function.Arguments.First(), new ExpressionContext(context.Session)).Trim('\''); + return _functionCaller.Reference == context.DynamicPropertiesContainerName + ? propertyName + : $"{FormatCallerReference()}.{propertyName}"; + } + + private string FormatToStringFunction(ExpressionContext context) + { + return _functionCaller.Reference != null + ? FormatCallerReference() + : _functionCaller.FormatValue(context); + } + + private string FormatValue(ExpressionContext context) + { + if (Value is ODataExpression expression) + { + return expression.Format(context); + } + else if (Value is Type type) + { + var typeName = context.Session.Adapter.GetMetadata().GetQualifiedTypeName(type.Name); + return context.Session.Adapter.GetCommandFormatter().ConvertValueToUriLiteral(typeName, false); + } + else + { + return context.Session.Adapter.GetCommandFormatter().ConvertValueToUriLiteral(Value, false); + } + } + + private string FormatOperator(ExpressionContext context) + { + return _operator switch + { + ExpressionType.And => context.IsQueryOption ? "&" : "and", + ExpressionType.Or => "or", + ExpressionType.Not => "not", + ExpressionType.Equal => context.IsQueryOption ? "=" : "eq", + ExpressionType.NotEqual => "ne", + ExpressionType.GreaterThan => "gt", + ExpressionType.GreaterThanOrEqual => "ge", + ExpressionType.LessThan => "lt", + ExpressionType.LessThanOrEqual => "le", + ExpressionType.Add => "add", + ExpressionType.Subtract => "sub", + ExpressionType.Multiply => "mul", + ExpressionType.Divide => "div", + ExpressionType.Modulo => "mod", + ExpressionType.Negate => "-", + _ => null, + }; + } + + private IEnumerable BuildReferencePath(List segmentNames, EntityCollection entityCollection, List elementNames, ExpressionContext context) + { + if (!elementNames.Any()) + { + return segmentNames; + } + + var objectName = elementNames.First(); + if (entityCollection != null) + { + if (context.Session.Metadata.HasStructuralProperty(entityCollection.Name, objectName)) + { + var propertyName = context.Session.Metadata.GetStructuralPropertyExactName( + entityCollection.Name, objectName); + segmentNames.Add(propertyName); + return BuildReferencePath(segmentNames, null, elementNames.Skip(1).ToList(), context); + } + else if (context.Session.Metadata.HasNavigationProperty(entityCollection.Name, objectName)) + { + var propertyName = context.Session.Metadata.GetNavigationPropertyExactName( + entityCollection.Name, objectName); + var linkName = context.Session.Metadata.GetNavigationPropertyPartnerTypeName( + entityCollection.Name, objectName); + var linkedEntityCollection = context.Session.Metadata.GetEntityCollection(linkName); + segmentNames.Add(propertyName); + return BuildReferencePath(segmentNames, linkedEntityCollection, elementNames.Skip(1).ToList(), context); + } + else if (IsFunction(objectName, context)) + { + var formattedFunction = FormatAsFunction(objectName, context); + segmentNames.Add(formattedFunction); + return BuildReferencePath(segmentNames, null, elementNames.Skip(1).ToList(), context); + } + else if (context.Session.Metadata.IsOpenType(entityCollection.Name)) + { + segmentNames.Add(objectName); + return BuildReferencePath(segmentNames, null, elementNames.Skip(1).ToList(), context); + } + else + { + throw new UnresolvableObjectException(objectName, $"Invalid referenced object [{objectName}]"); + } + } + else if (FunctionMapping.ContainsFunction(elementNames.First(), 0)) + { + var formattedFunction = FormatAsFunction(objectName, context); + segmentNames.Add(formattedFunction); + return BuildReferencePath(segmentNames, null, elementNames.Skip(1).ToList(), context); + } + else + { + segmentNames.AddRange(elementNames); + return BuildReferencePath(segmentNames, null, new List(), context); + } + } + + private bool IsFunction(string objectName, ExpressionContext context) + { + var adapterVersion = context.Session?.Adapter.AdapterVersion ?? AdapterVersion.Default; + return FunctionMapping.TryGetFunctionMapping(objectName, 0, adapterVersion, out _); + } + + private string FormatAsFunction(string objectName, ExpressionContext context) + { + var adapterVersion = context.Session?.Adapter.AdapterVersion ?? AdapterVersion.Default; + if (FunctionMapping.TryGetFunctionMapping(objectName, 0, adapterVersion, out var mapping)) + { + var mappedFunction = mapping.FunctionMapper(objectName, _functionCaller, null).Function; + return $"{mappedFunction.FunctionName}({FormatCallerReference()})"; + } + else + { + return null; + } + } + + private string FormatCallerReference() + { + return _functionCaller.Reference.Replace(".", "/"); + } + + private int GetPrecedence(ExpressionType op) + { + return op switch + { + ExpressionType.Not or ExpressionType.Negate => 1, + ExpressionType.Modulo or ExpressionType.Multiply or ExpressionType.Divide => 2, + ExpressionType.Add or ExpressionType.Subtract => 3, + ExpressionType.GreaterThan or ExpressionType.GreaterThanOrEqual or ExpressionType.LessThan or ExpressionType.LessThanOrEqual => 4, + ExpressionType.Equal or ExpressionType.NotEqual => 5, + ExpressionType.And => 6, + ExpressionType.Or => 7, + _ => 0, + }; + } + + private bool NeedsGrouping(ODataExpression expr) + { + if (_operator == ExpressionType.Default) + { + return false; + } + + if (expr is null) + { + return false; + } + + if (expr._operator == ExpressionType.Default) + { + return false; + } + + var outerPrecedence = GetPrecedence(_operator); + var innerPrecedence = GetPrecedence(expr._operator); + return outerPrecedence < innerPrecedence; + } + + private string FormatScope(string text, ExpressionContext context) + { + return string.IsNullOrEmpty(context.ScopeQualifier) + ? text + : $"{context.ScopeQualifier}/{text}"; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ODataExpression.Linq.cs b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Linq.cs new file mode 100644 index 000000000..1d7ba031b --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Linq.cs @@ -0,0 +1,316 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public partial class ODataExpression +{ + private static ODataExpression ParseLinqExpression(Expression expression) + { + return expression.NodeType switch + { + ExpressionType.MemberAccess => ParseMemberExpression(expression), + ExpressionType.Call => ParseCallExpression(expression), + ExpressionType.Lambda => ParseLambdaExpression(expression), + ExpressionType.Constant => ParseConstantExpression(expression), + ExpressionType.Not or ExpressionType.Convert or ExpressionType.Negate => ParseUnaryExpression(expression), + ExpressionType.Equal or ExpressionType.NotEqual or ExpressionType.LessThan or ExpressionType.LessThanOrEqual or ExpressionType.GreaterThan or ExpressionType.GreaterThanOrEqual or ExpressionType.And or ExpressionType.AndAlso or ExpressionType.Or or ExpressionType.OrElse or ExpressionType.Add or ExpressionType.AddChecked or ExpressionType.Subtract or ExpressionType.SubtractChecked or ExpressionType.Multiply or ExpressionType.MultiplyChecked or ExpressionType.Divide or ExpressionType.Modulo => ParseBinaryExpression(expression), + ExpressionType.TypeIs => ParseTypeIsExpression(expression), + ExpressionType.TypeAs => ParseTypeAsExpression(expression), + ExpressionType.Parameter => ParseTypedParameterExpression(), + ExpressionType.New => ParseNewExpression(expression), + _ => throw Utils.NotSupportedExpression(expression), + }; + } + + private static ODataExpression ParseMemberExpression(Expression expression, Stack memberChain = null) + { + var memberExpression = expression as MemberExpression; + if (memberExpression.Expression == null) + { + return new ODataExpression(EvaluateStaticMember(memberExpression)); + } + else + { + memberChain ??= new Stack(); + memberChain.Push(memberExpression.Member); + switch (memberExpression.Expression.NodeType) + { + case ExpressionType.Parameter: + // NOTE: Can't support ITypeCache here as we might be dealing with dynamic types/expressions + var memberNames = string.Join(".", memberChain.Select(x => x.GetMappedName())); + return FromReference(memberNames); + case ExpressionType.Constant: + return ParseConstantExpression(memberExpression.Expression, memberChain); + case ExpressionType.MemberAccess: + // NOTE: Can't support ITypeCache here as we might be dealing with dynamic types/expressions + var memberName = memberExpression.Member.GetMappedName(); + if (FunctionMapping.ContainsFunction(memberName, 0)) + { + return FromFunction(memberName, ParseMemberExpression(memberExpression.Expression), new List()); + } + else + { + return ParseMemberExpression(memberExpression.Expression as MemberExpression, memberChain); + } + + default: + throw Utils.NotSupportedExpression(expression); + } + } + } + + private static ODataExpression ParseCallExpression(Expression expression) + { + var callExpression = expression as MethodCallExpression; + if (callExpression.Object == null) + { + var target = callExpression.Arguments.FirstOrDefault(); + if (target != null) + { + var callArguments = string.Equals(callExpression.Method.DeclaringType.FullName, "System.Convert", StringComparison.Ordinal) + ? callExpression.Arguments + : callExpression.Arguments.Skip(1); + return FromFunction(callExpression.Method.Name, ParseLinqExpression(target), callArguments); + } + + throw Utils.NotSupportedExpression(expression); + } + + var arguments = new List(); + arguments.AddRange(callExpression.Arguments.Select(ParseCallArgumentExpression)); + switch (callExpression.Object.NodeType) + { + case ExpressionType.MemberAccess: + var memberExpression = callExpression.Object as MemberExpression; + return new ODataExpression( + ParseMemberExpression(memberExpression), + new ExpressionFunction(callExpression.Method.Name, arguments)); + + case ExpressionType.Call: + if (string.Equals(callExpression.Method.Name, nameof(object.ToString), StringComparison.Ordinal)) + { + return ParseCallExpression(callExpression.Object); + } + else + { + return new ODataExpression( + new ODataExpression(callExpression.Object), + new ExpressionFunction(callExpression.Method.Name, callExpression.Arguments)); + } + + case ExpressionType.Constant: + return new ODataExpression(ParseConstantExpression(callExpression.Object), + new ExpressionFunction(callExpression.Method.Name, arguments)); + } + + throw Utils.NotSupportedExpression(callExpression.Object); + } + + private static ODataExpression ParseArrayExpression(Expression expression) + { + var binaryEpression = expression as BinaryExpression; + var arrayExpression = ParseMemberExpression(binaryEpression.Left); + var indexExpression = ParseConstantExpression(binaryEpression.Right); + + return FromValue((arrayExpression.Value as Array).GetValue(int.Parse(indexExpression.Value.ToString()))); + } + + private static ODataExpression ParseCallArgumentExpression(Expression expression) + { + return expression.NodeType switch + { + ExpressionType.Constant => ParseConstantExpression(expression), + ExpressionType.MemberAccess => ParseMemberExpression(expression), + ExpressionType.ArrayIndex => ParseArrayExpression(expression), + ExpressionType.Convert => ParseUnaryExpression(expression), + ExpressionType.Call => ParseCallExpression(expression), + _ => throw Utils.NotSupportedExpression(expression), + }; + } + + private static ODataExpression ParseLambdaExpression(Expression expression) + { + var lambdaExpression = expression as LambdaExpression; + + return ParseLinqExpression(lambdaExpression.Body); + } + + private static ODataExpression ParseConstantExpression(Expression expression, Stack members = null) + { + var constExpression = expression as ConstantExpression; + + if (constExpression.Value is Expression) + { + return ParseConstantExpression(constExpression.Value as Expression, members); + } + else + { + if (constExpression.Type.IsValue() || constExpression.Type == typeof(string)) + { + return new ODataExpression(constExpression.Value); + } + else + { + return new ODataExpression(EvaluateConstValue(constExpression.Value, + members ?? new Stack())); + } + } + } + + private static ODataExpression ParseUnaryExpression(Expression expression) + { + var unaryExpression = (expression as UnaryExpression).Operand; + var odataExpression = ParseLinqExpression(unaryExpression); + return expression.NodeType switch + { + ExpressionType.Not => !odataExpression, + ExpressionType.Convert => new ODataExpression(odataExpression, expression.Type), + ExpressionType.Negate => -odataExpression, + _ => throw Utils.NotSupportedExpression(expression), + }; + } + + private static ODataExpression ParseBinaryExpression(Expression expression) + { + var binaryExpression = expression as BinaryExpression; + + var leftExpression = ParseLinqExpression(binaryExpression.Left); + var rightExpression = ParseLinqExpression(binaryExpression.Right); + + if (IsConvertFromCustomEnum(binaryExpression.Left, out var enumType)) + { + return ParseBinaryExpression(leftExpression, ParseLinqExpression(Expression.Convert(binaryExpression.Right, enumType)), expression); + } + else if (IsConvertFromCustomEnum(binaryExpression.Right, out enumType)) + { + return ParseBinaryExpression(ParseLinqExpression(Expression.Convert(binaryExpression.Left, enumType)), rightExpression, expression); + } + + return ParseBinaryExpression(leftExpression, rightExpression, expression); + } + + private static ODataExpression ParseBinaryExpression(ODataExpression leftExpression, ODataExpression rightExpression, Expression operandExpression) + { + return operandExpression.NodeType switch + { + ExpressionType.Equal => leftExpression == rightExpression, + ExpressionType.NotEqual => leftExpression != rightExpression, + ExpressionType.LessThan => leftExpression < rightExpression, + ExpressionType.LessThanOrEqual => leftExpression <= rightExpression, + ExpressionType.GreaterThan => leftExpression > rightExpression, + ExpressionType.GreaterThanOrEqual => leftExpression >= rightExpression, + ExpressionType.And or ExpressionType.AndAlso => leftExpression && rightExpression, + ExpressionType.Or or ExpressionType.OrElse => leftExpression || rightExpression, + ExpressionType.Add or ExpressionType.AddChecked => leftExpression + rightExpression, + ExpressionType.Subtract or ExpressionType.SubtractChecked => leftExpression - rightExpression, + ExpressionType.Multiply or ExpressionType.MultiplyChecked => leftExpression * rightExpression, + ExpressionType.Divide => leftExpression / rightExpression, + ExpressionType.Modulo => leftExpression % rightExpression, + _ => throw Utils.NotSupportedExpression(operandExpression), + }; + } + + private static bool IsConvertFromCustomEnum(Expression expression, out Type enumType) + { + enumType = null; + if (expression.NodeType == ExpressionType.Convert) + { + var unaryExpression = (expression as UnaryExpression).Operand; + enumType = unaryExpression.Type; + return enumType.IsEnumType() && !Utils.IsSystemType(enumType); + } + + return false; + } + + private static ODataExpression ParseTypeIsExpression(Expression expression) + { + var typeIsExpression = expression as TypeBinaryExpression; + var targetExpression = ParseLinqExpression(typeIsExpression.Expression); + return FromFunction( + new ExpressionFunction() + { + FunctionName = "isof", + Arguments = new List() { targetExpression, FromValue(typeIsExpression.TypeOperand) }, + }); + } + + private static ODataExpression ParseTypeAsExpression(Expression expression) + { + var typeAsExpression = expression as UnaryExpression; + var targetExpression = ParseLinqExpression(typeAsExpression.Operand); + return FromFunction( + new ExpressionFunction() + { + FunctionName = "cast", + Arguments = new List() { targetExpression, FromValue(typeAsExpression.Type) }, + }); + } + + private static ODataExpression ParseTypedParameterExpression() + { + return null; + } + + private static ODataExpression ParseNewExpression(Expression expression) + { + var newExpression = expression as NewExpression; + return FromValue(newExpression.Constructor.Invoke(newExpression.Arguments.Select(x => ParseLinqExpression(x).Value).ToArray())); + } + + private static object EvaluateStaticMember(MemberExpression expression) + { + object value = null; + switch (expression.Member) + { + case FieldInfo field: + value = field.GetValue(null); + break; + case PropertyInfo property: + if (property.GetIndexParameters().Length != 0) + { + throw new ArgumentException("cannot eliminate closure references to indexed properties."); + } + + value = property.GetValueEx(null); + break; + } + + return value; + } + + private static object EvaluateConstValue(object value, Stack memberChain) + { + if (!memberChain.Any()) + { + return value; + } + + var member = memberChain.Pop(); + + object itemValue; + switch (member) + { + case PropertyInfo property: + if (property.GetIndexParameters().Length != 0) + { + throw new ArgumentException("cannot evaluate constant value of indexed properties."); + } + + itemValue = property.GetValueEx(value); + break; + case FieldInfo field: + itemValue = field.GetValueEx(value); + break; + default: + return value; + } + + return EvaluateConstValue(itemValue, memberChain); + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ODataExpression.Operators.cs b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Operators.cs new file mode 100644 index 000000000..dfc34f9b8 --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ODataExpression.Operators.cs @@ -0,0 +1,207 @@ +using System; +using System.Linq.Expressions; + + +/* Unmerged change from project 'Simple.OData.Client.Core (netstandard2.0)' +Before: +#pragma warning disable 0660,0661 +#pragma warning disable 1591 +After: +#pragma warning disable 0660, 0661 +*/ +namespace Simple.OData.Client; + +public partial class ODataExpression +{ + public static implicit operator ODataExpression(bool value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(byte value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(sbyte value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(short value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(ushort value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(int value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(uint value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(long value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(ulong value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(float value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(double value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(decimal value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(DateTime value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(DateTimeOffset value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(TimeSpan value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(Guid value) { return ODataExpression.FromValue(value); } + public static implicit operator ODataExpression(string value) { return ODataExpression.FromValue(value); } + + public static ODataExpression operator !(ODataExpression expr) + { + return new ODataExpression(expr, null, ExpressionType.Not); + } + + public static ODataExpression operator -(ODataExpression expr) + { + return new ODataExpression(expr, null, ExpressionType.Negate); + } + + public static ODataExpression operator ==(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Equal); + } + + public static ODataExpression operator !=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.NotEqual); + } + + public static ODataExpression operator &(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.And); + } + + public static ODataExpression operator |(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Or); + } + + public static ODataExpression operator >(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.GreaterThan); + } + + public static ODataExpression operator <(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.LessThan); + } + + public static ODataExpression operator >=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.GreaterThanOrEqual); + } + + public static ODataExpression operator <=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.LessThanOrEqual); + } + + public static ODataExpression operator +(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Add); + } + + public static ODataExpression operator -(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Subtract); + } + + public static ODataExpression operator *(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Multiply); + } + + public static ODataExpression operator /(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Divide); + } + + public static ODataExpression operator %(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(expr1, expr2, ExpressionType.Modulo); + } + + public static bool operator true(ODataExpression expr) + { + return false; + } + + public static bool operator false(ODataExpression expr) + { + return false; + } +} + +public partial class ODataExpression +{ + + public static ODataExpression operator !(ODataExpression expr) + { + return new ODataExpression(new ODataExpression(expr, null, ExpressionType.Not)); + } + + public static ODataExpression operator -(ODataExpression expr) + { + return new ODataExpression(new ODataExpression(expr, null, ExpressionType.Negate)); + } + + public static ODataExpression operator ==(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Equal)); + } + + public static ODataExpression operator !=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.NotEqual)); + } + + public static ODataExpression operator &(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.And)); + } + + public static ODataExpression operator |(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Or)); + } + + public static ODataExpression operator >(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.GreaterThan)); + } + + public static ODataExpression operator <(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.LessThan)); + } + + public static ODataExpression operator >=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.GreaterThanOrEqual)); + } + + public static ODataExpression operator <=(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.LessThanOrEqual)); + } + + public static ODataExpression operator +(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Add)); + } + + public static ODataExpression operator -(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Subtract)); + } + + public static ODataExpression operator *(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Multiply)); + } + + public static ODataExpression operator /(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Divide)); + } + + public static ODataExpression operator %(ODataExpression expr1, ODataExpression expr2) + { + return new ODataExpression(new ODataExpression(expr1, expr2, ExpressionType.Modulo)); + } + + public static bool operator true(ODataExpression expr) + { + return false; + } + + public static bool operator false(ODataExpression expr) + { + return false; + } +} diff --git a/src/Simple.OData.Client.Core/Expressions/ODataExpression.cs b/src/Simple.OData.Client.Core/Expressions/ODataExpression.cs new file mode 100644 index 000000000..6ed21ab6b --- /dev/null +++ b/src/Simple.OData.Client.Core/Expressions/ODataExpression.cs @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +public partial class ODataExpression +{ + private readonly ODataExpression _functionCaller; + private readonly ODataExpression _left; + private readonly ODataExpression _right; + private readonly ExpressionType _operator = ExpressionType.Default; + private readonly Type _conversionType; + + public string Reference { get; private set; } + public object Value { get; private set; } + public ExpressionFunction Function { get; private set; } + public bool IsValueConversion => _conversionType != null; + + internal ODataExpression() + { + } + + public ODataExpression(Expression expression) + : this(FromLinqExpression(expression)) + { + } + + internal protected ODataExpression(ODataExpression expression) + { + _functionCaller = expression._functionCaller; + _left = expression._left; + _right = expression._right; + _operator = expression._operator; + _conversionType = expression._conversionType; + + Reference = expression.Reference; + Value = expression.Value; + Function = expression.Function; + } + + internal protected ODataExpression(object value) + { + Value = value; + } + + internal protected ODataExpression(string reference) + { + Reference = reference; + } + + internal protected ODataExpression(string reference, object value) + { + Reference = reference; + Value = value; + } + + internal protected ODataExpression(ExpressionFunction function) + { + Function = function; + } + + internal protected ODataExpression(ODataExpression left, ODataExpression right, ExpressionType expressionOperator) + { + _left = left; + _right = right; + _operator = expressionOperator; + } + + internal protected ODataExpression(ODataExpression caller, string reference) + { + _functionCaller = caller; + Reference = reference; + } + + internal protected ODataExpression(ODataExpression caller, ExpressionFunction function) + { + _functionCaller = caller; + Function = function; + } + + internal protected ODataExpression(ODataExpression expr, Type conversionType) + { + _conversionType = conversionType; + Value = expr; + } + + internal static ODataExpression FromReference(string reference) + { + return new ODataExpression(reference, (object)null); + } + + internal static ODataExpression FromValue(object value) + { + return new ODataExpression(value); + } + + internal static ODataExpression FromFunction(ExpressionFunction function) + { + return new ODataExpression(function); + } + + internal static ODataExpression FromFunction(string functionName, ODataExpression targetExpression, IEnumerable arguments) + { + return new ODataExpression( + targetExpression, + new ExpressionFunction(functionName, arguments)); + } + + internal static ODataExpression FromFunction(string functionName, ODataExpression targetExpression, IEnumerable arguments) + { + return new ODataExpression( + targetExpression, + new ExpressionFunction(functionName, arguments)); + } + + internal static ODataExpression FromLinqExpression(Expression expression) + { + return ParseLinqExpression(expression); + } + + public bool IsNull => Value == null && + Reference == null && + Function == null && + _operator == ExpressionType.Default; + + public string AsString(ISession session) + { + return Format(new ExpressionContext(session)); + } + + private static readonly char[] _propertySeperator = { '.', '/' }; + internal bool ExtractLookupColumns(IDictionary lookupColumns) + { + switch (_operator) + { + case ExpressionType.And: + var ok = _left.ExtractLookupColumns(lookupColumns); + if (ok) + { + ok = _right.ExtractLookupColumns(lookupColumns); + } + + return ok; + + case ExpressionType.Equal: + var expr = IsValueConversion ? this : _left; + while (expr.IsValueConversion) + { + expr = expr.Value as ODataExpression; + } + + if (!string.IsNullOrEmpty(expr.Reference)) + { + if (expr.Reference.IndexOfAny(_propertySeperator) >= 0) + { + //skip child entity - may result in false positives + return false; + } + + var key = expr.Reference; + if (key != null && !lookupColumns.ContainsKey(key)) + { + lookupColumns.Add(key, _right); + } + } + + return true; + + default: + if (IsValueConversion) + { + return (Value as ODataExpression).ExtractLookupColumns(lookupColumns); + } + else + { + return false; + } + } + } + + internal bool HasTypeConstraint(string typeName) + { + if (_operator == ExpressionType.And) + { + return _left.HasTypeConstraint(typeName) || _right.HasTypeConstraint(typeName); + } + else if (Function != null && Function.FunctionName == ODataLiteral.IsOf) + { + return Function.Arguments.Last().HasTypeConstraint(typeName); + } + else if (Value != null) + { + return Value is Type && (Value as Type).Name == typeName; + } + else + { + return false; + } + } + + public override bool Equals(object obj) + { + return obj is ODataExpression expression && + EqualityComparer.Default.Equals(_functionCaller, expression._functionCaller) && + EqualityComparer.Default.Equals(_left, expression._left) && + EqualityComparer.Default.Equals(_right, expression._right) && + _operator == expression._operator && + EqualityComparer.Default.Equals(_conversionType, expression._conversionType) && + Reference == expression.Reference && + EqualityComparer.Default.Equals(Value, expression.Value) && + EqualityComparer.Default.Equals(Function, expression.Function) && + IsValueConversion == expression.IsValueConversion && + IsNull == expression.IsNull; + } + + public override int GetHashCode() + { + var hashCode = -1908471857; + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(_functionCaller); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(_left); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(_right); + hashCode = hashCode * -1521134295 + _operator.GetHashCode(); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(_conversionType); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Reference); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Value); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Function); + hashCode = hashCode * -1521134295 + IsValueConversion.GetHashCode(); + hashCode = hashCode * -1521134295 + IsNull.GetHashCode(); + return hashCode; + } +} + +public partial class ODataExpression : ODataExpression + +{ + public ODataExpression(Expression> predicate) + : base(predicate) + { + } + + internal ODataExpression(ODataExpression expression) + : base(expression) + { + } + + public override bool Equals(object obj) + { + return obj is ODataExpression expression && + base.Equals(obj) && + Reference == expression.Reference && + EqualityComparer.Default.Equals(Value, expression.Value) && + EqualityComparer.Default.Equals(Function, expression.Function) && + IsValueConversion == expression.IsValueConversion && + IsNull == expression.IsNull; + } + + public override int GetHashCode() + { + var hashCode = 223019041; + hashCode = hashCode * -1521134295 + base.GetHashCode(); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Reference); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Value); + hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Function); + hashCode = hashCode * -1521134295 + IsValueConversion.GetHashCode(); + hashCode = hashCode * -1521134295 + IsNull.GetHashCode(); + return hashCode; + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/DictionaryExtensions.cs b/src/Simple.OData.Client.Core/Extensions/DictionaryExtensions.cs new file mode 100644 index 000000000..50a3eea5c --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/DictionaryExtensions.cs @@ -0,0 +1,377 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace Simple.OData.Client.Extensions; + +internal static class DictionaryExtensions +{ + private static ConcurrentDictionary _defaultActivators = new(); + private static ConcurrentDictionary, ActivatorDelegate> _collectionActivators = new(); + + internal static Func, ITypeCache, ODataEntry> CreateDynamicODataEntry { get; set; } + + internal static void ClearCache() + { + _defaultActivators = new ConcurrentDictionary(); + _collectionActivators = new ConcurrentDictionary, ActivatorDelegate>(); + } + + public static T ToObject(this IDictionary source, ITypeCache typeCache, bool dynamicObject = false) + where T : class + { + if (typeCache == null) + { + throw new ArgumentNullException(nameof(typeCache)); + } + + if (source == null) + { + return default(T); + } + + if (typeCache.IsTypeAssignableFrom(typeof(IDictionary), typeof(T))) + { + return source as T; + } + + if (typeof(T) == typeof(ODataEntry)) + { + return CreateODataEntry(source, typeCache, dynamicObject) as T; + } + + if (typeof(T) == typeof(string) || typeCache.IsValue(typeof(T))) + { + throw new InvalidOperationException($"Unable to convert structural data to {typeof(T).Name}."); + } + + return (T)ToObject(source, typeCache, typeof(T), dynamicObject); + } + + public static object ToObject(this IDictionary source, ITypeCache typeCache, Type type, bool dynamicObject = false) + { + if (typeCache == null) + { + throw new ArgumentNullException(nameof(typeCache)); + } + + if (source == null) + { + return null; + } + + if (typeCache.IsTypeAssignableFrom(typeof(IDictionary), type)) + { + return source; + } + + if (type == typeof(ODataEntry)) + { + return CreateODataEntry(source, typeCache, dynamicObject); + } + + // Check before custom converter so we use the most appropriate type. + if (source.ContainsKey(FluentCommand.AnnotationsLiteral)) + { + type = GetTypeFromAnnotation(source, typeCache, type); + } + + if (typeCache.Converter.HasDictionaryConverter(type)) + { + return typeCache.Converter.Convert(source, type); + } + + if (type.HasCustomAttribute(typeof(CompilerGeneratedAttribute), false)) + { + return CreateInstanceOfAnonymousType(source, type, typeCache); + } + + var instance = CreateInstance(type); + + IDictionary dynamicProperties = null; + var dynamicPropertiesContainerName = typeCache.DynamicContainerName(type); + if (!string.IsNullOrEmpty(dynamicPropertiesContainerName)) + { + dynamicProperties = CreateDynamicPropertiesContainer(type, typeCache, instance, dynamicPropertiesContainerName); + } + + foreach (var item in source) + { + var property = FindMatchingProperty(type, typeCache, item); + + if (property != null && property.CanWrite) + { + if (item.Value != null) + { + property.SetValue(instance, ConvertValue(property.PropertyType, typeCache, item.Value), null); + } + } + else + { + dynamicProperties?.Add(item.Key, item.Value); + } + } + + return instance; + } + + private static Type GetTypeFromAnnotation(IDictionary source, ITypeCache typeCache, Type type) + { + var annotations = source[FluentCommand.AnnotationsLiteral] as ODataEntryAnnotations; + + var odataType = annotations?.TypeName; + + if (string.IsNullOrEmpty(odataType)) + { + return type; + } + + // TODO: We could cast the ITypeCatcher to TypeCache and use it's property but it's a bit naughty - conditional? + var resolver = ODataNameMatchResolver.NotStrict; + + if (!resolver.IsMatch(odataType, type.Name)) + { + // Ok, something other than the base type, see if we can match it + var derived = typeCache.GetDerivedTypes(type).FirstOrDefault(x => resolver.IsMatch(odataType, typeCache.GetMappedName(x))); + if (derived != null) + { + return derived; + } + + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + var typeFound = assembly.GetType(odataType); + if (typeFound != null) + { + return typeFound; + } + } + + // TODO: Should we throw an exception here or log a warning here as we don't understand the data + } + + return type; + } + + private static PropertyInfo FindMatchingProperty(Type type, ITypeCache typeCache, KeyValuePair item) + { + var property = typeCache.GetMappedProperty(type, item.Key); + + if (property == null && item.Key == FluentCommand.AnnotationsLiteral) + { + property = typeCache.GetAnnotationsProperty(type); + } + + return property; + } + + private static object ConvertValue(Type type, ITypeCache typeCache, object itemValue) + { + return IsCollectionType(type, typeCache, itemValue) + ? ConvertCollection(type, typeCache, itemValue) + : ConvertSingle(type, typeCache, itemValue); + } + + private static bool IsCollectionType(Type type, ITypeCache typeCache, object itemValue) + { + return + (type.IsArray || typeCache.IsGeneric(type) && + typeCache.IsTypeAssignableFrom(typeof(System.Collections.IEnumerable), type)) && + (itemValue as System.Collections.IEnumerable) != null; + } + + private static bool IsCompoundType(Type type, ITypeCache typeCache) + { + return !typeCache.IsValue(type) && !type.IsArray && type != typeof(string); + } + + private static object ConvertEnum(Type type, ITypeCache typeCache, object itemValue) + { + if (itemValue == null) + { + return null; + } + + var stringValue = itemValue.ToString(); + if (int.TryParse(stringValue, out var intValue)) + { + typeCache.TryConvert(intValue, type, out var result); + return result; + } + else + { + return Enum.Parse(type, stringValue, false); + } + } + + private static object ConvertSingle(Type type, ITypeCache typeCache, object itemValue) + { + object TryConvert(object v, Type t) => typeCache.TryConvert(v, t, out var result) ? result : v; + + return type == typeof(ODataEntryAnnotations) + ? itemValue + : IsCompoundType(type, typeCache) + ? itemValue.ToDictionary(typeCache).ToObject(typeCache, type) + : type.IsEnumType() + ? ConvertEnum(type, typeCache, itemValue) + : TryConvert(itemValue, type); + } + + private static object ConvertCollection(Type type, ITypeCache typeCache, object itemValue) + { + var elementType = type.IsArray + ? type.GetElementType() + : typeCache.IsGeneric(type) && typeCache.GetGenericTypeArguments(type).Length == 1 + ? typeCache.GetGenericTypeArguments(type)[0] + : null; + + if (elementType == null) + { + return null; + } + + var count = GetCollectionCount(itemValue); + var arrayValue = Array.CreateInstance(elementType, count); + + count = 0; + foreach (var item in (itemValue as System.Collections.IEnumerable)) + { + arrayValue.SetValue(ConvertSingle(elementType, typeCache, item), count++); + } + + if (type.IsArray || typeCache.IsTypeAssignableFrom(type, arrayValue.GetType())) + { + return arrayValue; + } + else + { + var collectionTypes = new[] + { + typeof(IList<>).MakeGenericType(elementType), + typeof(IEnumerable<>).MakeGenericType(elementType) + }; + var collectionType = type.GetConstructor(new[] { collectionTypes[0] }) != null + ? collectionTypes[0] + : collectionTypes[1]; + var activator = _collectionActivators.GetOrAdd(new Tuple(type, collectionType), t => type.CreateActivator(collectionType)); + return activator?.Invoke(arrayValue); + } + } + + private static int GetCollectionCount(object collection) + { + if (collection is System.Collections.IList list) + { + return list.Count; + } + else if (collection is System.Collections.IDictionary dictionary) + { + return dictionary.Count; + } + else + { + var count = 0; + var e = ((System.Collections.IEnumerable)collection).GetEnumerator(); + using (e as IDisposable) + { + while (e.MoveNext()) + { + count++; + } + } + + return count; + } + } + + public static IDictionary ToDictionary(this object source, ITypeCache typeCache) + { + if (source == null) + { + return new Dictionary(); + } + + if (source is IDictionary objects) + { + return objects; + } + + if (source is ODataEntry entry) + { + return (Dictionary)entry; + } + + return typeCache.ToDictionary(source); + } + + private static object CreateInstance(Type type) + { + if (type == typeof(IDictionary)) + { + return new Dictionary(); + } + else + { + var ctor = _defaultActivators.GetOrAdd(type, t => t.CreateActivator()); + return ctor.Invoke(); + } + } + + private static ODataEntry CreateODataEntry(IDictionary source, ITypeCache typeCache, bool dynamicObject = false) + { + return dynamicObject && CreateDynamicODataEntry != null ? + CreateDynamicODataEntry(source, typeCache) : + new ODataEntry(source); + } + + private static IDictionary CreateDynamicPropertiesContainer(Type type, ITypeCache typeCache, object instance, string dynamicPropertiesContainerName) + { + var property = typeCache.GetNamedProperty(type, dynamicPropertiesContainerName); + + if (property == null) + { + throw new ArgumentException($"Type {type} does not have property {dynamicPropertiesContainerName} "); + } + + if (!typeCache.IsTypeAssignableFrom(typeof(IDictionary), property.PropertyType)) + { + throw new InvalidOperationException($"Property {dynamicPropertiesContainerName} must implement IDictionary interface"); + } + + var dynamicProperties = new Dictionary(); + property.SetValue(instance, dynamicProperties, null); + return dynamicProperties; + } + + private static object CreateInstanceOfAnonymousType(IDictionary source, Type type, ITypeCache typeCache) + { + var constructor = FindConstructorOfAnonymousType(type, source); + if (constructor == null) + { + throw new ConstructorNotFoundException(type, source.Values.Select(v => v.GetType())); + } + + var parameterInfos = constructor.GetParameters(); + var constructorParameters = new object[parameterInfos.Length]; + for (var parameterIndex = 0; parameterIndex < parameterInfos.Length; parameterIndex++) + { + var parameterInfo = parameterInfos[parameterIndex]; + constructorParameters[parameterIndex] = ConvertValue(parameterInfo.ParameterType, typeCache, source[parameterInfo.Name]); + } + + return constructor.Invoke(constructorParameters); + } + + private static ConstructorInfo FindConstructorOfAnonymousType(Type type, IDictionary source) + { + return type.GetDeclaredConstructors().FirstOrDefault(c => + { + var parameters = c.GetParameters(); + return parameters.Length == source.Count && + parameters.All(p => source.ContainsKey(p.Name)); + }); + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/EnumerableOfKeyValuePairExtensions.cs b/src/Simple.OData.Client.Core/Extensions/EnumerableOfKeyValuePairExtensions.cs new file mode 100644 index 000000000..b0f80590c --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/EnumerableOfKeyValuePairExtensions.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client.Extensions; + +internal static class EnumerableOfKeyValuePairExtensions +{ + public static Dictionary ToDictionary(this IEnumerable> source) + { + if (source is not Dictionary dictionary) + { + dictionary = source.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + } + + return dictionary; + } + + public static IDictionary ToIDictionary(this IEnumerable> source) + { + if (source is not Dictionary dictionary) + { + dictionary = source.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + } + + return dictionary; + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/ExpressionActivator.cs b/src/Simple.OData.Client.Core/Extensions/ExpressionActivator.cs new file mode 100644 index 000000000..cf15b3ea6 --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/ExpressionActivator.cs @@ -0,0 +1,137 @@ +//The MIT License (MIT) + +//Copyright (c) 2015 Kristian Hellang + +//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. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; + +namespace Simple.OData.Client.Extensions; + +public delegate T ActivatorDelegate(params object[] args); + +public delegate object ActivatorDelegate(params object[] args); + +public static class ExpressionActivator +{ + public static ActivatorDelegate CreateActivator() + { + return CreateActivator(Type.EmptyTypes); + } + + public static ActivatorDelegate CreateActivator(params Type[] parameters) + { + var constructor = typeof(T).GetConstructor(parameters); + if (constructor == null) + { + throw new ConstructorNotFoundException(typeof(T), parameters); + } + + return constructor.CreateActivator(); + } + + public static ActivatorDelegate CreateActivator(this ConstructorInfo constructor) + { + if (!typeof(T).IsAssignableFrom(constructor.DeclaringType)) + { + throw new TypeMismatchException(typeof(T), constructor.DeclaringType); + } + + return constructor.CreateActivator().Cast(); + } + + public static ActivatorDelegate CreateActivator(this Type type) + { + return type.CreateActivator(Type.EmptyTypes); + } + + public static ActivatorDelegate CreateActivator(this Type type, params Type[] parameters) + { + var constructor = type.GetConstructor(parameters); + if (constructor == null) + { + throw new ConstructorNotFoundException(type, parameters); + } + + return constructor.CreateActivator(); + } + + public static ActivatorDelegate CreateActivator(this ConstructorInfo constructor) + { + if (constructor == null) + { + throw new ArgumentNullException(nameof(constructor)); + } + + var parameter = Expression.Parameter(typeof(object[]), "args"); + + var argsExpressions = constructor.GetParameters() + .Select(CreateArgumentExpression) + .Select(x => x.Invoke(parameter)) + .Cast() + .ToArray(); + + var newExpression = Expression.New(constructor, argsExpressions); + + var lambdaExpression = Expression.Lambda(typeof(ActivatorDelegate), newExpression, parameter); + + return (ActivatorDelegate)lambdaExpression.Compile(); + } + + public static ActivatorDelegate Cast(this ActivatorDelegate activator) + { + return args => (T)activator.Invoke(args); + } + + private static Func CreateArgumentExpression(ParameterInfo parameterInfo, int index) + { + return parameterExpression => + { + var indexExpression = Expression.Constant(index); + + var arrayAccessorExpression = Expression.ArrayIndex(parameterExpression, indexExpression); + + return Expression.Convert(arrayAccessorExpression, parameterInfo.ParameterType); + }; + } +} + +public class ConstructorNotFoundException : Exception +{ + private const string ErrorMessage = "Could not find a constructor for type '{0}' with the following argument types: {1}"; + + public ConstructorNotFoundException(Type type, IEnumerable parameterTypes) + : base(string.Format(ErrorMessage, type.Name, string.Join(", ", parameterTypes.Select(x => x.Name)))) + { + } +} + +public class TypeMismatchException : Exception +{ + private const string ErrorMessage = "Type '{0}' must be assignable to type '{1}' in order to create a typed activator."; + + public TypeMismatchException(Type type, Type declaringType) + : base(string.Format(ErrorMessage, declaringType.Name, type.Name)) + { + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/HomogenizeEx.cs b/src/Simple.OData.Client.Core/Extensions/HomogenizeEx.cs new file mode 100644 index 000000000..7e86a4c5e --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/HomogenizeEx.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Concurrent; +using System.Text.RegularExpressions; + +namespace Simple.OData.Client.Extensions; + +internal static class HomogenizeEx +{ + private static readonly ConcurrentDictionary Cache + = new(StringComparer.OrdinalIgnoreCase); + private static Regex _homogenizeRegex = new(@"[\s\p{P}]"); + + /// + /// Downshift a string and remove all non-alphanumeric characters. + /// + /// The original string. + /// The modified string. + public static string Homogenize(this string source) + { + return source == null ? null : Cache.GetOrAdd(source, HomogenizeImpl); + } + + private static string HomogenizeImpl(string source) + { + return _homogenizeRegex.Replace(source.ToLowerInvariant(), string.Empty); + } + + /// + /// Sets the regular expression to be used for homogenizing object names. + /// + /// A regular expression matching all non-comparing characters. The default is "[^a-z0-9]". + /// Homogenized strings are always forced to lower-case. + public static void SetRegularExpression(Regex regex) + { + _homogenizeRegex = regex; + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/MemberInfoExtensions.cs b/src/Simple.OData.Client.Core/Extensions/MemberInfoExtensions.cs new file mode 100644 index 000000000..6149628dd --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/MemberInfoExtensions.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace Simple.OData.Client.Extensions; + +public static class MemberInfoExtensions +{ + private static readonly ConcurrentDictionary cache = new(); + + public static bool IsNotMapped(this MemberInfo memberInfo) + { + return MappingInfo(memberInfo).IsNotMapped; + } + + /// + /// Extract a column name from the member's attributes + /// + /// + /// + public static string GetMappedName(this MemberInfo memberInfo) + { + return MappingInfo(memberInfo).MappedName; + } + + private static MappingInfo MappingInfo(MemberInfo memberInfo) + { + var info = cache.GetOrAdd(memberInfo, MappingInfoFactory); + + return info; + } + + private static MappingInfo MappingInfoFactory(MemberInfo memberInfo) + { + var attributes = memberInfo.GetCustomAttributes().ToList(); + + return new MappingInfo + { + IsNotMapped = attributes.IsNotMapped(), + MappedName = memberInfo.Name.GetMappedName(attributes) + }; + } + + private static bool IsNotMapped(this IList attributes) + { + var supportedAttributeNames = new[] + { + "NotMappedAttribute", + "JsonIgnoreAttribute", + }; + + return attributes.Any(x => supportedAttributeNames.Contains(x.GetType().Name)); + } + + private static string GetMappedName(this string name, IList attributes) + { + var supportedAttributeNames = new[] + { + "DataAttribute", + "DataMemberAttribute", + "ColumnAttribute", + "JsonPropertyAttribute", + "JsonPropertyNameAttribute", + }; + + var mappingAttribute = attributes.FirstOrDefault(x => supportedAttributeNames.Any(y => x.GetType().Name == y)); + if (mappingAttribute == null) + { + mappingAttribute = attributes.FirstOrDefault(x => x.GetType().GetNamedProperty("PropertyName") != null); + } + + var attributePropertyNames = new[] + { + "Name", + "PropertyName", + }; + if (mappingAttribute != null) + { + foreach (var attributeProperty in attributePropertyNames) + { + var nameProperty = mappingAttribute.GetType().GetNamedProperty(attributeProperty); + if (nameProperty != null) + { + var propertyValue = nameProperty.GetValueEx(mappingAttribute); + if (propertyValue != null) + { + return propertyValue.ToString(); + } + } + } + } + + return name; + } + + public static object GetValueEx(this MemberInfo memberInfo, object instance) + { + return MemberAccessor.GetValue(instance, memberInfo); + } + + public static void SetValueEx(this MemberInfo memberInfo, object instance, object value) + { + MemberAccessor.SetValue(instance, memberInfo, value); + } +} + +public class MappingInfo +{ + public bool IsNotMapped { get; set; } + + public string MappedName { get; set; } +} diff --git a/src/Simple.OData.Client.Core/Extensions/StringExtensions.cs b/src/Simple.OData.Client.Core/Extensions/StringExtensions.cs new file mode 100644 index 000000000..0e1a89d9b --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/StringExtensions.cs @@ -0,0 +1,26 @@ +using System.Linq; + +namespace Simple.OData.Client.Extensions; + +internal static class StringExtensions +{ + public static bool IsAllUpperCase(this string str) + { + return !str.Cast().Any(char.IsLower); + } + + public static string NullIfWhitespace(this string str) + { + return string.IsNullOrWhiteSpace(str) ? null : str; + } + + public static string OrDefault(this string str, string defaultValue) + { + return str ?? defaultValue; + } + + public static string EnsureStartsWith(this string source, string value) + { + return (source == null || source.StartsWith(value)) ? source : value + source; + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/TypeExtensions.cs b/src/Simple.OData.Client.Core/Extensions/TypeExtensions.cs new file mode 100644 index 000000000..abf21957a --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/TypeExtensions.cs @@ -0,0 +1,228 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace Simple.OData.Client.Extensions; + +internal static class TypeExtensions +{ + public static IEnumerable DerivedTypes(this Type type) + { + return type + .Assembly.GetTypes() + .Where(t => t.IsSubclassOf(type) && !t.IsAbstract); + } + + public static IEnumerable GetAllProperties(this Type type) + { + var properties = GetDeclaredProperties(type).ToList(); + + var baseType = type.GetTypeInfo().BaseType; + if (baseType != null && baseType != typeof(object)) + { + properties.AddRange(baseType.GetAllProperties().Where(x => properties.All(y => y.Name != x.Name))); + } + + return properties.ToArray(); + } + + /// + /// Get a directly named property + /// + /// + /// + /// + public static PropertyInfo GetNamedProperty(this Type type, string propertyName) + { + var currentType = type; + while (currentType != null && currentType != typeof(object)) + { + var property = currentType.GetTypeInfo().GetDeclaredProperty(propertyName); + if (property != null) + { + return property; + } + + currentType = currentType.GetTypeInfo().BaseType; + } + + return null; + } + + public static IEnumerable GetMappedProperties(this Type type) + { + return type.GetAllProperties().Where(x => !x.IsNotMapped()); + } + + public static IEnumerable> GetMappedPropertiesWithNames(this Type type) + { + return type.GetMappedProperties().Select(p => new Tuple(p, p.GetMappedName())); + } + + private static bool IsInstanceProperty(PropertyInfo propertyInfo) + { + return (propertyInfo.CanRead && !propertyInfo.GetMethod.IsStatic) + || (propertyInfo.CanWrite && !propertyInfo.SetMethod.IsStatic); + } + + private static bool IsExplicitInterfaceProperty(PropertyInfo propertyInfo) + { + return propertyInfo.Name.Contains("."); + } + + private static bool IsIndexerProperty(PropertyInfo propertyInfo) + { + return propertyInfo.GetIndexParameters().Length > 0; + } + + public static IEnumerable GetDeclaredProperties(this Type type) + { + return type.GetTypeInfo().DeclaredProperties + .Where(x => IsInstanceProperty(x) && !IsExplicitInterfaceProperty(x) && !IsIndexerProperty(x)); + } + + public static PropertyInfo GetDeclaredProperty(this Type type, string propertyName) + { + return type.GetTypeInfo().GetDeclaredProperty(propertyName); + } + + public static IEnumerable GetAllFields(this Type type) + { + var fields = GetDeclaredFields(type).ToList(); + + var baseType = type.GetTypeInfo().BaseType; + if (baseType != null && baseType != typeof(object)) + { + fields.AddRange(baseType.GetAllFields().Where(x => fields.All(y => y.Name != x.Name))); + } + + return fields.ToArray(); + } + + [Obsolete("The includeNonPublic field is ignored. Use the method GetAnyField(Type type, string fieldName) instead.")] + public static FieldInfo GetAnyField(this Type type, string fieldName, bool includeNonPublic) + { + return GetAnyField(type, fieldName); + } + + public static FieldInfo GetAnyField(this Type type, string fieldName) + { + var currentType = type; + while (currentType != null && currentType != typeof(object)) + { + var field = currentType.GetDeclaredField(fieldName); + if (field != null) + { + return field; + } + + currentType = currentType.GetTypeInfo().BaseType; + } + + return null; + } + + public static IEnumerable GetDeclaredFields(this Type type) + { + return type.GetTypeInfo().DeclaredFields.Where(x => !x.IsStatic); + } + + public static FieldInfo GetDeclaredField(this Type type, string fieldName) + { + return type.GetTypeInfo().GetDeclaredField(fieldName); + } + + public static MethodInfo GetDeclaredMethod(this Type type, string methodName) + { + return type.GetTypeInfo().GetDeclaredMethod(methodName); + } + + public static IEnumerable GetDeclaredConstructors(this Type type) + { + return type.GetTypeInfo().DeclaredConstructors.Where(x => !x.IsStatic); + } + + public static ConstructorInfo GetDefaultConstructor(this Type type) + { + return GetDeclaredConstructors(type).SingleOrDefault(x => x.GetParameters().Length == 0); + } + + public static TypeAttributes GetTypeAttributes(this Type type) + { + return type.GetTypeInfo().Attributes; + } + + public static Type[] GetGenericTypeArguments(this Type type) + { + return type.GetTypeInfo().GenericTypeArguments; + } + + public static bool IsTypeAssignableFrom(this Type type, Type otherType) + { + return type.GetTypeInfo().IsAssignableFrom(otherType.GetTypeInfo()); + } + + public static bool HasCustomAttribute(this Type type, Type attributeType, bool inherit) + { + return type.GetTypeInfo().GetCustomAttribute(attributeType, inherit) != null; + } + + public static bool IsGeneric(this Type type) + { + return type.GetTypeInfo().IsGenericType; + } + + public static bool IsValue(this Type type) + { + return type.GetTypeInfo().IsValueType; + } + + public static bool IsEnumType(this Type type) + { + return type.GetTypeInfo().IsEnum; + } + + public static Type GetBaseType(this Type type) + { + return type.GetTypeInfo().BaseType; + } + + public static bool IsAnonymousType(this Type type) + { + // HACK: The only way to detect anonymous types right now. + return type.HasCustomAttribute(typeof(CompilerGeneratedAttribute), false) + && type.IsGeneric() && type.Name.Contains("AnonymousType") + && (type.Name.StartsWith("<>", StringComparison.OrdinalIgnoreCase) || + type.Name.StartsWith("VB$", StringComparison.OrdinalIgnoreCase)) + && (type.GetTypeAttributes() & TypeAttributes.NotPublic) == TypeAttributes.NotPublic; + } + + public static string GetMappedName(this Type type) + { + var supportedAttributeNames = new[] + { + "DataContractAttribute", + "TableAttribute", + }; + + var mappingAttribute = type.GetCustomAttributes() + .FirstOrDefault(x => supportedAttributeNames.Any(y => x.GetType().Name == y)); + + if (mappingAttribute != null) + { + var nameProperty = mappingAttribute.GetType().GetNamedProperty("Name"); + if (nameProperty != null) + { + var propertyValue = nameProperty.GetValueEx(mappingAttribute); + if (propertyValue != null) + { + return propertyValue.ToString(); + } + } + } + + return type.Name; + } +} diff --git a/src/Simple.OData.Client.Core/Extensions/XElementExtensions.cs b/src/Simple.OData.Client.Core/Extensions/XElementExtensions.cs new file mode 100644 index 000000000..7ac170374 --- /dev/null +++ b/src/Simple.OData.Client.Core/Extensions/XElementExtensions.cs @@ -0,0 +1,62 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; + +namespace Simple.OData.Client.Extensions; + +/// +/// Extension methods for . +/// +internal static class XElementExtensions +{ + public static XElement Element(this XElement element, string prefix, string name) + { + return Elements(element, prefix, name).FirstOrDefault(); + } + + public static IEnumerable Elements(this XElement element, string prefix, string name) + { + if (string.IsNullOrEmpty(prefix)) + { + return element.Elements().Where( + x => x.Name.LocalName == name && + string.IsNullOrEmpty(element.GetPrefixOfNamespace(x.Name.Namespace))); + } + + return element.Elements(ResolvePrefix(element, prefix) + name); + } + + public static IEnumerable Descendants(this XElement element, string prefix, string name) + { + var result = element.Descendants(ResolvePrefix(element, prefix) + name); + + if (result.Any()) + { + return result; + } + + if (string.IsNullOrEmpty(prefix)) + { + return element.Descendants().Where( + x => x.Name.LocalName == name && + string.IsNullOrEmpty(element.GetPrefixOfNamespace(x.Name.Namespace))); + } + + return XElement.EmptySequence; + } + + public static XAttribute Attribute(this XElement element, string prefix, string name) + { + return element.Attribute(ResolvePrefix(element, prefix) + name); + } + + private static XNamespace ResolvePrefix(XElement element, string prefix) + { + return string.IsNullOrEmpty(prefix) ? element.GetDefaultNamespace() : element.GetNamespaceOfPrefix(prefix); + } + + public static string ValueOrDefault(this XElement element) + { + return element == null ? string.Empty : element.Value; + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/BoundClient.Async.cs b/src/Simple.OData.Client.Core/Fluent/BoundClient.Async.cs new file mode 100644 index 000000000..172def3a0 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/BoundClient.Async.cs @@ -0,0 +1,366 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public partial class BoundClient +{ + public Task> FindEntriesAsync() + { + return FindEntriesAsync(CancellationToken.None); + } + + public Task> FindEntriesAsync(CancellationToken cancellationToken) + { + return FilterAndTypeColumnsAsync( + _client.FindEntriesAsync(_command, false, null, cancellationToken), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + + public Task> FindEntriesAsync(bool scalarResult) + { + return FindEntriesAsync(scalarResult, CancellationToken.None); + } + + public Task> FindEntriesAsync(bool scalarResult, CancellationToken cancellationToken) + { + return FilterAndTypeColumnsAsync( + _client.FindEntriesAsync(_command, scalarResult, null, cancellationToken), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + + public Task> FindEntriesAsync(ODataFeedAnnotations annotations) + { + return FindEntriesAsync(annotations, CancellationToken.None); + } + + public async Task> FindEntriesAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken); + var command = _command.WithCount().Resolve(_session); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = _client.FindEntriesAsync(command.Format(), annotations, cancellationToken); + return await FilterAndTypeColumnsAsync( + result, _command.SelectedColumns, _command.DynamicPropertiesContainerName).ConfigureAwait(false); + } + + public Task> FindEntriesAsync(Uri annotatedUri, ODataFeedAnnotations annotations) + { + return FindEntriesAsync(annotatedUri, annotations, CancellationToken.None); + } + + public async Task> FindEntriesAsync(Uri annotatedUri, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + var commandText = annotatedUri.AbsoluteUri; + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = _client.FindEntriesAsync(commandText, annotations, cancellationToken); + return await FilterAndTypeColumnsAsync( + result, _command.SelectedColumns, _command.DynamicPropertiesContainerName).ConfigureAwait(false); + } + + public Task FindEntryAsync() + { + return FindEntryAsync(CancellationToken.None); + } + + public Task FindEntryAsync(CancellationToken cancellationToken) + { + return FilterAndTypeColumnsAsync( + _client.FindEntryAsync(_command, cancellationToken), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + + public Task FindScalarAsync() + { + return FindScalarAsync(CancellationToken.None); + } + + public async Task FindScalarAsync(CancellationToken cancellationToken) + { + var result = await _client.FindScalarAsync(_command, cancellationToken).ConfigureAwait(false); + return _client.IsBatchRequest + ? default(U) + : _session.TypeCache.Convert(result); + } + + public Task InsertEntryAsync() + { + return InsertEntryAsync(true, CancellationToken.None); + } + + public Task InsertEntryAsync(CancellationToken cancellationToken) + { + return InsertEntryAsync(true, cancellationToken); + } + + public Task InsertEntryAsync(bool resultRequired) + { + return InsertEntryAsync(resultRequired, CancellationToken.None); + } + + public async Task InsertEntryAsync(bool resultRequired, CancellationToken cancellationToken) + { + var result = await _client.InsertEntryAsync(_command, resultRequired, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(_command.DynamicPropertiesContainerName)) + { + TypeCache.Register(_command.DynamicPropertiesContainerName); + } + + return result.ToObject(TypeCache, _dynamicResults); + } + + public Task UpdateEntryAsync() + { + return UpdateEntryAsync(true, CancellationToken.None); + } + + public Task UpdateEntryAsync(CancellationToken cancellationToken) + { + return UpdateEntryAsync(true, cancellationToken); + } + + public Task UpdateEntryAsync(bool resultRequired) + { + return UpdateEntryAsync(resultRequired, CancellationToken.None); + } + + public async Task UpdateEntryAsync(bool resultRequired, CancellationToken cancellationToken) + { + if (_command.Details.HasFilter) + { + var result = await UpdateEntriesAsync(resultRequired, cancellationToken).ConfigureAwait(false); + return resultRequired + ? result?.First() + : null; + } + else + { + var result = await _client.UpdateEntryAsync(_command, resultRequired, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(_command.DynamicPropertiesContainerName)) + { + TypeCache.Register(_command.DynamicPropertiesContainerName); + } + + return resultRequired + ? result?.ToObject(TypeCache, _dynamicResults) + : null; + } + } + + public Task> UpdateEntriesAsync() + { + return UpdateEntriesAsync(true, CancellationToken.None); + } + + public Task> UpdateEntriesAsync(CancellationToken cancellationToken) + { + return UpdateEntriesAsync(true, cancellationToken); + } + + public Task> UpdateEntriesAsync(bool resultRequired) + { + return UpdateEntriesAsync(resultRequired, CancellationToken.None); + } + + public async Task> UpdateEntriesAsync(bool resultRequired, CancellationToken cancellationToken) + { + var result = await _client.UpdateEntriesAsync(_command, resultRequired, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(_command.DynamicPropertiesContainerName)) + { + TypeCache.Register(_command.DynamicPropertiesContainerName); + } + + return result.Select(y => y.ToObject(TypeCache, _dynamicResults)); + } + + public Task DeleteEntryAsync() + { + return DeleteEntryAsync(CancellationToken.None); + } + + public Task DeleteEntryAsync(CancellationToken cancellationToken) + { + if (_command.Details.HasFilter) + { + return DeleteEntriesAsync(cancellationToken); + } + else + { + return _client.DeleteEntryAsync(_command, cancellationToken); + } + } + + public Task DeleteEntriesAsync() + { + return DeleteEntriesAsync(CancellationToken.None); + } + + public Task DeleteEntriesAsync(CancellationToken cancellationToken) + { + return _client.DeleteEntriesAsync(_command, cancellationToken); + } + + public Task LinkEntryAsync(U linkedEntryKey) + { + return LinkEntryAsync(linkedEntryKey, null, CancellationToken.None); + } + + public Task LinkEntryAsync(U linkedEntryKey, CancellationToken cancellationToken) + { + return LinkEntryAsync(linkedEntryKey, null, cancellationToken); + } + + public Task LinkEntryAsync(U linkedEntryKey, string linkName) + { + return LinkEntryAsync(linkedEntryKey, linkName, CancellationToken.None); + } + + public Task LinkEntryAsync(U linkedEntryKey, string linkName, CancellationToken cancellationToken) + { + return _client.LinkEntryAsync(_command, linkName ?? typeof(U).Name, linkedEntryKey.ToDictionary(_session.TypeCache), cancellationToken); + } + + public Task LinkEntryAsync(Expression> expression, U linkedEntryKey) + { + return LinkEntryAsync(expression, linkedEntryKey, CancellationToken.None); + } + + public Task LinkEntryAsync(Expression> expression, U linkedEntryKey, CancellationToken cancellationToken) + { + return _client.LinkEntryAsync(_command, ColumnExpression.ExtractColumnName(expression, _session.TypeCache), linkedEntryKey.ToDictionary(_session.TypeCache), cancellationToken); + } + + public Task LinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey) + { + return _client.LinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey.ToDictionary(), CancellationToken.None); + } + + public Task LinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + return _client.LinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey.ToDictionary(), cancellationToken); + } + + public Task LinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey) + { + return _client.LinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey.ToDictionary(_session.TypeCache), CancellationToken.None); + } + + public Task LinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey, CancellationToken cancellationToken) + { + return _client.LinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey.ToDictionary(_session.TypeCache), cancellationToken); + } + + public Task UnlinkEntryAsync() + { + return _client.UnlinkEntryAsync(_command, typeof(U).Name, null, CancellationToken.None); + } + + public Task UnlinkEntryAsync(CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, typeof(U).Name, null, cancellationToken); + } + + public Task UnlinkEntryAsync(string linkName) + { + return _client.UnlinkEntryAsync(_command, linkName, null, CancellationToken.None); + } + + public Task UnlinkEntryAsync(string linkName, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, linkName, null, cancellationToken); + } + + public Task UnlinkEntryAsync(Expression> expression) + { + return _client.UnlinkEntryAsync(_command, expression.ExtractColumnName(_session.TypeCache), null, CancellationToken.None); + } + + public Task UnlinkEntryAsync(Expression> expression, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, expression.ExtractColumnName(_session.TypeCache), null, cancellationToken); + } + + public Task UnlinkEntryAsync(ODataExpression expression) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), null, CancellationToken.None); + } + + public Task UnlinkEntryAsync(ODataExpression expression, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), null, cancellationToken); + } + + public Task UnlinkEntryAsync(U linkedEntryKey) + { + return UnlinkEntryAsync(linkedEntryKey, CancellationToken.None); + } + + public Task UnlinkEntryAsync(U linkedEntryKey, CancellationToken cancellationToken) + { + if (linkedEntryKey.GetType() == typeof(string)) + { + return UnlinkEntryAsync(linkedEntryKey.ToString(), cancellationToken); + } + else if (linkedEntryKey is ODataExpression && (linkedEntryKey as ODataExpression).Reference != null) + { + return UnlinkEntryAsync((linkedEntryKey as ODataExpression).Reference, cancellationToken); + } + else + { + return UnlinkEntryAsync(linkedEntryKey, null, cancellationToken); + } + } + + public Task UnlinkEntryAsync(U linkedEntryKey, string linkName) + { + return UnlinkEntryAsync(linkedEntryKey, linkName, CancellationToken.None); + } + + public Task UnlinkEntryAsync(U linkedEntryKey, string linkName, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, linkName ?? typeof(U).Name, linkedEntryKey?.ToDictionary(_session.TypeCache), cancellationToken); + } + + public Task UnlinkEntryAsync(Expression> expression, U linkedEntryKey) + { + return UnlinkEntryAsync(expression, linkedEntryKey, CancellationToken.None); + } + + public Task UnlinkEntryAsync(Expression> expression, U linkedEntryKey, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, expression.ExtractColumnName(_session.TypeCache), linkedEntryKey?.ToDictionary(_session.TypeCache), cancellationToken); + } + + public Task UnlinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey?.ToDictionary(), CancellationToken.None); + } + + public Task UnlinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey?.ToDictionary(), cancellationToken); + } + + public Task UnlinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey?.ToDictionary(_session.TypeCache), CancellationToken.None); + } + + public Task UnlinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey, CancellationToken cancellationToken) + { + return _client.UnlinkEntryAsync(_command, expression.AsString(_session), linkedEntryKey?.ToDictionary(_session.TypeCache), cancellationToken); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/BoundClient.cs b/src/Simple.OData.Client.Core/Fluent/BoundClient.cs new file mode 100644 index 000000000..386513afb --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/BoundClient.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +// ALthough BoundClient is never instantiated directly (only via IBoundClient interface) +// it's declared as public in order to resolve problem when it is used with dynamic C# +// For the same reason FluentCommand is also declared as public +// More: http://bloggingabout.net/blogs/vagif/archive/2013/08/05/we-need-better-interoperability-between-dynamic-and-statically-compiled-c.aspx + +/// +/// Provides access to OData operations in a fluent style. +/// +/// The entry type. +public partial class BoundClient : FluentClientBase>, IBoundClient + where T : class +{ + internal BoundClient(ODataClient client, Session session, FluentCommand parentCommand = null, FluentCommand command = null, bool dynamicResults = false) + : base(client, session, parentCommand, command, dynamicResults) + { + } + + public IBoundClient For(string collectionName = null) + { + Command.For(collectionName ?? _session.TypeCache.GetMappedName(typeof(T))); + return this; + } + + public IBoundClient For(ODataExpression expression) + { + Command.For(expression.Reference); + return CreateClientForODataEntry(); + } + + public IBoundClient> As(string derivedCollectionName) + { + Command.As(derivedCollectionName); + return new BoundClient>(_client, _session, _parentCommand, Command, _dynamicResults); + } + + public IBoundClient Set(object value) + { + Command.Set(value); + return this; + } + + public IBoundClient Set(IDictionary value) + { + Command.Set(value); + return this; + } + + public IBoundClient Set(params ODataExpression[] value) + { + Command.Set(value); + return this; + } + + public IBoundClient Set(T entry) + { + Command.Set(entry); + return this; + } + + public IBoundClient Set(T entry, params ODataExpression[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(object value, IEnumerable associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(object value, params string[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(object value, params ODataExpression[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(object value, Expression> associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(IDictionary value, IEnumerable associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(IDictionary value, params string[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient Set(T entry, Expression> associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IBoundClient As(string derivedCollectionName = null) + where U : class + { + Command.As(derivedCollectionName ?? typeof(U).Name); + return new BoundClient(_client, _session, _parentCommand, Command, _dynamicResults); + } + + public IBoundClient As(ODataExpression expression) + { + Command.As(expression); + return CreateClientForODataEntry(); + } + + public bool FilterIsKey => Command.Details.FilterIsKey; + + public IDictionary FilterAsKey => Command.Details.FilterAsKey; + + public IRequestBuilder BuildRequestFor() + { + return new RequestBuilder(Command, _session, _client.BatchWriter); + } + + private BoundClient CreateClientForODataEntry() + { + return new BoundClient(_client, _session, _parentCommand, Command, true); ; + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/ClientWithRequest.cs b/src/Simple.OData.Client.Core/Fluent/ClientWithRequest.cs new file mode 100644 index 000000000..7839a068f --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/ClientWithRequest.cs @@ -0,0 +1,46 @@ +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal class ClientWithRequest : IClientWithRequest + where T : class +{ + private readonly ODataRequest _request; + private readonly ISession _session; + private readonly RequestRunner _requestRunner; + + public ClientWithRequest(ODataRequest request, ISession session) + { + _request = request; + _session = session; + _requestRunner = new RequestRunner(_session); + } + + public ODataRequest GetRequest() + { + return _request; + } + + public IClientWithResponse FromResponse(HttpResponseMessage responseMessage) + { + return new ClientWithResponse(_session, _request, responseMessage); + } + + public Task> RunAsync() + { + return RunAsync(CancellationToken.None); + } + + public async Task> RunAsync(CancellationToken cancellationToken) + { + var response = await _requestRunner.ExecuteRequestAsync(_request, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return new ClientWithResponse(_session, _request, response); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/ClientWithResponse.cs b/src/Simple.OData.Client.Core/Fluent/ClientWithResponse.cs new file mode 100644 index 000000000..de66c9b26 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/ClientWithResponse.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public class ClientWithResponse : IClientWithResponse + where T : class +{ + private readonly ISession _session; + private readonly ODataRequest _request; + + public HttpResponseMessage ResponseMessage { get; private set; } + + public ClientWithResponse(ISession session, ODataRequest request, HttpResponseMessage responseMessage) + { + _session = session; + _request = request; + ResponseMessage = responseMessage; + } + + private ITypeCache TypeCache => _session.TypeCache; + + public void Dispose() + { + ResponseMessage?.Dispose(); + } + + public Task GetResponseStreamAsync() + { + return GetResponseStreamAsync(CancellationToken.None); + } + + public async Task GetResponseStreamAsync(CancellationToken cancellationToken) + { + if (ResponseMessage.IsSuccessStatusCode && ResponseMessage.StatusCode != HttpStatusCode.NoContent && + (_request.Method == RestVerbs.Get || _request.ResultRequired)) + { + var stream = new MemoryStream(); + await ResponseMessage.Content.CopyToAsync(stream); + if (stream.CanSeek) + { + stream.Seek(0L, SeekOrigin.Begin); + } + + return stream; + } + else + { + return Stream.Null; + } + } + + public Task> ReadAsCollectionAsync() + { + return ReadAsCollectionAsync(CancellationToken.None); + } + + public Task> ReadAsCollectionAsync(CancellationToken cancellationToken) + { + return ReadAsCollectionAsync(null, CancellationToken.None); + } + + public Task> ReadAsCollectionAsync(ODataFeedAnnotations annotations) + { + return ReadAsCollectionAsync(annotations, CancellationToken.None); + } + + public async Task> ReadAsCollectionAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + if (ResponseMessage.IsSuccessStatusCode && ResponseMessage.StatusCode != HttpStatusCode.NoContent && + (_request.Method == RestVerbs.Get || _request.ResultRequired)) + { + var responseReader = _session.Adapter.GetResponseReader(); + var response = await responseReader.GetResponseAsync(ResponseMessage).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + if (annotations != null && response.Feed != null) + { + annotations.CopyFrom(response.Feed.Annotations); + } + + var result = response.AsEntries(_session.Settings.IncludeAnnotationsInResults); + return result.Select(x => x.ToObject(TypeCache)); + } + else + { + return Array.Empty(); + } + } + + public Task ReadAsSingleAsync() + { + return ReadAsSingleAsync(CancellationToken.None); + } + + public async Task ReadAsSingleAsync(CancellationToken cancellationToken) + { + if (ResponseMessage.IsSuccessStatusCode && ResponseMessage.StatusCode != HttpStatusCode.NoContent && + (_request.Method == RestVerbs.Get || _request.ResultRequired)) + { + var responseReader = _session.Adapter.GetResponseReader(); + var response = await responseReader.GetResponseAsync(ResponseMessage).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = response.AsEntries(_session.Settings.IncludeAnnotationsInResults); + return result?.FirstOrDefault().ToObject(TypeCache); + } + else + { + return default(T); + } + } + + public Task ReadAsScalarAsync() + { + return ReadAsScalarAsync(CancellationToken.None); + } + + public async Task ReadAsScalarAsync(CancellationToken cancellationToken) + { + if (ResponseMessage.IsSuccessStatusCode && ResponseMessage.StatusCode != HttpStatusCode.NoContent && + (_request.Method == RestVerbs.Get || _request.ResultRequired)) + { + var responseReader = _session.Adapter.GetResponseReader(); + var response = await responseReader.GetResponseAsync(ResponseMessage).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = response.AsEntries(_session.Settings.IncludeAnnotationsInResults); + + static object extractScalar(IDictionary x) => (x == null) || !x.Any() ? null : x.Values.First(); + return result == null ? default(U) : _session.TypeCache.Convert(extractScalar(result.FirstOrDefault())); + } + else + { + return default(U); + } + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/FluentClientBase.cs b/src/Simple.OData.Client.Core/Fluent/FluentClientBase.cs new file mode 100644 index 000000000..62c371ef1 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/FluentClientBase.cs @@ -0,0 +1,768 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations in a fluent style. +/// +/// The entity type. +/// +public abstract class FluentClientBase : IFluentClient + where T : class + where FT : class +{ + protected readonly ODataClient _client; + internal readonly Session _session; + protected readonly FluentCommand _parentCommand; + protected FluentCommand _command; + protected readonly bool _dynamicResults; + + internal FluentClientBase(ODataClient client, Session session, + FluentCommand parentCommand = null, FluentCommand command = null, bool dynamicResults = false) + { + _client = client; + _session = session; + _parentCommand = parentCommand; + _command = command; + _dynamicResults = dynamicResults; + } + + internal FluentCommand Command + { + get + { + if (_command != null) + { + return _command; + } + + lock (this) + { + return _command ??= CreateCommand(); + } + } + } + + protected FluentCommand CreateCommand() + { + return new FluentCommand(_parentCommand, _client.BatchEntries); + } + + internal Session Session => _session; + + protected ITypeCache TypeCache => _session.TypeCache; + + public FT WithProperties(Expression>> expression) + { + Command.WithProperties(expression.ExtractColumnName(_session.TypeCache)); + return this as FT; + } + + public FT WithMedia(IEnumerable properties) + { + Command.WithMedia(properties); + return this as FT; + } + + public FT WithMedia(params string[] properties) + { + Command.WithMedia(properties); + return this as FT; + } + + public FT WithMedia(params ODataExpression[] properties) + { + Command.WithMedia(properties); + return this as FT; + } + + public FT WithMedia(Expression> expression) + { + Command.WithMedia(expression.ExtractColumnNames(_session.TypeCache)); + return this as FT; + } + + public FT WithHeader(string name, string value) + { + Command.WithHeader(name, value); + return this as FT; + } + + public FT WithHeaders(IEnumerable> headers) + { + Command.WithHeaders(headers); + return this as FT; + } + + public FT Key(params object[] entryKey) + { + Command.Key(entryKey); + return this as FT; + } + + public FT Key(IEnumerable entryKey) + { + Command.Key(entryKey); + return this as FT; + } + + public FT Key(IDictionary entryKey) + { + Command.Key(entryKey); + return this as FT; + } + + public FT Key(T entryKey) + { + Command.Key(entryKey.ToDictionary(_session.TypeCache)); + return this as FT; + } + + public FT Filter(string filter) + { + Command.Filter(filter); + return this as FT; + } + + public FT Filter(ODataExpression expression) + { + Command.Filter(expression); + return this as FT; + } + + public FT Filter(Expression> expression) + { + Command.Filter(ODataExpression.FromLinqExpression(expression.Body)); + return this as FT; + } + + public FT Search(string search) + { + Command.Search(search); + return this as FT; + } + + public FT Function(string functionName) + { + Command.Function(functionName); + return this as FT; + } + + public IBoundClient Function(string functionName) where U : class + { + Command.Function(functionName); + return new BoundClient(_client, _session, _parentCommand, Command, _dynamicResults); + } + + public FT Action(string actionName) + { + Command.Action(actionName); + return this as FT; + } + + public FT Skip(long count) + { + Command.Skip(count); + return this as FT; + } + + public FT Top(long count) + { + Command.Top(count); + return this as FT; + } + + public FT Expand(ODataExpandOptions expandOptions) + { + Command.Expand(expandOptions); + return this as FT; + } + + public FT Expand(IEnumerable associations) + { + Command.Expand(associations.Select(ODataExpandAssociation.From)); + return this as FT; + } + + public FT Expand(ODataExpandOptions expandOptions, IEnumerable associations) + { + Command.Expand(expandOptions, associations.Select(ODataExpandAssociation.From)); + return this as FT; + } + + public FT Expand(params string[] associations) + { + Command.Expand(associations.Select(ODataExpandAssociation.From)); + return this as FT; + } + + public FT Expand(ODataExpandOptions expandOptions, params string[] associations) + { + Command.Expand(expandOptions, associations.Select(ODataExpandAssociation.From)); + return this as FT; + } + + public FT Expand(params ODataExpression[] associations) + { + Command.Expand(associations.Select(a => ODataExpandAssociation.From(a.Reference))); + return this as FT; + } + + public FT Expand(ODataExpandOptions expandOptions, params ODataExpression[] associations) + { + Command.Expand(expandOptions, associations.Select(a => ODataExpandAssociation.From(a.Reference))); + return this as FT; + } + + public FT Expand(Expression> expression) + { + Command.Expand(expression.ExtractExpandAssociations(_session.TypeCache)); + return this as FT; + } + + public FT Expand(ODataExpandOptions expandOptions, Expression> expression) + { + Command.Expand(expandOptions, expression.ExtractExpandAssociations(_session.TypeCache)); + return this as FT; + } + + public FT Select(IEnumerable columns) + { + Command.Select(columns); + return this as FT; + } + + public FT Select(params string[] columns) + { + Command.Select(columns); + return this as FT; + } + + public FT Select(params ODataExpression[] columns) + { + Command.Select(columns); + return this as FT; + } + + public FT Select(Expression> expression) + { + Command.Select(expression.ExtractColumnNames(_session.TypeCache)); + return this as FT; + } + + public FT OrderBy(IEnumerable> columns) + { + Command.OrderBy(columns); + return this as FT; + } + + public FT OrderBy(params string[] columns) + { + Command.OrderBy(columns); + return this as FT; + } + + public FT OrderBy(params ODataExpression[] columns) + { + Command.OrderBy(columns); + return this as FT; + } + + public FT OrderBy(Expression> expression) + { + Command.OrderBy(expression.ExtractColumnNames(_session.TypeCache).Select(x => new KeyValuePair(x, false))); + return this as FT; + } + + public FT ThenBy(params ODataExpression[] columns) + { + Command.ThenBy(columns); + return this as FT; + } + + public FT ThenBy(Expression> expression) + { + Command.ThenBy(expression.ExtractColumnNames(TypeCache).ToArray()); + return this as FT; + } + + public FT OrderByDescending(params string[] columns) + { + Command.OrderByDescending(columns); + return this as FT; + } + + public FT OrderByDescending(params ODataExpression[] columns) + { + Command.OrderByDescending(columns); + return this as FT; + } + + public FT OrderByDescending(Expression> expression) + { + Command.OrderBy(expression.ExtractColumnNames(_session.TypeCache).Select(x => new KeyValuePair(x, true))); + return this as FT; + } + + public FT ThenByDescending(params ODataExpression[] columns) + { + Command.ThenByDescending(columns); + return this as FT; + } + + public FT ThenByDescending(Expression> expression) + { + Command.ThenByDescending(expression.ExtractColumnNames(_session.TypeCache).ToArray()); + return this as FT; + } + + public FT QueryOptions(string queryOptions) + { + Command.QueryOptions(queryOptions); + return this as FT; + } + + public FT QueryOptions(IDictionary queryOptions) + { + Command.QueryOptions(queryOptions); + return this as FT; + } + + public FT QueryOptions(ODataExpression expression) + { + Command.QueryOptions(expression); + return this as FT; + } + + public FT QueryOptions(Expression> expression) + { + Command.QueryOptions(ODataExpression.FromLinqExpression(expression.Body)); + return this as FT; + } + + public IMediaClient Media() + { + Command.Media(); + return new MediaClient(_client, _session, Command, _dynamicResults); + } + + public IMediaClient Media(string streamName) + { + Command.Media(streamName); + return new MediaClient(_client, _session, Command, _dynamicResults); + } + + public IMediaClient Media(ODataExpression expression) + { + Command.Media(expression); + return new MediaClient(_client, _session, Command, _dynamicResults); + } + + public IMediaClient Media(Expression> expression) + { + Command.Media(expression.ExtractColumnName(_session.TypeCache)); + return new MediaClient(_client, _session, Command, _dynamicResults); + } + + public FT Count() + { + Command.Count(); + return this as FT; + } + + protected BoundClient Link(FluentCommand command, string linkName = null) + where U : class + { + linkName ??= typeof(U).Name; + var links = linkName.Split('/'); + var linkCommand = command; + BoundClient linkedClient = null; + foreach (var link in links) + { + linkedClient = new BoundClient(_client, _session, linkCommand, null, _dynamicResults); + linkedClient.Command.Link(link); + linkCommand = linkedClient.Command; + } + + return linkedClient; + } + + protected BoundClient Link(FluentCommand command, ODataExpression expression) + where U : class + { + return Link(command, expression.Reference); + } + + + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// Name of the link. + /// Self. + public IBoundClient NavigateTo(string linkName = null) + where U : class + { + return Link(Command, linkName); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression> expression) + where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression>> expression) where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression>> expression) where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression>> expression) where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression>> expression) where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(Expression> expression) where U : class + { + return Link(Command, expression.ExtractColumnName(_session.TypeCache)); + } + /// + /// Navigates to the linked entity. + /// + /// Name of the link. + /// Self. + public IBoundClient> NavigateTo(string linkName) + { + return Link>(Command, linkName); + } + /// + /// Navigates to the linked entity. + /// + /// The expression for the link. + /// Self. + public IBoundClient NavigateTo(ODataExpression expression) + { + return Link(Command, expression); + } + + /// + /// Executes the OData function or action. + /// + /// Execution result task. + public Task ExecuteAsync() + { + return _client.ExecuteAsync(_command, CancellationToken.None); + } + /// + /// Executes the OData function or action. + /// + /// The cancellation token. + /// Execution result task. + public Task ExecuteAsync(CancellationToken cancellationToken) + { + return _client.ExecuteAsync(_command, cancellationToken); + } + + /// + /// Executes the OData function or action and returns a single item. + /// + /// Execution result. + public Task ExecuteAsSingleAsync() + { + return ExecuteAsSingleAsync(CancellationToken.None); + } + /// + /// Executes the OData function or action and returns a single item. + /// + /// Execution result. + public Task ExecuteAsSingleAsync() + { + return ExecuteAsSingleAsync(CancellationToken.None); + } + /// + /// Executes the OData function or action and returns a single item. + /// + /// The cancellation token. + /// Execution result. + public Task ExecuteAsSingleAsync(CancellationToken cancellationToken) + { + return FilterAndTypeColumnsAsync( + _client.ExecuteAsSingleAsync(_command, cancellationToken), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + /// + /// Executes the OData function or action and returns a single item. + /// + /// The cancellation token. + /// Execution result. + public async Task ExecuteAsSingleAsync(CancellationToken cancellationToken) + { + return (await ExecuteAsArrayAsync(cancellationToken)).Single(); + } + + /// + /// Executes the OData function or action and returns enumerable result. + /// + /// Execution result. + public Task> ExecuteAsEnumerableAsync() + { + return FilterAndTypeColumnsAsync( + _client.ExecuteAsEnumerableAsync(_command, CancellationToken.None), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + /// + /// Executes the OData function or action and returns enumerable result. + /// + /// The cancellation token. + /// Execution result. + public Task> ExecuteAsEnumerableAsync(CancellationToken cancellationToken) + { + return FilterAndTypeColumnsAsync( + _client.ExecuteAsEnumerableAsync(_command, cancellationToken), + _command.SelectedColumns, _command.DynamicPropertiesContainerName); + } + + /// + /// Executes the OData function or action and returns scalar result. + /// + /// Execution result. + public Task ExecuteAsScalarAsync() + { + return _client.ExecuteAsScalarAsync(_command, CancellationToken.None); + } + /// + /// Executes the OData function or action and returns scalar result. + /// + /// The cancellation token. + /// Execution result. + public Task ExecuteAsScalarAsync(CancellationToken cancellationToken) + { + return _client.ExecuteAsScalarAsync(_command, cancellationToken); + } + + /// + /// Executes the OData function and returns an array. + /// + /// Execution result. + public Task ExecuteAsArrayAsync() + { + return ExecuteAsArrayAsync(CancellationToken.None); + } + + /// + /// Executes the OData function and returns an array. + /// + /// Execution result. + public Task ExecuteAsArrayAsync() + { + return ExecuteAsArrayAsync(CancellationToken.None); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The cancellation token. + /// Execution result. + public Task ExecuteAsArrayAsync(CancellationToken cancellationToken) + { + return _client.ExecuteAsArrayAsync(_command, cancellationToken); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The cancellation token. + /// Execution result. + public Task ExecuteAsArrayAsync(CancellationToken cancellationToken) + { + return ExecuteAsArrayAsync(cancellationToken); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The OData feed annotations. + /// Execution result. + public Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations) + { + return _client.ExecuteAsArrayAsync(_command, annotations, CancellationToken.None); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The OData feed annotations. + /// Execution result. + public Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations) + { + return ExecuteAsArrayAsync(annotations, CancellationToken.None); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The cancellation token. + /// The OData feed annotations. + /// Execution result. + public Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + return _client.ExecuteAsArrayAsync(_command, annotations, cancellationToken); + } + + /// + /// Executes the OData function and returns an array. + /// + /// The cancellation token. + /// The OData feed annotations. + /// Execution result. + public Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + return ExecuteAsArrayAsync(annotations, cancellationToken); + } + + /// + /// Gets the OData command text. + /// + /// The command text. + public Task GetCommandTextAsync() + { + return GetCommandTextAsync(CancellationToken.None); + } + /// + /// Gets the OData command text. + /// + /// The cancellation token. + /// The command text. + public async Task GetCommandTextAsync(CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return Command.Resolve(_session).Format(); + } + + protected async Task> FilterAndTypeColumnsAsync( + Task>> entries, IList selectedColumns, string dynamicPropertiesContainerName) + { + var result = FilterColumns(await entries.ConfigureAwait(false), selectedColumns); + return result?.Select(z => ConvertResult(z, dynamicPropertiesContainerName)); + } + + protected async Task FilterAndTypeColumnsAsync( + Task> entry, IList selectedColumns, string dynamicPropertiesContainerName) + { + return ConvertResult(FilterColumns(await entry.ConfigureAwait(false), selectedColumns), dynamicPropertiesContainerName); + } + + protected async Task, int>> FilterAndTypeColumnsAsync( + Task>, int>> entries, IList selectedColumns, string dynamicPropertiesContainerName) + { + var result = await entries.ConfigureAwait(false); + return new Tuple, int>( + FilterColumns(result.Item1, selectedColumns).Select(y => ConvertResult(y, dynamicPropertiesContainerName)), + result.Item2); + } + + protected IEnumerable> FilterColumns(IEnumerable> entries, IList selectedColumns) + { + return entries?.Select(x => FilterColumns(x, selectedColumns)); + } + + protected IDictionary FilterColumns(IDictionary entry, IList selectedColumns) + { + if (entry == null || selectedColumns == null || !selectedColumns.Any()) + { + return entry; + } + else + { + return entry.Where(x => selectedColumns.Any(y => IsSelectedColumn(x, y))).ToIDictionary(); + } + } + + private T ConvertResult(IDictionary result, string dynamicPropertiesContainerName) + { + if (!string.IsNullOrEmpty(dynamicPropertiesContainerName)) + { + TypeCache.Register(dynamicPropertiesContainerName); + } + + if (result != null && result.Keys.Count == 1 && result.ContainsKey(FluentCommand.ResultLiteral) && + TypeCache.IsValue(typeof(T)) || typeof(T) == typeof(string) || typeof(T) == typeof(object)) + { + return TypeCache.Convert(result.Values.First()); + } + else + { + return result.ToObject(TypeCache, _dynamicResults); + } + } + + private bool IsSelectedColumn(KeyValuePair kv, string columnName) + { + var items = columnName.Split('/'); + if (items.Count() == 1) + { + return _session.Settings.NameMatchResolver.IsMatch(kv.Key, columnName); + } + else + { + var item = items.First(); + return _session.Settings.NameMatchResolver.IsMatch(kv.Key, item) && + (kv.Value is IDictionary && (kv.Value as IDictionary) + .Any(x => IsSelectedColumn(x, string.Join("/", items.Skip(1)))) || + kv.Value is IEnumerable && (kv.Value as IEnumerable) + .Any(x => x is IDictionary && (x as IDictionary) + .Any(y => IsSelectedColumn(y, string.Join("/", items.Skip(1)))))); + } + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/FluentCommand.cs b/src/Simple.OData.Client.Core/Fluent/FluentCommand.cs new file mode 100644 index 000000000..0f2c44655 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/FluentCommand.cs @@ -0,0 +1,376 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; + +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +// Although FluentCommand is never instantiated directly (only via ICommand interface) +// it's declared as public in order to resolve problem when it is used with dynamic C# +// For the same reason FluentClient is also declared as public +// More: http://bloggingabout.net/blogs/vagif/archive/2013/08/05/we-need-better-interoperability-between-dynamic-and-statically-compiled-c.aspx + +public class FluentCommand +{ + internal static readonly string ResultLiteral = "__result"; + internal static readonly string AnnotationsLiteral = "__annotations"; + internal static readonly string MediaEntityLiteral = "__entity"; + + internal FluentCommand(FluentCommand parent, ConcurrentDictionary> batchEntries) + { + Details = new FluentCommandDetails(parent?.Details, batchEntries); + } + + internal FluentCommand(FluentCommandDetails details) + { + Details = new FluentCommandDetails(details); + } + + internal FluentCommand(ResolvedCommand command) + { + Details = new FluentCommandDetails(command.Details); + } + + internal FluentCommandDetails Details { get; private set; } + + internal ResolvedCommand Resolve(ISession session) + { + return new ResolvedCommand(this, session); + } + + public string DynamicPropertiesContainerName => Details.DynamicPropertiesContainerName; + + public FluentCommand For(string collectionName) + { + var items = collectionName.Split('/'); + if (items.Count() > 1) + { + Details.CollectionName = items[0]; + Details.DerivedCollectionName = items[1]; + } + else + { + Details.CollectionName = collectionName; + } + + return this; + } + + public FluentCommand WithProperties(string propertyName) + { + Details.DynamicPropertiesContainerName = propertyName; + return this; + } + + public FluentCommand WithMedia(IEnumerable properties) + { + Details.MediaProperties = properties; + return this; + } + + public FluentCommand WithMedia(params string[] properties) + { + Details.MediaProperties = SplitItems(properties).ToList(); + return this; + } + + public FluentCommand WithMedia(params ODataExpression[] properties) + { + return WithMedia(properties.Select(x => x.Reference)); + } + + public FluentCommand For(ODataExpression expression) + { + Details.CollectionExpression = expression; + return this; + } + + public FluentCommand As(string derivedCollectionName) + { + Details.DerivedCollectionName = derivedCollectionName; + return this; + } + + public FluentCommand As(ODataExpression expression) + { + Details.DerivedCollectionExpression = expression; + return this; + } + + public FluentCommand Link(string linkName) + { + Details.LinkName = linkName; + return this; + } + + public FluentCommand Link(ODataExpression expression) + { + Details.LinkExpression = expression; + return this; + } + + public FluentCommand Key(params object[] key) + { + return Key(key.ToList()); + } + + public FluentCommand Key(IEnumerable key) + { + Details.KeyValues = key.ToList(); + Details.NamedKeyValues = null; + Details.IsAlternateKey = false; + return this; + } + + public FluentCommand Key(IDictionary key) + { + Details.KeyValues = null; + Details.NamedKeyValues = key; + Details.IsAlternateKey = false; + return this; + } + + public FluentCommand Filter(string filter) + { + Details.Filter = string.IsNullOrEmpty(Details.Filter) + ? filter + : $"({Details.Filter}) and ({filter})"; + + return this; + } + + public FluentCommand Filter(ODataExpression expression) + { + Details.FilterExpression = Details.FilterExpression is null + ? expression + : Details.FilterExpression && expression; + + return this; + } + + public FluentCommand Search(string search) + { + Details.Search = search; + return this; + } + + public FluentCommand Skip(long count) + { + Details.SkipCount = count; + return this; + } + + public FluentCommand Top(long count) + { + if (!Details.HasKey || Details.HasFunction) + { + Details.TopCount = count; + } + else if (count != 1) + { + throw new InvalidOperationException("Top count may only be assigned to 1 when key is assigned."); + } + + return this; + } + + public FluentCommand Expand(ODataExpandOptions expandOptions) + { + Details.ExpandAssociations.Add(new KeyValuePair( + new ODataExpandAssociation("*"), + expandOptions)); + return this; + } + + public FluentCommand Expand(IEnumerable associations) + { + Details.ExpandAssociations.AddRange(associations.Select(x => + new KeyValuePair(x, ODataExpandOptions.ByValue()))); + return this; + } + + public FluentCommand Expand(ODataExpandOptions expandOptions, IEnumerable associations) + { + Details.ExpandAssociations.AddRange(associations.Select(x => + new KeyValuePair(x, expandOptions))); + return this; + } + + public FluentCommand Select(IEnumerable columns) + { + Details.SelectColumns.AddRange(SplitItems(columns).ToList()); + return this; + } + + public FluentCommand Select(params string[] columns) + { + Details.SelectColumns.AddRange(SplitItems(columns).ToList()); + return this; + } + + public FluentCommand Select(params ODataExpression[] columns) + { + return Select(columns.Select(x => x.Reference)); + } + + public FluentCommand OrderBy(IEnumerable> columns) + { + Details.OrderbyColumns.AddRange(SplitItems(columns)); + return this; + } + + public FluentCommand OrderBy(params string[] columns) + { + return OrderBy(SplitItems(columns).Select(x => new KeyValuePair(x, false))); + } + + public FluentCommand OrderBy(params ODataExpression[] columns) + { + return OrderBy(columns.Select(x => new KeyValuePair(x.Reference, false))); + } + + public FluentCommand ThenBy(params string[] columns) + { + Details.OrderbyColumns.AddRange(SplitItems(columns).Select(x => new KeyValuePair(x, false))); + return this; + } + + public FluentCommand ThenBy(params ODataExpression[] columns) + { + return ThenBy(columns.Select(x => x.Reference).ToArray()); + } + + public FluentCommand OrderByDescending(params string[] columns) + { + return OrderBy(SplitItems(columns).Select(x => new KeyValuePair(x, true))); + } + + public FluentCommand OrderByDescending(params ODataExpression[] columns) + { + return OrderBy(columns.Select(x => new KeyValuePair(x.Reference, true))); + } + + public FluentCommand ThenByDescending(params string[] columns) + { + Details.OrderbyColumns.AddRange(SplitItems(columns).Select(x => new KeyValuePair(x, true))); + return this; + } + + public FluentCommand ThenByDescending(params ODataExpression[] columns) + { + return ThenByDescending(columns.Select(x => x.Reference).ToArray()); + } + + public FluentCommand QueryOptions(string queryOptions) + { + Details.QueryOptions = Details.QueryOptions == null + ? queryOptions + : $"{Details.QueryOptions}&{queryOptions}"; + + return this; + } + + public FluentCommand QueryOptions(IDictionary queryOptions) + { + Details.QueryOptionsKeyValues = queryOptions; + return this; + } + + public FluentCommand QueryOptions(ODataExpression expression) + { + Details.QueryOptionsExpression = Details.QueryOptionsExpression is null + ? expression + : Details.QueryOptionsExpression && expression; + + return this; + } + + public FluentCommand Media() + { + return Media(FluentCommand.MediaEntityLiteral); + } + + public FluentCommand Media(string streamName) + { + Details.MediaName = streamName; + return this; + } + + public FluentCommand Media(ODataExpression expression) + { + return Media(expression.Reference); + } + + public FluentCommand Count() + { + Details.ComputeCount = true; + return this; + } + + public FluentCommand Set(object value) + { + Details.EntryValue = value; + return this; + } + + public FluentCommand Set(IDictionary value) + { + Details.EntryData = value; + return this; + } + + public FluentCommand Set(params ODataExpression[] value) + { + Details.EntryData = value.Select(x => new KeyValuePair(x.Reference, x.Value)).ToIDictionary(); + Details.BatchEntries?.GetOrAdd(value, Details.EntryData); + return this; + } + + public FluentCommand Function(string functionName) + { + Details.FunctionName = functionName; + return this; + } + + public FluentCommand Action(string actionName) + { + Details.ActionName = actionName; + return this; + } + + public FluentCommand WithCount() + { + Details.IncludeCount = true; + return this; + } + + public FluentCommand WithHeader(string name, string value) + { + Details.Headers[name] = value; + return this; + } + + public FluentCommand WithHeaders(IEnumerable> headers) + { + foreach (var header in headers) + { + Details.Headers[header.Key] = header.Value; + } + + return this; + } + + internal IList SelectedColumns => Details.SelectColumns; + + private IEnumerable SplitItems(IEnumerable columns) + { + return columns.SelectMany(x => x.Split(',').Select(y => y.Trim())); + } + + private IEnumerable> SplitItems(IEnumerable> columns) + { + return columns.SelectMany(x => x.Key.Split(',').Select(y => new KeyValuePair(y.Trim(), x.Value))); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/FluentCommandDetails.cs b/src/Simple.OData.Client.Core/Fluent/FluentCommandDetails.cs new file mode 100644 index 000000000..e5cdf3d3a --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/FluentCommandDetails.cs @@ -0,0 +1,106 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +internal class FluentCommandDetails +{ + public FluentCommandDetails Parent { get; private set; } + public string CollectionName { get; set; } + public ODataExpression CollectionExpression { get; set; } + public string DerivedCollectionName { get; set; } + public ODataExpression DerivedCollectionExpression { get; set; } + public string DynamicPropertiesContainerName { get; set; } + public string FunctionName { get; set; } + public string ActionName { get; set; } + public bool IsAlternateKey { get; set; } + public IList KeyValues { get; set; } + public IDictionary NamedKeyValues { get; set; } + public object EntryValue { get; set; } + public IDictionary EntryData { get; set; } + public string Filter { get; set; } + public ODataExpression FilterExpression { get; set; } + public string Search { get; set; } + public long SkipCount { get; set; } + public long TopCount { get; set; } + public List> ExpandAssociations { get; private set; } + public List SelectColumns { get; private set; } + public List> OrderbyColumns { get; private set; } + public bool ComputeCount { get; set; } + public bool IncludeCount { get; set; } + public string LinkName { get; set; } + public ODataExpression LinkExpression { get; set; } + public string QueryOptions { get; set; } + public ODataExpression QueryOptionsExpression { get; set; } + public IDictionary QueryOptionsKeyValues { get; set; } + public string MediaName { get; set; } + public IEnumerable MediaProperties { get; set; } + public ConcurrentDictionary> BatchEntries { get; set; } + public IDictionary Headers { get; set; } + public IDictionary Extensions { get; set; } + + public FluentCommandDetails(FluentCommandDetails parent, ConcurrentDictionary> batchEntries) + { + Parent = parent; + SkipCount = -1; + TopCount = -1; + ExpandAssociations = new List>(); + SelectColumns = new List(); + OrderbyColumns = new List>(); + MediaProperties = new List(); + BatchEntries = batchEntries; + Headers = new Dictionary(); + Extensions = new Dictionary(); + } + + public FluentCommandDetails(FluentCommandDetails details) + { + Parent = details.Parent; + CollectionName = details.CollectionName; + CollectionExpression = details.CollectionExpression; + DerivedCollectionName = details.DerivedCollectionName; + DerivedCollectionExpression = details.DerivedCollectionExpression; + DynamicPropertiesContainerName = details.DynamicPropertiesContainerName; + FunctionName = details.FunctionName; + ActionName = details.ActionName; + IsAlternateKey = details.IsAlternateKey; + KeyValues = details.KeyValues; + NamedKeyValues = details.NamedKeyValues; + EntryValue = details.EntryValue; + EntryData = details.EntryData; + Filter = details.Filter; + FilterExpression = details.FilterExpression; + Search = details.Search; + SkipCount = details.SkipCount; + TopCount = details.TopCount; + ExpandAssociations = details.ExpandAssociations; + SelectColumns = details.SelectColumns; + OrderbyColumns = details.OrderbyColumns; + ComputeCount = details.ComputeCount; + IncludeCount = details.IncludeCount; + LinkName = details.LinkName; + LinkExpression = details.LinkExpression; + MediaName = details.MediaName; + MediaProperties = details.MediaProperties; + QueryOptions = details.QueryOptions; + QueryOptionsKeyValues = details.QueryOptionsKeyValues; + QueryOptionsExpression = details.QueryOptionsExpression; + BatchEntries = details.BatchEntries; + Headers = details.Headers; + Extensions = details.Extensions; + } + + public bool HasKey => KeyValues != null && KeyValues.Count > 0 || NamedKeyValues != null && NamedKeyValues.Count > 0; + + public bool HasFilter => !string.IsNullOrEmpty(Filter) || FilterExpression is not null; + + public bool HasSearch => !string.IsNullOrEmpty(Search); + + public bool HasFunction => !string.IsNullOrEmpty(FunctionName); + + public bool HasAction => !string.IsNullOrEmpty(ActionName); + + public bool FilterIsKey => NamedKeyValues != null; + + public IDictionary FilterAsKey => NamedKeyValues; +} diff --git a/src/Simple.OData.Client.Core/Fluent/IBoundClient.cs b/src/Simple.OData.Client.Core/Fluent/IBoundClient.cs new file mode 100644 index 000000000..b4cab87df --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IBoundClient.cs @@ -0,0 +1,517 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal static class IBoundClientExtensions +{ + public static BoundClient AsBoundClient(this IBoundClient client) where T : class + { + return client as BoundClient; + } +} + +/// +/// Provides access to collection-bound OData operations in a fluent style. +/// +/// The entity type. +public interface IBoundClient : IFluentClient> + where T : class +{ + /// + /// Retrieves entries by executing OData GET request. + /// + /// Request execution results. + Task> FindEntriesAsync(); + /// + /// Retrieves entries by executing OData GET request. + /// + /// The cancellation token. + /// Entries found. + Task> FindEntriesAsync(CancellationToken cancellationToken); + /// + /// Retrieves entries by executing OData GET request. + /// + /// if set to true the result is expected to be of a scalar type. + /// Entries found. + Task> FindEntriesAsync(bool scalarResult); + /// + /// Retrieves entries by executing OData GET request. + /// + /// if set to true the result is expected to be of a scalar type. + /// The cancellation token. + /// Entries found. + Task> FindEntriesAsync(bool scalarResult, CancellationToken cancellationToken); + + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The OData feed annotations. + /// Entries found with entry count. + Task> FindEntriesAsync(ODataFeedAnnotations annotations); + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The OData feed annotations. + /// The cancellation token. + /// Entries found with entry count. + Task> FindEntriesAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken); + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The URI previously returned in OData feed annotations. + /// The OData feed annotations. + /// Entries found with entry count. + Task> FindEntriesAsync(Uri annotatedUri, ODataFeedAnnotations annotations); + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The URI previously returned in OData feed annotations. + /// The OData feed annotations. + /// The cancellation token. + /// Entries found with entry count. + Task> FindEntriesAsync(Uri annotatedUri, ODataFeedAnnotations annotations, CancellationToken cancellationToken); + + /// + /// Retrieves an entry by executing OData GET request. + /// + /// The first of the entries found. + Task FindEntryAsync(); + /// + /// Retrieves an entry by executing OData GET request. + /// + /// The cancellation token. + /// The first of the entries found. + Task FindEntryAsync(CancellationToken cancellationToken); + + /// + /// Retrieves an entry as a scalar type by executing OData GET request. + /// + /// The result as a scalar type. + Task FindScalarAsync(); + /// + /// Retrieves an entry as a scalar type by executing OData GET request. + /// + /// The cancellation token. + /// The result as a scalar type. + Task FindScalarAsync(CancellationToken cancellationToken); + + /// + /// Insert a new entry by executing OData POST request. + /// + /// The newly inserted entry + Task InsertEntryAsync(); + /// + /// Insert a new entry by executing OData POST request. + /// + /// The cancellation token. + /// The newly inserted entry + Task InsertEntryAsync(CancellationToken cancellationToken); + /// + /// Insert a new entry by executing OData POST request. + /// + /// if set to true returns the new entry data, otherwise returns null. + /// The newly inserted entry + Task InsertEntryAsync(bool resultRequired); + /// + /// Insert a new entry by executing OData POST request. + /// + /// if set to true returns the new entry data, otherwise returns null. + /// The cancellation token. + /// The newly inserted entry + Task InsertEntryAsync(bool resultRequired, CancellationToken cancellationToken); + + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The updated entry data + Task UpdateEntryAsync(); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The cancellation token. + /// The updated entry data + Task UpdateEntryAsync(CancellationToken cancellationToken); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// if set to true returns the updated entry data, otherwise returns null. + /// The updated entry data + Task UpdateEntryAsync(bool resultRequired); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// if set to true returns the updated entry data, otherwise returns null. + /// The cancellation token. + /// The updated entry data + Task UpdateEntryAsync(bool resultRequired, CancellationToken cancellationToken); + + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The updated entries data + Task> UpdateEntriesAsync(); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The cancellation token. + /// The updated entries data + Task> UpdateEntriesAsync(CancellationToken cancellationToken); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// if set to true returns the updated entry data, otherwise returns null. + /// The updated entries data + Task> UpdateEntriesAsync(bool resultRequired); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// if set to true returns the updated entry data, otherwise returns null. + /// The cancellation token. + /// The updated entries data + Task> UpdateEntriesAsync(bool resultRequired, CancellationToken cancellationToken); + + /// + /// Deletes the existing entry by executing OData DELETE request. + /// + /// Task instance. + Task DeleteEntryAsync(); + /// + /// Deletes the existing entry by executing OData DELETE request. + /// + /// The cancellation token. + /// Task instance. + Task DeleteEntryAsync(CancellationToken cancellationToken); + + /// + /// Deletes entries by executing multiple OData DELETE requests. + /// + /// The number of deleted entries. + Task DeleteEntriesAsync(); + /// + /// Deletes entries by executing multiple OData DELETE requests. + /// + /// The cancellation token. + /// The number of deleted entries. + Task DeleteEntriesAsync(CancellationToken cancellationToken); + + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Task instance. + Task LinkEntryAsync(U linkedEntryKey); + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(U linkedEntryKey, CancellationToken cancellationToken); + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Name of the link. + /// Task instance. + Task LinkEntryAsync(U linkedEntryKey, string linkName); + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Name of the link. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(U linkedEntryKey, string linkName, CancellationToken cancellationToken); + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// The linked entry key. + /// Task instance. + Task LinkEntryAsync(Expression> expression, U linkedEntryKey); + /// + /// Creates a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(Expression> expression, U linkedEntryKey, CancellationToken cancellationToken); + /// + /// Creates a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// Task instance. + Task LinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey); + /// + /// Creates a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey, CancellationToken cancellationToken); + /// + /// Creates a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// Task instance. + Task LinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey); + /// + /// Creates a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(ODataExpression expression, ODataEntry linkedEntryKey, CancellationToken cancellationToken); + + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// Task instance. + Task UnlinkEntryAsync(); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// Name of the link. + /// Task instance. + Task UnlinkEntryAsync(string linkName); + /// + /// Deletes a link between entries. + /// + /// Name of the link. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(string linkName, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// Task instance. + Task UnlinkEntryAsync(Expression> expression); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(Expression> expression, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The link expression. + /// Task instance. + Task UnlinkEntryAsync(ODataExpression expression); + /// + /// Deletes a link between entries. + /// + /// The link expression. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(ODataExpression expression, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Task instance. + Task UnlinkEntryAsync(U linkedEntryKey); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(U linkedEntryKey, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Name of the link. + /// Task instance. + Task UnlinkEntryAsync(U linkedEntryKey, string linkName); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The linked entry key. + /// Name of the link. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(U linkedEntryKey, string linkName, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// The linked entry key. + /// Task instance. + Task UnlinkEntryAsync(Expression> expression, U linkedEntryKey); + /// + /// Deletes a link between entries. + /// + /// The linked entry type. + /// The link expression. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(Expression> expression, U linkedEntryKey, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// Task instance. + Task UnlinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey); + /// + /// Deletes a link between entries. + /// + /// The link expression. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(ODataExpression expression, IDictionary linkedEntryKey, CancellationToken cancellationToken); + + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// Name of the derived collection. + /// Self. + IBoundClient> As(string derivedCollectionName); + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// Name of the derived collection. + /// Self. + IBoundClient As(string derivedCollectionName = null) where U : class; + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// The expression for the derived collection. + /// Self. + IBoundClient As(ODataExpression expression); + + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IBoundClient Set(object value); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IBoundClient Set(IDictionary value); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// Self. + IBoundClient Set(T entry); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IBoundClient Set(params ODataExpression[] value); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(object value, IEnumerable associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(object value, params string[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(object value, params ODataExpression[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(object value, Expression> associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(IDictionary value, IEnumerable associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(IDictionary value, params string[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(T entry, params ODataExpression[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IBoundClient Set(T entry, Expression> associationsToSetByValue); + + /// + /// Gets a value indicating whether the OData command filter represent the entry key. + /// + /// + /// true if the filter is an entry key; otherwise, false. + /// + bool FilterIsKey { get; } + + /// + /// Converts the current command filter value to the entry key if they are equivalent; otherwise returns null. + /// + /// + /// The filter as entry key. + /// + IDictionary FilterAsKey { get; } + + IRequestBuilder BuildRequestFor(); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IClientWithRequest.cs b/src/Simple.OData.Client.Core/Fluent/IClientWithRequest.cs new file mode 100644 index 000000000..89d3e52e5 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IClientWithRequest.cs @@ -0,0 +1,14 @@ +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public interface IClientWithRequest +{ + ODataRequest GetRequest(); + IClientWithResponse FromResponse(HttpResponseMessage responseMessage); + + Task> RunAsync(); + Task> RunAsync(CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IClientWithResponse.cs b/src/Simple.OData.Client.Core/Fluent/IClientWithResponse.cs new file mode 100644 index 000000000..25be57f3d --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IClientWithResponse.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public interface IClientWithResponse : IDisposable +{ + HttpResponseMessage ResponseMessage { get; } + + Task> ReadAsCollectionAsync(); + Task> ReadAsCollectionAsync(CancellationToken cancellationToken); + Task> ReadAsCollectionAsync(ODataFeedAnnotations annotations); + Task> ReadAsCollectionAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken); + + Task ReadAsSingleAsync(); + Task ReadAsSingleAsync(CancellationToken cancellationToken); + + Task ReadAsScalarAsync(); + Task ReadAsScalarAsync(CancellationToken cancellationToken); + + Task GetResponseStreamAsync(); + Task GetResponseStreamAsync(CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IFluentClient.cs b/src/Simple.OData.Client.Core/Fluent/IFluentClient.cs new file mode 100644 index 000000000..837756566 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IFluentClient.cs @@ -0,0 +1,535 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations in a fluent style. +/// +/// The entity type. +public interface IFluentClient + where T : class +{ + /// + /// Sets the container for data not covered by the entity properties. Typically used with OData open types. + /// + /// The filter expression. + /// Self. + FT WithProperties(Expression>> expression); + + /// + /// Sets the container for media stream content to be retrieved or updated together with standard entity properties. + /// + /// The media content properties. + /// Self. + FT WithMedia(IEnumerable properties); + /// + /// Sets the container for media stream content to be retrieved or updated together with standard entity properties. + /// + /// The media content properties. + /// Self. + FT WithMedia(params string[] properties); + /// + /// Sets the container for media stream content to be retrieved or updated together with standard entity properties. + /// + /// The media content properties. + /// Self. + FT WithMedia(params ODataExpression[] properties); + /// + /// Sets the container for media stream content to be retrieved or updated together with standard entity properties. + /// + /// The media content properties. + /// Self. + FT WithMedia(Expression> properties); + + /// + /// Sets the specified entry key. + /// + /// The entry key. + /// Self. + FT Key(params object[] entryKey); + /// + /// Sets the specified entry key. + /// + /// The entry key. + /// Self. + FT Key(IEnumerable entryKey); + /// + /// Sets the specified entry key. + /// + /// The entry key. + /// Self. + FT Key(IDictionary entryKey); + /// + /// Sets the specified entry key. + /// + /// The entry key. + /// Self. + FT Key(T entryKey); + + /// + /// Sets the specified OData filter. + /// + /// The filter. + /// Self. + FT Filter(string filter); + /// + /// Sets the specified OData filter. + /// + /// The filter expression. + /// Self. + FT Filter(ODataExpression expression); + /// + /// Sets the specified OData filter. + /// + /// The filter expression. + /// Self. + FT Filter(Expression> expression); + + /// + /// Sets the specified OData search. + /// + /// The search term. + /// Self. + FT Search(string search); + + /// + /// Sets the OData function name. + /// + /// Name of the function. + /// Self. + FT Function(string functionName); + /// + /// Sets the OData function name. + /// + /// Name of the function. + /// Self. + IBoundClient Function(string functionName) where U : class; + /// + /// Sets the OData action name. + /// + /// Name of the action. + /// Self. + FT Action(string actionName); + + /// + /// Skips the specified number of entries from the result. + /// + /// The count. + /// Self. + FT Skip(long count); + + /// + /// Limits the number of results with the specified value. + /// + /// The count. + /// Self. + FT Top(long count); + + /// + /// Expands top level of all associations. + /// + /// The . + /// Self. + FT Expand(ODataExpandOptions expandOptions); + /// + /// Expands the top level of the specified associations. + /// + /// The associations to expand. + /// Self. + FT Expand(IEnumerable associations); + /// + /// Expands the number of levels of the specified associations. + /// + /// The . + /// The associations to expand. + /// Self. + FT Expand(ODataExpandOptions expandOptions, IEnumerable associations); + /// + /// Expands the top level of the specified associations. + /// + /// The associations to expand. + /// Self. + FT Expand(params string[] associations); + /// + /// Expands the number of levels of the specified associations. + /// + /// The . + /// The associations to expand. + /// Self. + FT Expand(ODataExpandOptions expandOptions, params string[] associations); + /// + /// Expands the top level of the specified associations. + /// + /// The associations to expand. + /// Self. + FT Expand(params ODataExpression[] associations); + /// + /// Expands the number of levels of the specified associations. + /// + /// The . + /// The associations to expand. + /// Self. + FT Expand(ODataExpandOptions expandOptions, params ODataExpression[] associations); + /// + /// Expands the top level of the specified expression. + /// + /// The expression for associations to expand. + /// Self. + FT Expand(Expression> expression); + /// + /// Expands the number of levels of the specified associations. + /// + /// The . + /// The expression for associations to expand. + /// Self. + FT Expand(ODataExpandOptions expandOptions, Expression> expression); + + /// + /// Selects the specified result columns. + /// + /// The selected columns. + /// Self. + FT Select(IEnumerable columns); + /// + /// Selects the specified result columns. + /// + /// The selected columns. + /// Self. + FT Select(params string[] columns); + /// + /// Selects the specified result columns. + /// + /// The selected columns. + /// Self. + FT Select(params ODataExpression[] columns); + /// + /// Selects the specified result columns. + /// + /// The expression for the selected columns. + /// Self. + FT Select(Expression> expression); + + /// + /// Sorts the result by the specified columns in the specified order. + /// + /// The sort columns. + /// Self. + FT OrderBy(IEnumerable> columns); + /// + /// Sorts the result by the specified columns in ascending order. + /// + /// The sort columns. + /// Self. + FT OrderBy(params string[] columns); + /// + /// Sorts the result by the specified columns in ascending order. + /// + /// The sort columns. + /// Self. + FT OrderBy(params ODataExpression[] columns); + /// + /// Sorts the result by the specified columns in ascending order. + /// + /// The expression for the sort columns. + /// Self. + FT OrderBy(Expression> expression); + /// + /// Sorts the result by the specified columns in ascending order. + /// + /// The expression for the sort columns. + /// Self. + FT ThenBy(Expression> expression); + /// + /// Sorts the result by the specified columns in descending order. + /// + /// The sort columns. + /// Self. + FT OrderByDescending(params string[] columns); + /// + /// Sorts the result by the specified columns in descending order. + /// + /// The sort columns. + /// Self. + FT OrderByDescending(params ODataExpression[] columns); + /// + /// Sorts the result by the specified columns in descending order. + /// + /// The expression for the sort columns. + /// Self. + FT OrderByDescending(Expression> expression); + /// + /// Sorts the result by the specified columns in descending order. + /// + /// The expression for the sort columns. + /// Self. + FT ThenByDescending(Expression> expression); + + /// + /// Sets the custom query options. + /// + /// The custom query options string. + /// Self. + FT QueryOptions(string queryOptions); + /// + /// Sets the custom query options. + /// + /// The key/value collection of custom query options. + /// Self. + FT QueryOptions(IDictionary queryOptions); + /// + /// Sets the custom query options. + /// + /// The custom query options expression. + /// Self. + FT QueryOptions(ODataExpression expression); + /// + /// Sets the custom query options. + /// + /// The custom query options expression. + /// Self. + FT QueryOptions(Expression> expression); + + /// + /// Adds a header to be included in the HTTP request. + /// + /// The header name. + /// The header value. + /// Ignored in batch actions. For batch headers use the method. + /// Self. + FT WithHeader(string name, string value); + /// + /// Adds a collection of headers to be included in the HTTP request. + /// + /// The header name. + /// The header value. + /// Ignored in batch actions. For batch headers use the method. + /// Self. + FT WithHeaders(IEnumerable> headers); + + /// + /// Selects retrieval of an entity media stream. + /// + /// Self. + IMediaClient Media(); + /// + /// Selects retrieval of a named media stream. + /// + /// The media stream name. + /// Self. + IMediaClient Media(string streamName); + /// + /// Selects retrieval of a named media stream. + /// + /// The media stream name expression. + /// Self. + IMediaClient Media(ODataExpression expression); + /// + /// Selects retrieval of a named media stream. + /// + /// The media stream name expression. + /// Self. + IMediaClient Media(Expression> expression); + + /// + /// Requests the number of results. + /// + /// Self. + FT Count(); + + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// Name of the link. + /// Self. + IBoundClient NavigateTo(string linkName = null) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression>> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression>> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression>> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression>> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// The type of the linked entity. + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(Expression> expression) where U : class; + /// + /// Navigates to the linked entity. + /// + /// Name of the link. + /// Self. + IBoundClient> NavigateTo(string linkName); + /// + /// Navigates to the linked entity. + /// + /// The expression for the link. + /// Self. + IBoundClient NavigateTo(ODataExpression expression); + + /// + /// Executes the OData function or action. + /// + /// Execution result. + Task ExecuteAsync(); + /// + /// Executes the OData function or action. + /// + /// The cancellation token. + /// Action execution result. + Task ExecuteAsync(CancellationToken cancellationToken); + + /// + /// Executes the OData function or action. + /// + /// Execution result. + Task ExecuteAsSingleAsync(); + /// + /// Executes the OData function or action. + /// + /// Execution result. + Task ExecuteAsSingleAsync(); + /// + /// Executes the OData function or action. + /// + /// The cancellation token. + /// Action execution result. + Task ExecuteAsSingleAsync(CancellationToken cancellationToken); + /// + /// Executes the OData function or action. + /// + /// The cancellation token. + /// Action execution result. + Task ExecuteAsSingleAsync(CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns collection. + /// + /// Action execution result. + Task> ExecuteAsEnumerableAsync(); + /// + /// Executes the OData function or action and returns collection. + /// + /// The cancellation token. + /// Execution result. + Task> ExecuteAsEnumerableAsync(CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns scalar result. + /// + /// The type of the result. + /// Execution result. + Task ExecuteAsScalarAsync(); + /// + /// Executes the OData function or action and returns scalar result. + /// + /// The type of the result. + /// The cancellation token. + /// Action execution result. + Task ExecuteAsScalarAsync(CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The type of the result array. + /// Execution result. + Task ExecuteAsArrayAsync(); + + /// + /// Executes the OData function or action and returns an array. + /// + /// Execution result. + Task ExecuteAsArrayAsync(); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The type of the result array. + /// The cancellation token. + /// Action execution result. + Task ExecuteAsArrayAsync(CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The OData feed annotations. + /// Execution result. + Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The OData feed annotations. + /// Execution result. + Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The cancellation token. + /// The OData feed annotations. + /// Execution result. + Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The cancellation token. + /// The OData feed annotations. + /// Execution result. + Task ExecuteAsArrayAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken); + + /// + /// Executes the OData function or action and returns an array. + /// + /// The cancellation token. + /// Action execution result. + Task ExecuteAsArrayAsync(CancellationToken cancellationToken); + + /// + /// Gets the OData command text. + /// + /// The command text. + Task GetCommandTextAsync(); + /// + /// Gets the OData command text. + /// + /// The cancellation token. + /// The command text. + Task GetCommandTextAsync(CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IMediaClient.cs b/src/Simple.OData.Client.Core/Fluent/IMediaClient.cs new file mode 100644 index 000000000..0c15dc597 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IMediaClient.cs @@ -0,0 +1,107 @@ +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData media stream operations. +/// +public interface IMediaClient +{ + /// + /// Retrieves a media stream by executing OData GET request. + /// + /// The media stream. + Task GetStreamAsync(); + /// + /// Retrieves a media stream by executing OData GET request. + /// + /// The cancellation token. + /// The media stream. + Task GetStreamAsync(CancellationToken cancellationToken); + /// + /// Retrieves a media stream as byte array by executing OData GET request. + /// + /// The media stream converted to byte array. + Task GetStreamAsArrayAsync(); + /// + /// Retrieves a media stream as byte array by executing OData GET request. + /// + /// The cancellation token. + /// The media stream converted to byte array. + Task GetStreamAsArrayAsync(CancellationToken cancellationToken); + /// + /// Retrieves a media stream as string by executing OData GET request. + /// + /// The media stream converted to string. + Task GetStreamAsStringAsync(); + /// + /// Retrieves a media stream as string by executing OData GET request. + /// + /// The cancellation token. + /// The media stream converted to string. + Task GetStreamAsStringAsync(CancellationToken cancellationToken); + + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// Task instance. + Task SetStreamAsync(Stream stream, string contentType, bool optimisticConcurrency); + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// The cancellation token. + /// Task instance. + Task SetStreamAsync(Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken); + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream content represented as byte array. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// Task instance. + Task SetStreamAsync(byte[] streamContent, string contentType, bool optimisticConcurrency); + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream content represented as byte array. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// The cancellation token. + /// Task instance. + Task SetStreamAsync(byte[] streamContent, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken); + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream content represented as string. + /// if set to true sets the resource ETag in the updated request header. + /// Task instance. + Task SetStreamAsync(string streamContent, bool optimisticConcurrency); + /// + /// Assigns a media stream by executing OData PUT request. + /// + /// The media stream content represented as string. + /// if set to true sets the resource ETag in the updated request header. + /// The cancellation token. + /// Task instance. + Task SetStreamAsync(string streamContent, bool optimisticConcurrency, CancellationToken cancellationToken); + + /// + /// Gets the OData command text. + /// + /// The command text. + Task GetCommandTextAsync(); + /// + /// Gets the OData command text. + /// + /// The cancellation token. + /// The command text. + Task GetCommandTextAsync(CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IRequestBuilder.cs b/src/Simple.OData.Client.Core/Fluent/IRequestBuilder.cs new file mode 100644 index 000000000..7797bafc2 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IRequestBuilder.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal interface IRequestBuilder +{ + Task GetRequestAsync(bool scalarResult, CancellationToken cancellationToken); + Task InsertRequestAsync(bool resultRequired, CancellationToken cancellationToken); + Task UpdateRequestAsync(bool resultRequired, CancellationToken cancellationToken); + Task UpdateRequestAsync(Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken); + Task DeleteRequestAsync(CancellationToken cancellationToken); + Task LinkRequestAsync(string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken); + Task UnlinkRequestAsync(string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken); +} + +public interface IRequestBuilder +{ + Task> FindEntriesAsync(); + Task> FindEntriesAsync(CancellationToken cancellationToken); + Task> FindEntriesAsync(bool scalarResult); + Task> FindEntriesAsync(bool scalarResult, CancellationToken cancellationToken); + Task> FindEntriesAsync(ODataFeedAnnotations annotations); + Task> FindEntriesAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken); + Task> FindEntryAsync(); + Task> FindEntryAsync(CancellationToken cancellationToken); + Task> InsertEntryAsync(); + Task> InsertEntryAsync(bool resultRequired); + Task> InsertEntryAsync(CancellationToken cancellationToken); + Task> InsertEntryAsync(bool resultRequired, CancellationToken cancellationToken); + Task> UpdateEntryAsync(); + Task> UpdateEntryAsync(bool resultRequired); + Task> UpdateEntryAsync(CancellationToken cancellationToken); + Task> UpdateEntryAsync(bool resultRequired, CancellationToken cancellationToken); + Task> DeleteEntryAsync(); + Task> DeleteEntryAsync(CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/Fluent/IUnboundClient.cs b/src/Simple.OData.Client.Core/Fluent/IUnboundClient.cs new file mode 100644 index 000000000..f2dd61fe9 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/IUnboundClient.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +/// +/// Provides access to unbound OData operations in a fluent style. +/// +/// The entity type. +public interface IUnboundClient : IFluentClient> + where T : class +{ + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// Name of the derived collection. + /// Self. + IUnboundClient> As(string derivedCollectionName); + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// Name of the derived collection. + /// Self. + IUnboundClient As(string derivedCollectionName = null) where U : class; + /// + /// Casts the collection of base entities as the collection of derived ones. + /// + /// The expression for the derived collection. + /// Self. + IUnboundClient As(ODataExpression expression); + + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IUnboundClient Set(object value); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IUnboundClient Set(IDictionary value); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// Self. + IUnboundClient Set(T entry); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// Self. + IUnboundClient Set(params ODataExpression[] value); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(object value, IEnumerable associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(object value, params string[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(object value, params ODataExpression[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(object value, Expression> associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(IDictionary value, IEnumerable associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The value to update the entry with. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(IDictionary value, params string[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(T entry, params ODataExpression[] associationsToSetByValue); + /// + /// Sets the specified entry value for update. + /// + /// The entry with the updated value. + /// The list of associations to be passed by value for deep insert/update. + /// Self. + IUnboundClient Set(T entry, Expression> associationsToSetByValue); +} diff --git a/src/Simple.OData.Client.Core/Fluent/MediaClient.cs b/src/Simple.OData.Client.Core/Fluent/MediaClient.cs new file mode 100644 index 000000000..e2502d123 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/MediaClient.cs @@ -0,0 +1,76 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +public class MediaClient : FluentClientBase, MediaClient>, IMediaClient +{ + internal MediaClient(ODataClient client, Session session, FluentCommand command = null, bool dynamicResults = false) + : base(client, session, null, command, dynamicResults) + { + } + + public Task GetStreamAsync() + { + return GetStreamAsync(CancellationToken.None); + } + + public Task GetStreamAsync(CancellationToken cancellationToken) + { + return _client.GetMediaStreamAsync(_command, cancellationToken); + } + + public Task GetStreamAsArrayAsync() + { + return GetStreamAsArrayAsync(CancellationToken.None); + } + + public async Task GetStreamAsArrayAsync(CancellationToken cancellationToken) + { + using var stream = await _client.GetMediaStreamAsync(_command, cancellationToken).ConfigureAwait(false); + return Utils.StreamToByteArray(stream); + } + + public Task GetStreamAsStringAsync() + { + return GetStreamAsStringAsync(CancellationToken.None); + } + + public async Task GetStreamAsStringAsync(CancellationToken cancellationToken) + { + using var stream = await _client.GetMediaStreamAsync(_command, cancellationToken).ConfigureAwait(false); + return Utils.StreamToString(stream); + } + + public Task SetStreamAsync(Stream stream, string contentType, bool optimisticConcurrency) + { + return SetStreamAsync(stream, contentType, optimisticConcurrency, CancellationToken.None); + } + + public Task SetStreamAsync(Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken) + { + return _client.SetMediaStreamAsync(_command, stream, contentType, optimisticConcurrency, cancellationToken); + } + + public Task SetStreamAsync(byte[] streamContent, string contentType, bool optimisticConcurrency) + { + return SetStreamAsync(streamContent, contentType, optimisticConcurrency, CancellationToken.None); + } + + public Task SetStreamAsync(byte[] streamContent, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken) + { + return _client.SetMediaStreamAsync(_command, Utils.ByteArrayToStream(streamContent), contentType, optimisticConcurrency, cancellationToken); + } + + public Task SetStreamAsync(string streamContent, bool optimisticConcurrency) + { + return SetStreamAsync(streamContent, optimisticConcurrency, CancellationToken.None); + } + + public Task SetStreamAsync(string streamContent, bool optimisticConcurrency, CancellationToken cancellationToken) + { + return _client.SetMediaStreamAsync(_command, Utils.StringToStream(streamContent), "text/plain", optimisticConcurrency, cancellationToken); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/RequestBuilder.cs b/src/Simple.OData.Client.Core/Fluent/RequestBuilder.cs new file mode 100644 index 000000000..d090e5b43 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/RequestBuilder.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal class RequestBuilder : IRequestBuilder +{ + private readonly ResolvedCommand _command; + private readonly string _commandText; + private readonly Session _session; + private readonly Lazy _lazyBatchWriter; + private readonly IDictionary _headers; + + public RequestBuilder(ResolvedCommand command, Session session, Lazy batchWriter) + { + _command = command; + _session = session; + _lazyBatchWriter = batchWriter; + } + + public RequestBuilder(string commandText, Session session, Lazy batchWriter, IDictionary headers = null) + { + _commandText = commandText; + _session = session; + _lazyBatchWriter = batchWriter; + _headers = headers; + } + + private IDictionary GetHeaders() + { + return _command?.Details.Headers ?? _headers; + } + + public async Task GetRequestAsync(bool scalarResult, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateGetRequestAsync(_commandText ?? _command.Format(), scalarResult, GetHeaders()).ConfigureAwait(false); + } + + public async Task InsertRequestAsync(bool resultRequired, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var entryData = _command.CommandData; + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateInsertRequestAsync(_command.QualifiedEntityCollectionName, _command.Format(), entryData, resultRequired, GetHeaders()).ConfigureAwait(false); + } + + public async Task UpdateRequestAsync(bool resultRequired, CancellationToken cancellationToken) + { + AssertHasKey(_command); + + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var collectionName = _command.QualifiedEntityCollectionName; + var entryKey = _command.Details.HasKey ? _command.KeyValues : _command.FilterAsKey; + var entryData = _command.CommandData; + var entryIdent = FormatEntryKey(_command); + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateUpdateRequestAsync(collectionName, entryIdent, entryKey, entryData, resultRequired, GetHeaders()).ConfigureAwait(false); + } + + public async Task UpdateRequestAsync(Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreatePutRequestAsync(_commandText, stream, contentType, optimisticConcurrency, GetHeaders()).ConfigureAwait(false); + } + + public async Task DeleteRequestAsync(CancellationToken cancellationToken) + { + AssertHasKey(_command); + + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var collectionName = _command.QualifiedEntityCollectionName; + var entryIdent = FormatEntryKey(_command); + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateDeleteRequestAsync(collectionName, entryIdent, GetHeaders()).ConfigureAwait(false); + } + + public async Task LinkRequestAsync(string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + AssertHasKey(_command); + + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var collectionName = _command.QualifiedEntityCollectionName; + var entryKey = _command.Details.HasKey ? _command.KeyValues : _command.FilterAsKey; + + var entryIdent = FormatEntryKey(collectionName, entryKey); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var linkedCollection = _session.Metadata.GetNavigationPropertyPartnerTypeName(collectionName, linkName); + var linkIdent = FormatEntryKey(linkedCollection, linkedEntryKey); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateLinkRequestAsync(collectionName, linkName, entryIdent, linkIdent, GetHeaders()).ConfigureAwait(false); + } + + public async Task UnlinkRequestAsync(string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + AssertHasKey(_command); + + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var collectionName = _command.QualifiedEntityCollectionName; + var entryKey = _command.Details.HasKey ? _command.KeyValues : _command.FilterAsKey; + + var entryIdent = FormatEntryKey(collectionName, entryKey); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + string linkIdent = null; + if (linkedEntryKey != null) + { + var linkedCollection = _session.Metadata.GetNavigationPropertyPartnerTypeName(collectionName, linkName); + linkIdent = FormatEntryKey(linkedCollection, linkedEntryKey); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + + return await _session.Adapter.GetRequestWriter(_lazyBatchWriter) + .CreateUnlinkRequestAsync(collectionName, linkName, entryIdent, linkIdent, GetHeaders()).ConfigureAwait(false); + } + + private string FormatEntryKey(ResolvedCommand command) + { + var entryIdent = command.Details.HasKey + ? command.Format() + : new FluentCommand(command).Key(command.FilterAsKey).Resolve(_session).Format(); + + return entryIdent; + } + + private string FormatEntryKey(string collection, IDictionary entryKey) + { + return new ResolvedCommand( + new FluentCommand( + new FluentCommandDetails(null, null) + { + CollectionName = collection, + NamedKeyValues = entryKey, + }), + _session) + .Format(); + } + + private void AssertHasKey(ResolvedCommand command) + { + if (!command.Details.HasKey && command.FilterAsKey == null) + { + throw new InvalidOperationException("No entry key specified."); + } + } +} + +internal class RequestBuilder : IRequestBuilder + where T : class +{ + private readonly FluentCommand _command; + private readonly Session _session; + private readonly Lazy _lazyBatchWriter; + + public RequestBuilder(FluentCommand command, Session session, Lazy batchWriter) + { + _command = command; + _session = session; + _lazyBatchWriter = batchWriter; + } + + public Task> FindEntriesAsync() + { + return FindEntriesAsync(false, CancellationToken.None); + } + + public Task> FindEntriesAsync(CancellationToken cancellationToken) + { + return FindEntriesAsync(false, cancellationToken); + } + + public Task> FindEntriesAsync(bool scalarResult) + { + return FindEntriesAsync(scalarResult, CancellationToken.None); + } + + public async Task> FindEntriesAsync(bool scalarResult, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.GetRequestAsync(scalarResult, cancellationToken).ConfigureAwait(false), _session); + } + + public Task> FindEntriesAsync(ODataFeedAnnotations annotations) + { + return FindEntriesAsync(annotations, CancellationToken.None); + } + + public async Task> FindEntriesAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session).WithCount(), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.GetRequestAsync(false, cancellationToken).ConfigureAwait(false), _session); + } + + public Task> FindEntryAsync() + { + return FindEntryAsync(CancellationToken.None); + } + + public async Task> FindEntryAsync(CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.GetRequestAsync(false, cancellationToken), _session); + } + + public Task> InsertEntryAsync() + { + return InsertEntryAsync(true, CancellationToken.None); + } + + public Task> InsertEntryAsync(bool resultRequired) + { + return InsertEntryAsync(resultRequired, CancellationToken.None); + } + + public Task> InsertEntryAsync(CancellationToken cancellationToken) + { + return InsertEntryAsync(true, cancellationToken); + } + + public async Task> InsertEntryAsync(bool resultRequired, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.InsertRequestAsync(resultRequired, cancellationToken).ConfigureAwait(false), _session); + } + + public Task> UpdateEntryAsync() + { + return UpdateEntryAsync(true, CancellationToken.None); + } + + public Task> UpdateEntryAsync(bool resultRequired) + { + return UpdateEntryAsync(resultRequired, CancellationToken.None); + } + + public Task> UpdateEntryAsync(CancellationToken cancellationToken) + { + return UpdateEntryAsync(true, cancellationToken); + } + + public async Task> UpdateEntryAsync(bool resultRequired, CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.UpdateRequestAsync(resultRequired, cancellationToken).ConfigureAwait(false), _session); + } + + public Task> DeleteEntryAsync() + { + return DeleteEntryAsync(CancellationToken.None); + } + + public async Task> DeleteEntryAsync(CancellationToken cancellationToken) + { + await _session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var requestBuilder = new RequestBuilder(_command.Resolve(_session), _session, _lazyBatchWriter); + return new ClientWithRequest(await requestBuilder.DeleteRequestAsync(cancellationToken).ConfigureAwait(false), _session); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/ResolvedCommand.cs b/src/Simple.OData.Client.Core/Fluent/ResolvedCommand.cs new file mode 100644 index 000000000..35beaaaae --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/ResolvedCommand.cs @@ -0,0 +1,329 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public class ResolvedCommand +{ + private readonly ISession _sesson; + + internal ResolvedCommand(FluentCommand command, ISession session) + { + _sesson = session; + Details = new FluentCommandDetails(command.Details); + + ResolveCollectionName(command.Details); + ResolveDerivedCollectionName(command.Details); + ResolveLinkName(command.Details); + ResolveEntityCollection(command.Details); + ResolveKeys(command.Details); + ResolveFilter(command.Details); + ResolveEntryData(command.Details); + } + + internal FluentCommandDetails Details { get; private set; } + + internal EntityCollection EntityCollection { get; private set; } + + public string QualifiedEntityCollectionName + { + get + { + var entityCollection = EntityCollection; + return entityCollection.BaseEntityCollection == null + ? entityCollection.Name + : $"{entityCollection.BaseEntityCollection.Name}/{_sesson.Metadata.GetQualifiedTypeName(entityCollection.Name)}"; + } + } + + public string DynamicPropertiesContainerName => Details.DynamicPropertiesContainerName; + + private void ResolveCollectionName(FluentCommandDetails details) + { + if (Details.CollectionName == null && details.CollectionExpression is not null) + { + var collectionName = details.CollectionExpression.AsString(_sesson); + var items = collectionName.Split('/'); + if (items.Count() > 1) + { + Details.CollectionName = items[0]; + Details.DerivedCollectionName = items[1]; + } + else + { + Details.CollectionName = collectionName; + } + } + } + + private void ResolveDerivedCollectionName(FluentCommandDetails details) + { + if (Details.DerivedCollectionName == null && details.DerivedCollectionExpression is not null) + { + var derivedCollectionName = details.DerivedCollectionExpression.AsString(_sesson); + Details.DerivedCollectionName = derivedCollectionName; + } + } + + private void ResolveLinkName(FluentCommandDetails details) + { + if (Details.LinkName == null && details.LinkExpression is not null) + { + Details.LinkName = details.LinkExpression.AsString(_sesson); + } + } + + private void ResolveEntityCollection(FluentCommandDetails details) + { + if (string.IsNullOrEmpty(Details.CollectionName) && string.IsNullOrEmpty(Details.LinkName)) + { + EntityCollection = null; + } + else + { + EntityCollection entityCollection; + if (!string.IsNullOrEmpty(Details.LinkName)) + { + var parent = new FluentCommand(Details.Parent).Resolve(_sesson); + var collectionName = _sesson.Metadata.GetNavigationPropertyPartnerTypeName( + parent.EntityCollection.Name, Details.LinkName); + entityCollection = _sesson.Metadata.GetEntityCollection(collectionName); + } + else + { + entityCollection = _sesson.Metadata.GetEntityCollection(Details.CollectionName); + } + + EntityCollection = + string.IsNullOrEmpty(Details.DerivedCollectionName) + ? entityCollection + : _sesson.Metadata.GetDerivedEntityCollection(entityCollection, Details.DerivedCollectionName); + } + } + + private void ResolveKeys(FluentCommandDetails details) + { + var namedKeyValues = + details.KeyValues != null && details.KeyValues.Count == 1 && + _sesson.TypeCache.IsAnonymousType(details.KeyValues.First().GetType()) + ? _sesson.TypeCache.ToDictionary(details.KeyValues.First()) + : details.NamedKeyValues; + + if (namedKeyValues != null) + { + if (NamedKeyValuesMatchAnyKey(namedKeyValues, out var matchingKey, out var isAlternateKey)) + { + Details.NamedKeyValues = matchingKey.ToDictionary(); + Details.IsAlternateKey = isAlternateKey; + } + else + { + Details.NamedKeyValues = TryExtractKeyFromNamedValues(namedKeyValues, out var containedKey) + ? containedKey.ToDictionary() + : null; + } + + Details.KeyValues = null; + } + } + + private void ResolveFilter(FluentCommandDetails details) + { + if (Details.Filter == null && details.FilterExpression is not null) + { + Details.NamedKeyValues = TryInterpretFilterExpressionAsKey(details.FilterExpression, out var isAlternateKey); + Details.IsAlternateKey = isAlternateKey; + + if (Details.NamedKeyValues == null) + { + var entityCollection = EntityCollection; + if (details.HasFunction) + { + var collection = _sesson.Metadata.GetFunctionReturnCollection(details.FunctionName); + if (collection != null) + { + entityCollection = collection; + } + } + + Details.Filter = details.FilterExpression.Format( + new ExpressionContext(_sesson, entityCollection, null, DynamicPropertiesContainerName)); + } + else + { + Details.KeyValues = null; + Details.TopCount = -1; + } + + if (details.FilterExpression.HasTypeConstraint(details.DerivedCollectionName)) + { + Details.DerivedCollectionName = null; + } + } + } + + private void ResolveEntryData(FluentCommandDetails details) + { + if (details.EntryValue != null) + { + Details.EntryData = _sesson.TypeCache.ToDictionary(details.EntryValue); + Details.BatchEntries?.GetOrAdd(details.EntryValue, Details.EntryData); + } + } + + public IDictionary FilterAsKey => Details.NamedKeyValues; + + public ResolvedCommand WithCount() + { + Details.IncludeCount = true; + return this; + } + + public override string ToString() + { + return Format(); + } + + public string Format() + { + return _sesson.Adapter.GetCommandFormatter().FormatCommand(this); + } + + internal IDictionary KeyValues + { + get + { + if (!Details.HasKey) + { + return null; + } + + var keyNames = _sesson.Metadata.GetDeclaredKeyPropertyNames(EntityCollection.Name).ToList(); + var namedKeyValues = Details.KeyValues?.Zip( + keyNames, + (keyValue, keyName) => new KeyValuePair(keyName, keyValue)) + ?? + Details.NamedKeyValues; + return namedKeyValues?.ToDictionary( + x => x.Key, + x => x.Value is ODataExpression oDataExpression ? oDataExpression.Value : x.Value); + } + } + + internal IDictionary CommandData + { + get + { + if (Details.EntryData == null) + { + return new Dictionary(); + } + + if (string.IsNullOrEmpty(Details.DynamicPropertiesContainerName)) + { + return Details.EntryData; + } + + var entryData = new Dictionary(); + foreach (var key in Details.EntryData.Keys.Where(x => + !string.Equals(x, Details.DynamicPropertiesContainerName, StringComparison.OrdinalIgnoreCase))) + { + entryData.Add(key, Details.EntryData[key]); + } + + if (Details.EntryData.TryGetValue(Details.DynamicPropertiesContainerName, out var dynamicProperties) && dynamicProperties != null) + { + if (dynamicProperties is IDictionary kv) + { + foreach (var key in kv.Keys) + { + entryData.Add(key, kv[key]); + } + } + else + { + throw new InvalidOperationException($"Property {Details.DynamicPropertiesContainerName} must implement IDictionary interface"); + } + } + + return entryData; + } + } + + private IDictionary TryInterpretFilterExpressionAsKey(ODataExpression expression, out bool isAlternateKey) + { + isAlternateKey = false; + var ok = false; + + IDictionary namedKeyValues = new Dictionary(); + if (expression is not null) + { + ok = expression.ExtractLookupColumns(namedKeyValues); + } + + if (!ok) + { + return null; + } + + if (NamedKeyValuesMatchAnyKey(namedKeyValues, out var matchingNamedKeyValues, out isAlternateKey)) + { + return matchingNamedKeyValues.ToIDictionary(); + } + + return null; + } + + private bool NamedKeyValuesMatchAnyKey(IDictionary namedKeyValues, out IEnumerable> matchingNamedKeyValues, out bool isAlternateKey) + { + isAlternateKey = false; + + if (NamedKeyValuesMatchPrimaryKey(namedKeyValues, out matchingNamedKeyValues)) + { + return true; + } + + if (NamedKeyValuesMatchAlternateKey(namedKeyValues, out matchingNamedKeyValues)) + { + isAlternateKey = true; + return true; + } + + return false; + } + + private bool NamedKeyValuesMatchPrimaryKey(IDictionary namedKeyValues, out IEnumerable> matchingNamedKeyValues) + { + var keyNames = _sesson.Metadata.GetDeclaredKeyPropertyNames(EntityCollection.Name).ToList(); + + return Utils.NamedKeyValuesMatchKeyNames(namedKeyValues, _sesson.Settings.NameMatchResolver, keyNames, out matchingNamedKeyValues); + } + + private bool NamedKeyValuesMatchAlternateKey(IDictionary namedKeyValues, out IEnumerable> alternateKeyNamedValues) + { + alternateKeyNamedValues = null; + + var alternateKeys = _sesson.Metadata.GetAlternateKeyPropertyNames(EntityCollection.Name).ToList(); + + foreach (var alternateKey in alternateKeys) + { + if (Utils.NamedKeyValuesMatchKeyNames(namedKeyValues, _sesson.Settings.NameMatchResolver, alternateKey, out alternateKeyNamedValues)) + { + return true; + } + } + + return false; + } + + private bool TryExtractKeyFromNamedValues(IDictionary namedValues, out IEnumerable> matchingNamedKeyValues) + { + return Utils.NamedKeyValuesContainKeyNames(namedValues, + _sesson.Settings.NameMatchResolver, + _sesson.Metadata.GetDeclaredKeyPropertyNames(EntityCollection.Name), + out matchingNamedKeyValues); + } +} diff --git a/src/Simple.OData.Client.Core/Fluent/UnboundClient.cs b/src/Simple.OData.Client.Core/Fluent/UnboundClient.cs new file mode 100644 index 000000000..3f47a0337 --- /dev/null +++ b/src/Simple.OData.Client.Core/Fluent/UnboundClient.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations in a fluent style. +/// +/// The entry type. +public partial class UnboundClient : FluentClientBase>, IUnboundClient + where T : class +{ + internal UnboundClient(ODataClient client, Session session, FluentCommand command = null, bool dynamicResults = false) + : base(client, session, null, command, dynamicResults) + { + } + + public IUnboundClient Set(object value) + { + Command.Set(value); + return this; + } + + public IUnboundClient Set(IDictionary value) + { + Command.Set(value); + return this; + } + + public IUnboundClient Set(params ODataExpression[] value) + { + Command.Set(value); + return this; + } + + public IUnboundClient Set(T entry) + { + Command.Set(entry); + return this; + } + + public IUnboundClient Set(T entry, params ODataExpression[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(object value, IEnumerable associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(object value, params string[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(object value, params ODataExpression[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(object value, Expression> associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(IDictionary value, IEnumerable associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(IDictionary value, params string[] associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient Set(T entry, Expression> associationsToSetByValue) + { + throw new NotImplementedException(); + } + + public IUnboundClient> As(string derivedCollectionName) + { + Command.As(derivedCollectionName); + return new UnboundClient>(_client, _session, Command, _dynamicResults); + } + + public IUnboundClient As(string derivedCollectionName = null) + where U : class + { + Command.As(derivedCollectionName ?? typeof(U).Name); + return new UnboundClient(_client, _session, Command, _dynamicResults); + } + + public IUnboundClient As(ODataExpression expression) + { + Command.As(expression); + return CreateClientForODataEntry(); + } + + private UnboundClient CreateClientForODataEntry() + { + return new UnboundClient(_client, _session, Command, true); ; + } +} diff --git a/src/Simple.OData.Client.Core/GlobalSuppressions.cs b/src/Simple.OData.Client.Core/GlobalSuppressions.cs new file mode 100644 index 000000000..d4c862cb7 --- /dev/null +++ b/src/Simple.OData.Client.Core/GlobalSuppressions.cs @@ -0,0 +1,38 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Required signature", + Scope = "member", + Target = "~M:Simple.OData.Client.ODataExpression.op_True(Simple.OData.Client.ODataExpression)~System.Boolean") +] + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Required signature", + Scope = "member", + Target = "~M:Simple.OData.Client.ODataExpression`1.op_True(Simple.OData.Client.ODataExpression`1)~System.Boolean") +] + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Required signature", + Scope = "member", + Target = "~M:Simple.OData.Client.ODataExpression.op_False(Simple.OData.Client.ODataExpression)~System.Boolean") +] + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Required signature", + Scope = "member", + Target = "~M:Simple.OData.Client.ODataExpression`1.op_False(Simple.OData.Client.ODataExpression`1)~System.Boolean") +] diff --git a/src/Simple.OData.Client.Core/Http/HttpConnection.cs b/src/Simple.OData.Client.Core/Http/HttpConnection.cs new file mode 100644 index 000000000..e6a068cd0 --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/HttpConnection.cs @@ -0,0 +1,69 @@ +using System; +using System.Net.Http; + +namespace Simple.OData.Client; + +public class HttpConnection : IDisposable +{ + private HttpMessageHandler _messageHandler; + + public HttpClient HttpClient { get; private set; } + + public HttpConnection(ODataClientSettings settings) + { + _messageHandler = CreateMessageHandler(settings); + HttpClient = CreateHttpClient(settings, _messageHandler); + } + + public void Dispose() + { + if (_messageHandler != null) + { + _messageHandler.Dispose(); + _messageHandler = null; + } + + if (HttpClient != null) + { + HttpClient.Dispose(); + HttpClient = null; + } + } + + private static HttpClient CreateHttpClient(ODataClientSettings settings, HttpMessageHandler messageHandler) + { + if (settings.HttpClient != null) + { + return settings.HttpClient; + } + + if (settings.RequestTimeout >= TimeSpan.FromMilliseconds(1)) + { + return new HttpClient(messageHandler) { Timeout = settings.RequestTimeout }; + } + + return new HttpClient(messageHandler); + } + + private static HttpMessageHandler CreateMessageHandler(ODataClientSettings settings) + { + if (settings.OnCreateMessageHandler != null) + { + return settings.OnCreateMessageHandler(); + } + else + { + var clientHandler = new HttpClientHandler(); + + if (settings.Credentials != null) + { + clientHandler.Credentials = settings.Credentials; + clientHandler.PreAuthenticate = true; + } + + settings.OnApplyClientHandler?.Invoke(clientHandler); + + return clientHandler; + } + } +} diff --git a/src/Simple.OData.Client.Core/Http/HttpLiteral.cs b/src/Simple.OData.Client.Core/Http/HttpLiteral.cs new file mode 100644 index 000000000..7d479c8e3 --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/HttpLiteral.cs @@ -0,0 +1,20 @@ +namespace Simple.OData.Client; + +internal static class HttpLiteral +{ + public const string ContentType = "Content-Type"; + public const string ContentLength = "Content-Length"; + public const string ContentId = "Content-ID"; + public const string ODataVersion = "OData-Version"; + public const string ODataMaxVersion = "OData-MaxVersion"; + public const string DataServiceVersion = "DataServiceVersion"; + public const string MinDataServiceVersion = "MinDataServiceVersion"; + public const string MaxDataServiceVersion = "MaxDataServiceVersion"; + public const string IfMatch = "If-Match"; + public const string Prefer = "Prefer"; + public const string PreferenceApplied = "Preference-Applied"; + public const string ReturnContent = "return-content"; + public const string ReturnNoContent = "return-no-content"; + public const string ReturnRepresentation = "return=representation"; + public const string ReturnMinimal = "return=minimal"; +} diff --git a/src/Simple.OData.Client.Core/Http/RequestRunner.cs b/src/Simple.OData.Client.Core/Http/RequestRunner.cs new file mode 100644 index 000000000..801a5fdf9 --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/RequestRunner.cs @@ -0,0 +1,133 @@ +using System; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal class RequestRunner +{ + private readonly ISession _session; + + public RequestRunner(ISession session) + { + _session = session; + } + + public async Task ExecuteRequestAsync(ODataRequest request, CancellationToken cancellationToken) + { + HttpConnection httpConnection = null; + try + { + await PreExecuteAsync(request).ConfigureAwait(false); + + _session.Trace("{0} request: {1}", request.Method, request.RequestMessage.RequestUri.AbsoluteUri); + if (request.RequestMessage.Content != null && (_session.Settings.TraceFilter & ODataTrace.RequestContent) != 0) + { + var content = await request.RequestMessage.Content.ReadAsStringAsync().ConfigureAwait(false); + _session.Trace("Request content:{0}{1}", Environment.NewLine, content); + } + + HttpResponseMessage response; + if (_session.Settings.RequestExecutor != null) + { + response = await _session.Settings.RequestExecutor(request.RequestMessage).ConfigureAwait(false); + } + else + { + httpConnection = _session.Settings.RenewHttpConnection + ? new HttpConnection(_session.Settings) + : _session.GetHttpConnection(); + + response = await httpConnection.HttpClient.SendAsync(request.RequestMessage, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + + _session.Trace("Request completed: {0}", response.StatusCode); + if (response.Content != null && (_session.Settings.TraceFilter & ODataTrace.ResponseContent) != 0) + { + var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + _session.Trace("Response content:{0}{1}", Environment.NewLine, content); + } + + await PostExecute(response).ConfigureAwait(false); + return response; + } + catch (WebException ex) + { + throw WebRequestException.CreateFromWebException(ex); + } + catch (AggregateException ex) + { + if (ex.InnerException is WebException) + { + throw WebRequestException.CreateFromWebException(ex.InnerException as WebException); + } + else + { + throw; + } + } + finally + { + if (httpConnection != null && _session.Settings.RenewHttpConnection) + { + httpConnection.Dispose(); + } + } + } + + private async Task PreExecuteAsync(ODataRequest request) + { + if (request.Accept != null) + { + foreach (var accept in request.Accept) + { + request.RequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(accept)); + } + } + + if (request.CheckOptimisticConcurrency && + (request.Method == RestVerbs.Put || + request.Method == RestVerbs.Patch || + request.Method == RestVerbs.Merge || + request.Method == RestVerbs.Delete)) + { + request.RequestMessage.Headers.IfMatch.Add(EntityTagHeaderValue.Any); + } + + foreach (var header in request.Headers) + { + if (request.RequestMessage.Headers.TryGetValues(header.Key, out var values) && !values.Contains(header.Value)) + { + request.RequestMessage.Headers.TryAddWithoutValidation(header.Key, header.Value); + } + } + + _session.Settings.BeforeRequest?.Invoke(request.RequestMessage); + if (_session.Settings.BeforeRequestAsync != null) + { + await _session.Settings.BeforeRequestAsync(request.RequestMessage).ConfigureAwait(false); + } + } + + private async Task PostExecute(HttpResponseMessage responseMessage) + { + _session.Settings.AfterResponse?.Invoke(responseMessage); + if (_session.Settings.AfterResponseAsync != null) + { + await _session.Settings.AfterResponseAsync(responseMessage).ConfigureAwait(false); + } + + if (!responseMessage.IsSuccessStatusCode) + { + throw await WebRequestException.CreateFromResponseMessageAsync(responseMessage, _session.Settings.WebRequestExceptionMessageSource).ConfigureAwait(false); + } + } +} diff --git a/src/Simple.OData.Client.Core/Http/RestVerbs.cs b/src/Simple.OData.Client.Core/Http/RestVerbs.cs new file mode 100644 index 000000000..b81066bc0 --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/RestVerbs.cs @@ -0,0 +1,14 @@ + +namespace Simple.OData.Client; + +internal static class RestVerbs +{ + // ReSharper disable InconsistentNaming + public const string Get = "GET"; + public const string Post = "POST"; + public const string Put = "PUT"; + public const string Merge = "MERGE"; + public const string Patch = "PATCH"; + public const string Delete = "DELETE"; + // ReSharper restore InconsistentNaming +} diff --git a/src/Simple.OData.Client.Core/Http/WebRequestException.cs b/src/Simple.OData.Client.Core/Http/WebRequestException.cs new file mode 100644 index 000000000..a011ca4bc --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/WebRequestException.cs @@ -0,0 +1,124 @@ +using System; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// The exception that is thrown when the service failed to process the Web request +/// +public class WebRequestException : Exception +{ + + /// + /// Creates from the instance of HttpResponseMessage. + /// + /// The instance of . + /// The source used to build exception message, see + /// The instance of . + public async static Task CreateFromResponseMessageAsync(HttpResponseMessage response, WebRequestExceptionMessageSource exceptionMessageSource) + { + var requestUri = response.RequestMessage?.RequestUri; + return new WebRequestException(response.ReasonPhrase, response.StatusCode, requestUri, + response.Content != null ? await response.Content.ReadAsStringAsync().ConfigureAwait(false) : null, exceptionMessageSource, null); + } + + /// + /// Creates from the instance of WebException. + /// + /// The instance of . + /// The source used to build exception message, see + /// The instance of . + public static WebRequestException CreateFromWebException(WebException ex, WebRequestExceptionMessageSource exceptionMessageSource = WebRequestExceptionMessageSource.ReasonPhrase) + { + return ex.Response is not HttpWebResponse response ? + new WebRequestException(ex) : + new WebRequestException(ex.Message, response.StatusCode, response.ResponseUri, Utils.StreamToString(response.GetResponseStream()), exceptionMessageSource, ex); + } + + /// + /// Creates from the instance of HttpResponseMessage. + /// + /// The HTTP status code. + /// The source used to build exception message, see + /// + /// The instance of . + public static WebRequestException CreateFromStatusCode(HttpStatusCode statusCode, WebRequestExceptionMessageSource exceptionMessageSource, string responseContent = null) + { + return new WebRequestException(statusCode.ToString(), statusCode, null, responseContent, exceptionMessageSource, null); + } + + private static string BuildMessage(HttpStatusCode statusCode, string reasonPhrase, string responseContent, WebRequestExceptionMessageSource exceptionMessageSource) + { + reasonPhrase ??= statusCode.ToString(); + if (exceptionMessageSource == WebRequestExceptionMessageSource.ReasonPhrase) + { + return reasonPhrase; + } + else if (exceptionMessageSource == WebRequestExceptionMessageSource.ResponseContent) + { + return responseContent; + } + else + { + return $"Request failed with reason {((int)statusCode)} {reasonPhrase}. Response content was {responseContent}."; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// The message that describes the error. + /// The HTTP status code. + /// The original request URI. + /// The response content. + /// The source used to build exception message, see + /// The inner exception. + private WebRequestException(string reasonPhrase, HttpStatusCode statusCode, Uri requestUri, string responseContent, WebRequestExceptionMessageSource exceptionMessageSource, Exception inner) + : base(BuildMessage(statusCode, reasonPhrase, responseContent, exceptionMessageSource), inner) + { + ReasonPhrase = reasonPhrase; + Code = statusCode; + Response = responseContent; + RequestUri = requestUri; + } + + /// + /// Initializes a new instance of the class. + /// + /// The inner exception. + private WebRequestException(WebException inner) + : base("Unexpected WebException encountered", inner) + { + } + + /// + /// Gets the . + /// + /// + /// The . + /// + public HttpStatusCode Code { get; private set; } + + /// + /// Gets the HTTP response text. + /// + /// + /// The response text. + /// + public string Response { get; private set; } + + /// + /// Gets the HTTP Uri + /// + /// + /// The original request URI, or the resulting URI if a redirect took place. + /// + public Uri RequestUri { get; private set; } + + /// + /// Gets the reason phrase associated with the Http status code. + /// + public string ReasonPhrase { get; private set; } +} diff --git a/src/Simple.OData.Client.Core/Http/WebRequestExceptionMessageSource.cs b/src/Simple.OData.Client.Core/Http/WebRequestExceptionMessageSource.cs new file mode 100644 index 000000000..39caa4158 --- /dev/null +++ b/src/Simple.OData.Client.Core/Http/WebRequestExceptionMessageSource.cs @@ -0,0 +1,22 @@ +namespace Simple.OData.Client; + +/// +/// The message of an exception raised after a non successful Http request. +/// +public enum WebRequestExceptionMessageSource +{ + /// + /// The reason phrase of the HTTP response message. + /// + ReasonPhrase, + + /// + /// The content of the HTTP response message. + /// + ResponseContent, + + /// + /// Both the reason phrase and content of the http response message. + /// + Both +} diff --git a/src/Simple.OData.Client.Core/INameMatchResolver.cs b/src/Simple.OData.Client.Core/INameMatchResolver.cs new file mode 100644 index 000000000..3ae69bf7b --- /dev/null +++ b/src/Simple.OData.Client.Core/INameMatchResolver.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client; + +public interface INameMatchResolver +{ + bool IsMatch(string actualName, string requestedName); +} diff --git a/src/Simple.OData.Client.Core/IODataClient.cs b/src/Simple.OData.Client.Core/IODataClient.cs new file mode 100644 index 000000000..d43350fba --- /dev/null +++ b/src/Simple.OData.Client.Core/IODataClient.cs @@ -0,0 +1,604 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations. +/// +public interface IODataClient +{ + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// Name of the collection. + /// The fluent OData client instance. + IBoundClient> For(string collectionName); + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// Collection expression. + /// The fluent OData client instance. + IBoundClient For(ODataExpression expression); + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// Name of the collection. + /// The fluent OData client instance. + IBoundClient For(string collectionName = null) where T : class; + + /// + /// Returns an instance of a fluent OData client for unbound operations (functions and actions). + /// + /// The fluent OData client instance. + IUnboundClient Unbound(); + /// + /// Returns an instance of a fluent OData client for unbound operations (functions and actions). + /// + /// The fluent OData client instance. + IUnboundClient Unbound() where T : class; + + /// + /// Gets the OData service metadata. + /// + /// The service metadata. + Task GetMetadataAsync(); + /// + /// Gets the OData service metadata. + /// + /// The service metadata. + Task GetMetadataAsync(CancellationToken cancellationToken); + /// + /// Gets the OData service metadata. + /// + /// OData protocol specific metadata interface + /// + /// The service metadata. + /// + Task GetMetadataAsync(); + /// + /// Gets the OData service metadata. + /// + /// OData protocol specific metadata interface + /// The cancellation token. + /// + /// The service metadata. + /// + Task GetMetadataAsync(CancellationToken cancellationToken); + + /// + /// Gets the OData service metadata as string. + /// + /// The service metadata string. + Task GetMetadataDocumentAsync(); + /// + /// Gets the OData service metadata as string. + /// + /// The cancellation token. + /// The service metadata string. + Task GetMetadataDocumentAsync(CancellationToken cancellationToken); + + /// + /// Gets the OData command text. + /// + /// The name of the collection. + /// The command expression. + /// The command text. + Task GetCommandTextAsync(string collection, ODataExpression expression); + /// + /// Gets the OData command text. + /// + /// The name of the collection. + /// The command expression. + /// The cancellation token. + /// The command text. + Task GetCommandTextAsync(string collection, ODataExpression expression, CancellationToken cancellationToken); + /// + /// Gets the OData command text. + /// + /// The collection type. + /// The name of the collection. + /// The command expression. + /// The command text. + Task GetCommandTextAsync(string collection, Expression> expression); + /// + /// Gets the OData command text. + /// + /// The collection type. + /// The name of the collection. + /// The command expression. + /// The cancellation token. + /// The command text. + Task GetCommandTextAsync(string collection, Expression> expression, CancellationToken cancellationToken); + + /// + /// Retrieves entries by executing OData GET request. + /// + /// The OData command text. + /// Entries found. + Task>> FindEntriesAsync(string commandText); + /// + /// Retrieves entries by executing OData GET request. + /// + /// The OData command text. + /// The cancellation token. + /// Entries found. + Task>> FindEntriesAsync(string commandText, CancellationToken cancellationToken); + /// + /// Retrieves entries by executing OData GET request. + /// + /// The OData command text. + /// if set to true the result is expected to be of a scalar type. + /// Entries found. + Task>> FindEntriesAsync(string commandText, bool scalarResult); + /// + /// Retrieves entries by executing OData GET request. + /// + /// The OData command text. + /// if set to true the result is expected to be of a scalar type. + /// The cancellation token. + /// Entries found. + Task>> FindEntriesAsync(string commandText, bool scalarResult, CancellationToken cancellationToken); + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The OData command text. + /// The OData feed annotations. + /// Entries found with entry count. + Task>> FindEntriesAsync(string commandText, ODataFeedAnnotations annotations); + /// + /// Retrieves entries by executing OData GET request and assigns OData feed annotations. + /// + /// The OData command text. + /// The OData feed annotations. + /// The cancellation token. + /// Entries found with entry count. + Task>> FindEntriesAsync(string commandText, ODataFeedAnnotations annotations, CancellationToken cancellationToken); + + /// + /// Retrieves an entry by executing OData GET request. + /// + /// The OData command text. + /// The first of the entries found. + Task> FindEntryAsync(string commandText); + /// + /// Retrieves an entry by executing OData GET request. + /// + /// The OData command text. + /// The cancellation token. + /// The first of the entries found. + Task> FindEntryAsync(string commandText, CancellationToken cancellationToken); + + /// + /// Retrieves an entry as a scalar type by executing OData GET request. + /// + /// The OData command text. + /// The result as a scalar type. + Task FindScalarAsync(string commandText); + /// + /// Retrieves an entry as a scalar type by executing OData GET request. + /// + /// The OData command text. + /// The cancellation token. + /// The result as a scalar type. + Task FindScalarAsync(string commandText, CancellationToken cancellationToken); + + /// + /// Looks up an entry by executing OData GET request. + /// + /// The name of the collection. + /// The entry key. + /// The entry with the specified key + Task> GetEntryAsync(string collection, params object[] entryKey); + /// + /// Looks up an entry by executing OData GET request. + /// + /// The name of the collection. + /// The cancellation token. + /// The entry key. + /// The entry with the specified key + Task> GetEntryAsync(string collection, CancellationToken cancellationToken, params object[] entryKey); + /// + /// Looks up an entry by executing OData GET request. + /// + /// The name of the collection. + /// The entry key. + /// The entry with the specified key + Task> GetEntryAsync(string collection, IDictionary entryKey); + /// + /// Looks up an entry by executing OData GET request. + /// + /// The name of the collection. + /// The entry key. + /// The cancellation token. + /// The entry with the specified key + Task> GetEntryAsync(string collection, IDictionary entryKey, CancellationToken cancellationToken); + + /// + /// Insert a new entry by executing OData POST request. + /// + /// The name of the collection. + /// The entry data. + /// The newly inserted entry + Task> InsertEntryAsync(string collection, IDictionary entryData); + /// + /// Insert a new entry by executing OData POST request. + /// + /// The name of the collection. + /// The entry data. + /// The cancellation token. + /// The newly inserted entry + Task> InsertEntryAsync(string collection, IDictionary entryData, CancellationToken cancellationToken); + /// + /// Insert a new entry by executing OData POST request. + /// + /// The name of the collection. + /// The entry data. + /// if set to true returns the new entry data, otherwise returns null. + /// The newly inserted entry + Task> InsertEntryAsync(string collection, IDictionary entryData, bool resultRequired); + /// + /// Insert a new entry by executing OData POST request. + /// + /// The name of the collection. + /// The entry data. + /// if set to true returns the new entry data, otherwise returns null. + /// The cancellation token. + /// The newly inserted entry + Task> InsertEntryAsync(string collection, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken); + + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The name of the collection. + /// The entry key. + /// The entry data. + /// The updated entry data + Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The name of the collection. + /// The entry key. + /// The entry data. + /// The cancellation token. + /// The updated entry data + Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, CancellationToken cancellationToken); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The name of the collection. + /// The entry key. + /// The entry data. + /// if set to true returns the updated entry data, otherwise returns null. + /// The updated entry data + Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, bool resultRequired); + /// + /// Updates the existing entry by executing OData PUT or PATCH request. + /// + /// The name of the collection. + /// The entry key. + /// The entry data. + /// if set to true returns the updated entry data, otherwise returns null. + /// The cancellation token. + /// The updated entry data + Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken); + + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The name of the collection. + /// The command text. + /// The entry data. + /// The updated entries data + Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The name of the collection. + /// The command text. + /// The entry data. + /// The cancellation token. + /// The updated entries data + Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, CancellationToken cancellationToken); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The name of the collection. + /// The command text. + /// The entry data. + /// if set to true returns the updated entry data, otherwise returns null. + /// The updated entries data + Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, bool resultRequired); + /// + /// Updates entries by executing multiple OData PUT or PATCH requests. + /// + /// The name of the collection. + /// The command text. + /// The entry data. + /// if set to true returns the updated entry data, otherwise returns null. + /// The cancellation token. + /// The updated entries data + Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken); + + /// + /// Deletes the existing entry by executing OData DELETE request. + /// + /// The name of the collection. + /// The entry key. + /// Task instance. + Task DeleteEntryAsync(string collection, IDictionary entryKey); + /// + /// Deletes the existing entry by executing OData DELETE request. + /// + /// The name of the collection. + /// The entry key. + /// The cancellation token. + /// Task instance. + Task DeleteEntryAsync(string collection, IDictionary entryKey, CancellationToken cancellationToken); + + /// + /// Deletes entries by executing multiple OData DELETE requests. + /// + /// The name of the collection. + /// The command text. + /// The number of deleted entries. + Task DeleteEntriesAsync(string collection, string commandText); + /// + /// Deletes entries by executing multiple OData DELETE requests. + /// + /// The name of the collection. + /// The command text. + /// The cancellation token. + /// The number of deleted entries. + Task DeleteEntriesAsync(string collection, string commandText, CancellationToken cancellationToken); + + /// + /// Creates a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link. + /// The linked entry key. + /// Task instance. + Task LinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey); + /// + /// Creates a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task LinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken); + + /// + /// Deletes a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link to be deleted. + /// Task instance. + Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName); + /// + /// Deletes a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link to be deleted. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, CancellationToken cancellationToken); + /// + /// Deletes a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link to be deleted. + /// The linked entry key. + /// Task instance. + Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey); + /// + /// Deletes a link between entries. + /// + /// The name of the collection. + /// The entry key. + /// Name of the link to be deleted. + /// The linked entry key. + /// The cancellation token. + /// Task instance. + Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken); + + /// + /// Retrieves a media entry stream by executing OData GET request. + /// + /// The OData command text. + /// The media stream. + Task GetMediaStreamAsync(string commandText); + /// + /// Retrieves a media entry stream by executing OData GET request. + /// + /// The OData command text. + /// The cancellation token. + /// The media stream. + Task GetMediaStreamAsync(string commandText, CancellationToken cancellationToken); + + /// + /// Assigns a stream to a media entry by executing OData PUT request. + /// + /// The OData command text. + /// The media stream. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// Task instance. + Task SetMediaStreamAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency); + /// + /// Assigns a stream to a media entry by executing OData PUT request. + /// + /// The OData command text. + /// The media stream. + /// The media content type. + /// if set to true sets the resource ETag in the updated request header. + /// The cancellation token. + /// Task instance. + Task SetMediaStreamAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken); + + /// + /// Executes the OData function. + /// + /// Name of the function. + /// The function parameters. + /// Function execution result. + Task> ExecuteFunctionAsSingleAsync(string functionName, IDictionary parameters); + /// + /// Executes the OData function. + /// + /// Name of the function. + /// The function parameters. + /// The cancellation token. + /// Function execution result. + Task> ExecuteFunctionAsSingleAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData function. + /// + /// Name of the function. + /// The function parameters. + /// Function execution result. + Task>> ExecuteFunctionAsEnumerableAsync(string functionName, IDictionary parameters); + /// + /// Executes the OData function. + /// + /// Name of the function. + /// The function parameters. + /// The cancellation token. + /// Function execution result. + Task>> ExecuteFunctionAsEnumerableAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData function and returns scalar result. + /// + /// The result type. + /// Name of the function. + /// The parameters. + /// Function execution result. + Task ExecuteFunctionAsScalarAsync(string functionName, IDictionary parameters); + /// + /// Executes the OData function and returns scalar result. + /// + /// The result type. + /// Name of the function. + /// The function parameters. + /// The cancellation token. + /// Function execution result. + Task ExecuteFunctionAsScalarAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData function and returns an array. + /// + /// The array element type. + /// Name of the function. + /// The function parameters. + /// Function execution result. + Task ExecuteFunctionAsArrayAsync(string functionName, IDictionary parameters); + /// + /// Executes the OData function and returns an array. + /// + /// The array element type. + /// Name of the function. + /// The function parameters. + /// The cancellation token. + /// Function execution result. + Task ExecuteFunctionAsArrayAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// Action execution result. + Task ExecuteActionAsync(string actionName, IDictionary parameters); + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// The cancellation token. + /// Action execution result. + Task ExecuteActionAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// Action execution result. + Task> ExecuteActionAsSingleAsync(string actionName, IDictionary parameters); + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// The cancellation token. + /// Action execution result. + Task> ExecuteActionAsSingleAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// Action execution result. + Task>> ExecuteActionAsEnumerableAsync(string actionName, IDictionary parameters); + /// + /// Executes the OData action. + /// + /// Name of the action. + /// The action parameters. + /// The cancellation token. + /// Action execution result. + Task>> ExecuteActionAsEnumerableAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData action and returns scalar result. + /// + /// The result type. + /// Name of the action. + /// The parameters. + /// action execution result. + Task ExecuteActionAsScalarAsync(string actionName, IDictionary parameters); + /// + /// Executes the OData action and returns scalar result. + /// + /// The result type. + /// Name of the action. + /// The action parameters. + /// The cancellation token. + /// Action execution result. + Task ExecuteActionAsScalarAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken); + + /// + /// Executes the OData action and returns an array. + /// + /// The array element type. + /// Name of the action. + /// The action parameters. + /// Action execution result. + Task ExecuteActionAsArrayAsync(string actionName, IDictionary parameters); + /// + /// Executes the OData action and returns an array. + /// + /// The array element type. + /// Name of the action. + /// The action parameters. + /// The cancellation token. + /// Action execution result. + Task ExecuteActionAsArrayAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken); + Task GetResponseAsync(ODataRequest request); + Task GetResponseAsync(ODataRequest request, CancellationToken cancellationToken); +} diff --git a/src/Simple.OData.Client.Core/IPluralizer.cs b/src/Simple.OData.Client.Core/IPluralizer.cs new file mode 100644 index 000000000..9c73299d8 --- /dev/null +++ b/src/Simple.OData.Client.Core/IPluralizer.cs @@ -0,0 +1,21 @@ +namespace Simple.OData.Client; + +/// +/// Provides pluralization and singularization of words when resolving names of resources and properties +/// +public interface IPluralizer +{ + /// + /// Pluralizes the specified word. + /// + /// The word to pluralize. + /// + string Pluralize(string word); + + /// + /// Singularizes the specified word. + /// + /// The word to singularize. + /// + string Singularize(string word); +} diff --git a/src/Simple.OData.Client.Core/ISession.cs b/src/Simple.OData.Client.Core/ISession.cs new file mode 100644 index 000000000..632e5ae37 --- /dev/null +++ b/src/Simple.OData.Client.Core/ISession.cs @@ -0,0 +1,43 @@ +using System; +using System.Net.Http; + +namespace Simple.OData.Client; + +/// +/// Provide access to session-specific details. +/// +public interface ISession : IDisposable +{ + /// + /// Gets OData client configuration settings. + /// + ODataClientSettings Settings { get; } + + /// + /// Gets OData client adapter. + /// + IODataAdapter Adapter { get; } + + /// + /// Gets OData service metadata. + /// + IMetadata Metadata { get; } + + /// + /// Gets type information for this session. + /// + ITypeCache TypeCache { get; } + + /// + /// Writes a trace message. + /// + /// Trace message format string. + /// Trace message parameters. + void Trace(string message, params object[] messageParams); + + /// + /// Obtains an instance of that is used to issue HTTP requests to OData service. + /// + /// An instance. + HttpConnection GetHttpConnection(); +} diff --git a/src/Simple.OData.Client.Core/ITypeConverter.cs b/src/Simple.OData.Client.Core/ITypeConverter.cs new file mode 100644 index 000000000..013c22b27 --- /dev/null +++ b/src/Simple.OData.Client.Core/ITypeConverter.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +public interface ITypeConverter +{ + /// + /// Register a dictionary type converter + /// + /// + void RegisterTypeConverter(Func, object> converter); + + /// + /// Register an object type converter + /// + /// + void RegisterTypeConverter(Func converter); + + /// + /// Register a dictionary type converter + /// + /// + /// + void RegisterTypeConverter(Type type, Func, object> converter); + + /// + /// Register an object type converter + /// + /// + /// + void RegisterTypeConverter(Type type, Func converter); + + /// + /// Determine if a type has a dictionary converter + /// + /// + /// + bool HasDictionaryConverter(); + + /// + /// Determine if a type has a dictionary converter + /// + /// + /// + bool HasDictionaryConverter(Type type); + + /// + /// Determine if a type has an object converter + /// + /// + /// + bool HasObjectConverter(); + + /// + /// Determine if a type has an object converter + /// + /// + /// + bool HasObjectConverter(Type type); + + /// + /// Convert a dictionary to the specified type + /// + /// + /// + /// + T Convert(IDictionary value); + + /// + /// Convert an object to the specified type + /// + /// + /// + /// + T Convert(object value); + + /// + /// Convert a dictionary to the specified type + /// + /// + /// + /// + object Convert(IDictionary value, Type type); + + /// + /// Convert an object to the specified type + /// + /// + /// + /// + object Convert(object value, Type type); +} diff --git a/src/Simple.OData.Client.Core/NameMatchResolvers.cs b/src/Simple.OData.Client.Core/NameMatchResolvers.cs new file mode 100644 index 000000000..5cef6266a --- /dev/null +++ b/src/Simple.OData.Client.Core/NameMatchResolvers.cs @@ -0,0 +1,66 @@ +using System; +using System.Linq; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public static class ODataNameMatchResolver +{ + public static INameMatchResolver Strict = new ExactMatchResolver(); + public static INameMatchResolver Alpahumeric = new ExactMatchResolver(true); + public static INameMatchResolver AlpahumericCaseInsensitive = new ExactMatchResolver(true, StringComparison.InvariantCultureIgnoreCase); + public static INameMatchResolver NotStrict = new BestMatchResolver(); +} + +public static class Pluralizers +{ + public static IPluralizer Simple = new SimplePluralizer(); + public static IPluralizer Cached = new CachedPluralizer(Simple); +} + +public class ExactMatchResolver : INameMatchResolver +{ + private readonly StringComparison _stringComparison; + private readonly bool _alphanumComparison; + + public ExactMatchResolver(bool alphanumComparison = false, StringComparison stringComparison = StringComparison.InvariantCulture) + { + _alphanumComparison = alphanumComparison; + _stringComparison = stringComparison; + } + + public bool IsMatch(string actualName, string requestedName) + { + actualName = actualName.Split('.').Last(); + requestedName = requestedName.Split('.').Last(); + if (_alphanumComparison) + { + actualName = actualName.Homogenize(); + requestedName = requestedName.Homogenize(); + } + + return actualName.Equals(requestedName, _stringComparison); + } +} + +public class BestMatchResolver : INameMatchResolver +{ + private readonly IPluralizer _pluralizer; + + public BestMatchResolver() + { + _pluralizer = Pluralizers.Cached; + } + + public bool IsMatch(string actualName, string requestedName) + { + actualName = actualName.Split('.').Last().Homogenize(); + requestedName = requestedName.Split('.').Last().Homogenize(); + + return actualName == requestedName || + (actualName == _pluralizer.Singularize(requestedName) || + actualName == _pluralizer.Pluralize(requestedName) || + _pluralizer.Singularize(actualName) == requestedName || + _pluralizer.Pluralize(actualName) == requestedName); + } +} diff --git a/src/Simple.OData.Client.Core/ODataBatch.cs b/src/Simple.OData.Client.Core/ODataBatch.cs new file mode 100644 index 000000000..e53747f28 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataBatch.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// Performs batch processing of OData requests by grouping multiple operations in a single HTTP POST request in accordance with OData protocol +/// +public class ODataBatch +{ + private readonly ODataClient _client; + private readonly List> _actions = new(); + private readonly ConcurrentDictionary> _entryMap = new(); + private readonly Dictionary _headers = new(); + + /// + /// Initializes a new instance of the class. + /// + /// The URL base. + public ODataBatch(Uri baseUri) + : this(new ODataClientSettings { BaseUri = baseUri }) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The settings. + public ODataBatch(ODataClientSettings settings) + { + _client = new ODataClient(settings, _entryMap); + } + + /// + /// Initializes a new instance of the class. + /// + /// The OData client which settings will be used to create a batch. + public ODataBatch(IODataClient client) : this(client, false) { } + + /// + /// Initializes a new instance of the class. + /// + /// The OData client which will be used to create a batch. + /// Flag indicating that the existing session from the + /// should be used rather than creating a new one. + /// + public ODataBatch(IODataClient client, bool reuseSession) + { + _client = reuseSession + ? new ODataClient((client as ODataClient), _entryMap) + : new ODataClient((client as ODataClient).Session.Settings, _entryMap); + } + /// + /// Adds an OData command to an OData batch. + /// + /// The OData batch. + /// The command to add to the batch. + /// + public static ODataBatch operator +(ODataBatch batch, Func action) + { + batch._actions.Add(action); + return batch; + } + + /// + /// Executes the OData batch by submitting pending requests to the OData service. + /// + /// + public Task ExecuteAsync() + { + return ExecuteAsync(CancellationToken.None); + } + + /// + /// Executes the OData batch by submitting pending requests to the OData service. + /// + /// The cancellation token. + /// + public Task ExecuteAsync(CancellationToken cancellationToken) + { + return _client.ExecuteBatchAsync(_actions, _headers, cancellationToken); + } + + /// + /// Adds a header to be included in the HTTP request. + /// + /// The header name. + /// The header value. + /// Self. + public ODataBatch WithHeader(string name, string value) + { + _headers.Add(name, value); + return this; + } + + /// + /// Adds a collection of headers to be included in the HTTP request. + /// + /// The header name. + /// The header value. + /// Self. + public ODataBatch WithHeaders(IDictionary headers) + { + foreach (var header in headers) + { + WithHeader(header.Key, header.Value); + } + + return this; + } +} diff --git a/src/Simple.OData.Client.Core/ODataClient.Async.cs b/src/Simple.OData.Client.Core/ODataClient.Async.cs new file mode 100644 index 000000000..2bd0e6621 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataClient.Async.cs @@ -0,0 +1,1423 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Linq.Expressions; +using System.Net; +using System.Threading; +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations. +/// +public partial class ODataClient +{ + /// + /// Retrieves the OData service metadata. + /// + /// The URL base of the OData service. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri) + { + return GetMetadataAsync(baseUri, null, CancellationToken.None); + } + + /// + /// Retrieves the OData service metadata. + /// + /// The URL base of the OData service. + /// The cancellation token. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri, CancellationToken cancellationToken) + { + return GetMetadataAsync(baseUri, null, cancellationToken); + } + + /// + /// Retrieves the OData service metadata. + /// + /// The URL base of the OData service. + /// The OData service access credentials. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri, ICredentials credentials) + { + return GetMetadataAsync(baseUri, credentials, CancellationToken.None); + } + + /// + /// Retrieves the OData service metadata. + /// + /// The URL base of the OData service. + /// The OData service access credentials. + /// The cancellation token. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri, ICredentials credentials, CancellationToken cancellationToken) + { + return GetMetadataAsync(baseUri, credentials, cancellationToken); + } + + /// + /// Retrieves the OData service metadata. + /// + /// OData protocol specific metadata interface + /// The URL base of the OData service. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri) + { + return GetMetadataAsync(baseUri, null, CancellationToken.None); + } + + /// + /// Retrieves the OData service metadata. + /// + /// OData protocol specific metadata interface + /// The URL base of the OData service. + /// The cancellation token. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri, CancellationToken cancellationToken) + { + return GetMetadataAsync(baseUri, null, cancellationToken); + } + + /// + /// Retrieves the OData service metadata. + /// + /// OData protocol specific metadata interface + /// The URL base of the OData service. + /// The OData service access credentials. + /// The service metadata. + public static Task GetMetadataAsync(Uri baseUri, ICredentials credentials) + { + return GetMetadataAsync(baseUri, credentials, CancellationToken.None); + } + + /// + /// Retrieves the OData service metadata. + /// + /// OData protocol specific metadata interface + /// The URL base of the OData service. + /// The OData service access credentials. + /// The cancellation token. + /// + /// The service metadata. + /// + public async static Task GetMetadataAsync(Uri baseUri, ICredentials credentials, CancellationToken cancellationToken) + { + var session = Session.FromSettings(new ODataClientSettings(baseUri, credentials)); + await session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + return (T)session.Adapter.Model; + } + + /// + /// Retrieves the OData service metadata as string. + /// + /// The URL base of the OData service. + /// The service metadata. + public static Task GetMetadataDocumentAsync(Uri baseUri) + { + return GetMetadataDocumentAsync(baseUri, null, CancellationToken.None); + } + + /// + /// Gets The service metadata as string asynchronous. + /// + /// The URL base of the OData service. + /// The cancellation token. + /// The service metadata. + public static Task GetMetadataDocumentAsync(Uri baseUri, CancellationToken cancellationToken) + { + return GetMetadataDocumentAsync(baseUri, null, cancellationToken); + } + + /// + /// Gets The service metadata as string asynchronous. + /// + /// The URL base of the OData service. + /// The OData service access credentials. + /// The service metadata. + public static Task GetMetadataDocumentAsync(Uri baseUri, ICredentials credentials) + { + return GetMetadataDocumentAsync(baseUri, credentials, CancellationToken.None); + } + + /// + /// Gets The service metadata as string asynchronous. + /// + /// The URL base. + /// The OData service access credentials. + /// The cancellation token. + /// The service metadata. + public async static Task GetMetadataDocumentAsync(Uri baseUri, ICredentials credentials, CancellationToken cancellationToken) + { + var session = Session.FromSettings(new ODataClientSettings(baseUri, credentials)); + await session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + return session.MetadataCache.MetadataDocument; + } + + internal async Task GetSessionAsync() + { + await Session.ResolveAdapterAsync(CancellationToken.None).ConfigureAwait(false); + return Session; + } + + public async Task GetMetadataAsync() + { + return (await Session.ResolveAdapterAsync(CancellationToken.None).ConfigureAwait(false)).Model; + } + + public async Task GetMetadataAsync(CancellationToken cancellationToken) + { + return (await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false)).Model; + } + + public async Task GetMetadataAsync() + { + return (T)(await Session.ResolveAdapterAsync(CancellationToken.None).ConfigureAwait(false)).Model; + } + + public async Task GetMetadataAsync(CancellationToken cancellationToken) + { + return (T)(await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false)).Model; + } + + public Task GetMetadataAsStringAsync() + { + return GetMetadataDocumentAsync(CancellationToken.None); + } + + public Task GetMetadataDocumentAsync() + { + return GetMetadataDocumentAsync(CancellationToken.None); + } + + public async Task GetMetadataAsStringAsync(CancellationToken cancellationToken) + { + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + return Session.MetadataCache.MetadataDocument; + } + + public async Task GetMetadataDocumentAsync(CancellationToken cancellationToken) + { + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + return Session.MetadataCache.MetadataDocument; + } + + public Task GetCommandTextAsync(string collection, ODataExpression expression) + { + return GetCommandTextAsync(collection, expression, CancellationToken.None); + } + + public async Task GetCommandTextAsync(string collection, ODataExpression expression, CancellationToken cancellationToken) + { + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await GetBoundClient() + .For(collection) + .Filter(expression) + .GetCommandTextAsync(cancellationToken).ConfigureAwait(false); + } + + public Task GetCommandTextAsync(string collection, Expression> expression) + { + return GetCommandTextAsync(collection, expression, CancellationToken.None); + } + + public async Task GetCommandTextAsync(string collection, Expression> expression, CancellationToken cancellationToken) + { + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await GetBoundClient() + .For(collection) + .Filter(ODataExpression.FromLinqExpression(expression.Body)) + .GetCommandTextAsync(cancellationToken).ConfigureAwait(false); + } + + public Task>> FindEntriesAsync(string commandText) + { + return FindEntriesAsync(commandText, false, null, null, CancellationToken.None); + } + + public Task>> FindEntriesAsync(string commandText, CancellationToken cancellationToken) + { + return FindEntriesAsync(commandText, false, null, null, cancellationToken); + } + + public Task>> FindEntriesAsync(string commandText, bool scalarResult) + { + return FindEntriesAsync(commandText, scalarResult, null, null, CancellationToken.None); + } + + public Task>> FindEntriesAsync(string commandText, bool scalarResult, CancellationToken cancellationToken) + { + return FindEntriesAsync(commandText, scalarResult, null, null, cancellationToken); + } + + public Task>> FindEntriesAsync(string commandText, ODataFeedAnnotations annotations) + { + return FindEntriesAsync(commandText, false, annotations, null, CancellationToken.None); + } + + public Task>> FindEntriesAsync(string commandText, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + return FindEntriesAsync(commandText, false, annotations, null, cancellationToken); + } + + public Task> FindEntryAsync(string commandText) + { + return FindEntryAsync(commandText, null, CancellationToken.None); + } + + public Task> FindEntryAsync(string commandText, CancellationToken cancellationToken) + { + return FindEntryAsync(commandText, null, cancellationToken); + } + + public Task FindScalarAsync(string commandText) + { + return FindScalarAsync(commandText, null, CancellationToken.None); + } + + public Task FindScalarAsync(string commandText, CancellationToken cancellationToken) + { + return FindScalarAsync(commandText, null, cancellationToken); + } + + public Task> GetEntryAsync(string collection, params object[] entryKey) + { + return GetEntryAsync(collection, CancellationToken.None, entryKey); + } + + public async Task> GetEntryAsync(string collection, CancellationToken cancellationToken, params object[] entryKey) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var entryKeyWithNames = new Dictionary(); + var entityCollection = Session.Metadata.GetEntityCollection(collection); + var keyNames = Session.Metadata.GetDeclaredKeyPropertyNames(entityCollection.Name).ToList(); + for (var index = 0; index < keyNames.Count; index++) + { + entryKeyWithNames.Add(keyNames[index], entryKey.ElementAt(index)); + } + + return await GetEntryAsync(collection, entryKeyWithNames, cancellationToken).ConfigureAwait(false); + } + + public Task> GetEntryAsync(string collection, IDictionary entryKey) + { + return GetEntryAsync(collection, entryKey, CancellationToken.None); + } + + public async Task> GetEntryAsync(string collection, IDictionary entryKey, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + var command = GetBoundClient() + .For(collection) + .Key(entryKey) + .AsBoundClient().Command.Resolve(Session); + + var requestBuilder = new RequestBuilder(command, Session, BatchWriter); + var request = await requestBuilder.GetRequestAsync(false, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntry(Session.Settings.IncludeAnnotationsInResults), () => null).ConfigureAwait(false); + } + + public Task> InsertEntryAsync(string collection, IDictionary entryData) + { + return InsertEntryAsync(collection, entryData, true, CancellationToken.None); + } + + public Task> InsertEntryAsync(string collection, IDictionary entryData, CancellationToken cancellationToken) + { + return InsertEntryAsync(collection, entryData, true, cancellationToken); + } + + public Task> InsertEntryAsync(string collection, IDictionary entryData, bool resultRequired) + { + return InsertEntryAsync(collection, entryData, resultRequired, CancellationToken.None); + } + + public async Task> InsertEntryAsync(string collection, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken) + { + RemoveAnnotationProperties(entryData); + + var command = GetBoundClient() + .For(collection) + .Set(entryData) + .AsBoundClient().Command; + + return await InsertEntryAsync(command, resultRequired, cancellationToken).ConfigureAwait(false); + } + + public Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData) + { + return UpdateEntryAsync(collection, entryKey, entryData, true, CancellationToken.None); + } + + public Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, CancellationToken cancellationToken) + { + return UpdateEntryAsync(collection, entryKey, entryData, true, cancellationToken); + } + + public Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, bool resultRequired) + { + return UpdateEntryAsync(collection, entryKey, entryData, resultRequired, CancellationToken.None); + } + + public async Task> UpdateEntryAsync(string collection, IDictionary entryKey, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken) + { + RemoveAnnotationProperties(entryKey); + RemoveAnnotationProperties(entryData); + + var command = GetBoundClient() + .For(collection) + .Key(entryKey) + .Set(entryData) + .AsBoundClient().Command; + + return await UpdateEntryAsync(command, resultRequired, cancellationToken).ConfigureAwait(false); + } + + public Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData) + { + return UpdateEntriesAsync(collection, commandText, entryData, true, CancellationToken.None); + } + + public Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, CancellationToken cancellationToken) + { + return UpdateEntriesAsync(collection, commandText, entryData, true, cancellationToken); + } + + public Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, bool resultRequired) + { + return UpdateEntriesAsync(collection, commandText, entryData, resultRequired, CancellationToken.None); + } + + public async Task>> UpdateEntriesAsync(string collection, string commandText, IDictionary entryData, bool resultRequired, CancellationToken cancellationToken) + { + RemoveAnnotationProperties(entryData); + + var command = GetBoundClient() + .For(collection) + .Filter(ExtractFilterFromCommandText(collection, commandText)) + .Set(entryData) + .AsBoundClient().Command; + + return await UpdateEntriesAsync(command, resultRequired, cancellationToken).ConfigureAwait(false); + } + + public Task DeleteEntryAsync(string collection, IDictionary entryKey) + { + return DeleteEntryAsync(collection, entryKey, CancellationToken.None); + } + + public async Task DeleteEntryAsync(string collection, IDictionary entryKey, CancellationToken cancellationToken) + { + RemoveAnnotationProperties(entryKey); + + var command = GetBoundClient() + .For(collection) + .Key(entryKey) + .AsBoundClient().Command; + + await DeleteEntryAsync(command, cancellationToken).ConfigureAwait(false); + } + + public Task DeleteEntriesAsync(string collection, string commandText) + { + return DeleteEntriesAsync(collection, commandText, CancellationToken.None); + } + + public async Task DeleteEntriesAsync(string collection, string commandText, CancellationToken cancellationToken) + { + var command = GetBoundClient() + .For(collection) + .Filter(ExtractFilterFromCommandText(collection, commandText)) + .AsBoundClient().Command; + + return await DeleteEntriesAsync(command, cancellationToken).ConfigureAwait(false); + } + + public Task LinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey) + { + return LinkEntryAsync(collection, entryKey, linkName, linkedEntryKey, CancellationToken.None); + } + + public async Task LinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + RemoveAnnotationProperties(entryKey); + RemoveAnnotationProperties(linkedEntryKey); + + var command = GetBoundClient() + .For(collection) + .Key(entryKey) + .AsBoundClient().Command; + + await LinkEntryAsync(command, linkName, linkedEntryKey, cancellationToken).ConfigureAwait(false); + } + + public Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName) + { + return UnlinkEntryAsync(collection, entryKey, linkName, null, CancellationToken.None); + } + + public Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, CancellationToken cancellationToken) + { + return UnlinkEntryAsync(collection, entryKey, linkName, null, cancellationToken); + } + + public Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey) + { + return UnlinkEntryAsync(collection, entryKey, linkName, linkedEntryKey, CancellationToken.None); + } + + public async Task UnlinkEntryAsync(string collection, IDictionary entryKey, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + RemoveAnnotationProperties(entryKey); + + var command = GetBoundClient() + .For(collection) + .Key(entryKey) + .AsBoundClient().Command; + + await UnlinkEntryAsync(command, linkName, linkedEntryKey, cancellationToken).ConfigureAwait(false); + } + + public Task GetMediaStreamAsync(string commandText) + { + return GetMediaStreamAsync(commandText, null, CancellationToken.None); + } + + public Task GetMediaStreamAsync(string commandText, CancellationToken cancellationToken) + { + return GetMediaStreamAsync(commandText, null, cancellationToken); + } + + public Task SetMediaStreamAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency) + { + return SetMediaStreamAsync(commandText, stream, contentType, optimisticConcurrency, null, CancellationToken.None); + } + + public Task SetMediaStreamAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken) + { + return SetMediaStreamAsync(commandText, stream, contentType, optimisticConcurrency, null, cancellationToken); + } + + public Task> ExecuteFunctionAsSingleAsync(string functionName, IDictionary parameters) + { + return ExecuteFunctionAsSingleAsync(functionName, parameters, CancellationToken.None); + } + + public async Task> ExecuteFunctionAsSingleAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var command = GetBoundClient() + .Function(functionName) + .Set(parameters) + .AsBoundClient().Command; + + var result = await ExecuteFunctionAsync(command.Resolve(Session), cancellationToken).ConfigureAwait(false); + return result?.FirstOrDefault(); + } + + public Task>> ExecuteFunctionAsEnumerableAsync(string functionName, IDictionary parameters) + { + return ExecuteFunctionAsEnumerableAsync(functionName, parameters, CancellationToken.None); + } + + public async Task>> ExecuteFunctionAsEnumerableAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var command = GetBoundClient() + .Function(functionName) + .Set(parameters) + .AsBoundClient().Command; + + return await ExecuteFunctionAsync(command.Resolve(Session), cancellationToken).ConfigureAwait(false); + } + + public Task ExecuteFunctionAsScalarAsync(string functionName, IDictionary parameters) + { + return ExecuteFunctionAsScalarAsync(functionName, parameters, CancellationToken.None); + } + + public async Task ExecuteFunctionAsScalarAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsScalar(); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteFunctionAsSingleAsync(functionName, parameters, cancellationToken).ConfigureAwait(false); + return (T)result.First().Value; + } + + public Task ExecuteFunctionAsArrayAsync(string functionName, IDictionary parameters) + { + return ExecuteFunctionAsArrayAsync(functionName, parameters, CancellationToken.None); + } + + public async Task ExecuteFunctionAsArrayAsync(string functionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsArray(); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteFunctionAsEnumerableAsync(functionName, parameters, cancellationToken).ConfigureAwait(false); + return IsBatchRequest + ? Array.Empty() + : result?.SelectMany(x => x.Values) + .Select(x => Session.TypeCache.Convert(x)) + .ToArray(); + } + + public Task ExecuteActionAsync(string actionName, IDictionary parameters) + { + return ExecuteActionAsync(actionName, parameters, CancellationToken.None); + } + + public async Task ExecuteActionAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var command = GetBoundClient() + .Action(actionName) + .Set(parameters) + .AsBoundClient().Command; + + await ExecuteActionAsync(command.Resolve(Session), cancellationToken).ConfigureAwait(false); + } + + public Task> ExecuteActionAsSingleAsync(string actionName, IDictionary parameters) + { + return ExecuteActionAsSingleAsync(actionName, parameters, CancellationToken.None); + } + + public async Task> ExecuteActionAsSingleAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var command = GetBoundClient() + .Action(actionName) + .Set(parameters) + .AsBoundClient().Command; + + var result = await ExecuteActionAsync(command.Resolve(Session), cancellationToken).ConfigureAwait(false); + return result?.FirstOrDefault(); + } + + public Task>> ExecuteActionAsEnumerableAsync(string actionName, IDictionary parameters) + { + return ExecuteActionAsEnumerableAsync(actionName, parameters, CancellationToken.None); + } + + public async Task>> ExecuteActionAsEnumerableAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var command = GetBoundClient() + .Action(actionName) + .Set(parameters) + .AsBoundClient().Command; + + return await ExecuteActionAsync(command.Resolve(Session), cancellationToken).ConfigureAwait(false); + } + + public Task ExecuteActionAsScalarAsync(string actionName, IDictionary parameters) + { + return ExecuteActionAsScalarAsync(actionName, parameters, CancellationToken.None); + } + + public async Task ExecuteActionAsScalarAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsScalar(); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteActionAsSingleAsync(actionName, parameters, cancellationToken).ConfigureAwait(false); + return (T)result.First().Value; + } + + public Task ExecuteActionAsArrayAsync(string actionName, IDictionary parameters) + { + return ExecuteActionAsArrayAsync(actionName, parameters, CancellationToken.None); + } + + public async Task ExecuteActionAsArrayAsync(string actionName, IDictionary parameters, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsArray(); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteActionAsEnumerableAsync(actionName, parameters, cancellationToken).ConfigureAwait(false); + return IsBatchRequest + ? Array.Empty() + : result?.SelectMany(x => x.Values) + .Select(x => Session.TypeCache.Convert(x)) + .ToArray(); + } + + public Task GetResponseAsync(ODataRequest request) + { + return GetResponseAsync(request, CancellationToken.None); + } + + public async Task GetResponseAsync(ODataRequest request, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse; + } + + ODataResponse EmptyResult() => ODataResponse.EmptyFeeds(Session.TypeCache); + if (IsBatchRequest) + { + return EmptyResult(); + } + + try + { + using var response = await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + var responseReader = Session.Adapter.GetResponseReader(); + return await responseReader.GetResponseAsync(response).ConfigureAwait(false); + } + catch (WebRequestException ex) + { + if (_settings.IgnoreResourceNotFoundException && ex.Code == HttpStatusCode.NotFound) + { + return EmptyResult(); + } + + throw; + } + } + + public Task GetResponseStreamAsync(ODataRequest request) + { + return GetResponseStreamAsync(request, CancellationToken.None); + } + + public Task GetResponseStreamAsync(ODataRequest request, CancellationToken cancellationToken) + { + return ExecuteGetStreamRequestAsync(request, cancellationToken); + } + + private async Task>> FindEntriesAsync( + string commandText, bool scalarResult, ODataFeedAnnotations annotations, IDictionary headers, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + if (annotations != null && BatchResponse.Feed != null) + { + annotations.CopyFrom(BatchResponse.Feed.Annotations); + } + + return BatchResponse.AsEntries(false); + } + + var result = await FindAnnotatedEntriesAsync(commandText, scalarResult, annotations, headers, cancellationToken).ConfigureAwait(false); + return result?.Select(x => x.GetData(Session.Settings.IncludeAnnotationsInResults)); + } + + private async Task> FindAnnotatedEntriesAsync( + string commandText, bool scalarResult, ODataFeedAnnotations annotations, IDictionary headers, CancellationToken cancellationToken) + { + var requestBuilder = new RequestBuilder(commandText, Session, BatchWriter, headers); + var request = await requestBuilder.GetRequestAsync(scalarResult, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await ExecuteRequestWithResultAsync(request, cancellationToken, x => + { + if (annotations != null && x.Feed != null) + { + annotations.CopyFrom(x.Feed.Annotations); + } + + return x.Feed?.Entries; + }, + () => Array.Empty()).ConfigureAwait(false); + } + + internal async Task>> FindEntriesAsync( + FluentCommand command, bool scalarResult, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + if (annotations != null && BatchResponse.Feed != null) + { + annotations.CopyFrom(BatchResponse.Feed.Annotations); + } + + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + + var result = await FindAnnotatedEntriesAsync(resolvedCommand.Format(), scalarResult, annotations, resolvedCommand.Details.Headers, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + await EnrichWithMediaPropertiesAsync(result, resolvedCommand, cancellationToken).ConfigureAwait(false); + return result?.Select(x => x.GetData(Session.Settings.IncludeAnnotationsInResults)); + } + + private async Task> FindEntryAsync(string commandText, IDictionary headers, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + var requestBuilder = new RequestBuilder(commandText, Session, BatchWriter, headers); + var request = await requestBuilder.GetRequestAsync(false, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntries(Session.Settings.IncludeAnnotationsInResults), + () => Array.Empty>()).ConfigureAwait(false); + return result?.FirstOrDefault(); + } + + internal async Task> FindEntryAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + + var results = await FindAnnotatedEntriesAsync(resolvedCommand.Format(), false, null, resolvedCommand.Details.Headers, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = results?.FirstOrDefault(); + + await EnrichWithMediaPropertiesAsync(result, command.Details.MediaProperties, cancellationToken).ConfigureAwait(false); + return result?.GetData(Session.Settings.IncludeAnnotationsInResults); + } + + private async Task FindScalarAsync(string commandText, IDictionary headers, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsScalar(); + } + + var requestBuilder = new RequestBuilder(commandText, Session, BatchWriter, headers); + var request = await requestBuilder.GetRequestAsync(true, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntries(Session.Settings.IncludeAnnotationsInResults), + () => Array.Empty>()).ConfigureAwait(false); + + static object extractScalar(IDictionary x) => (x == null) || (x.Count == 0) ? null : x.First().Value; + return result == null ? null : extractScalar(result.FirstOrDefault()); + } + + internal async Task FindScalarAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsScalar(); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + + return await FindScalarAsync(resolvedCommand.Format(), resolvedCommand.Details.Headers, cancellationToken).ConfigureAwait(false); + } + + internal async Task> InsertEntryAsync(FluentCommand command, bool resultRequired, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + var requestBuilder = new RequestBuilder(resolvedCommand, Session, BatchWriter); + var request = await requestBuilder.InsertRequestAsync(resultRequired, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntry(Session.Settings.IncludeAnnotationsInResults), () => null, () => resolvedCommand.CommandData).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var keyNames = Session.Metadata.GetDeclaredKeyPropertyNames(resolvedCommand.QualifiedEntityCollectionName); + if (result == null && resultRequired && Utils.AllMatch(keyNames, resolvedCommand.CommandData.Keys, Session.Settings.NameMatchResolver)) + { + result = await GetEntryAsync(request.CommandText, request.EntryData, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + + return result; + } + + internal async Task> UpdateEntryAsync(FluentCommand command, bool resultRequired, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + var requestBuilder = new RequestBuilder(resolvedCommand, Session, BatchWriter); + var request = await requestBuilder.UpdateRequestAsync(resultRequired, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var result = await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntry(Session.Settings.IncludeAnnotationsInResults), () => null, () => request.EntryData).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + if (result == null && resultRequired) + { + try + { + result = await GetUpdatedResult(resolvedCommand, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + catch (Exception) + { + } + } + + var entityCollection = Session.Metadata.GetEntityCollection(resolvedCommand.QualifiedEntityCollectionName); + var entryDetails = Session.Metadata.ParseEntryDetails(entityCollection.Name, request.EntryData); + + var removedLinks = entryDetails.Links + .SelectMany(x => x.Value.Where(y => y.LinkData == null)) + .Select(x => Session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, x.LinkName)) + .ToList(); + + foreach (var associationName in removedLinks) + { + try + { + var entryKey = resolvedCommand.Details.HasKey ? resolvedCommand.KeyValues : resolvedCommand.FilterAsKey; + await UnlinkEntryAsync(resolvedCommand.QualifiedEntityCollectionName, entryKey, associationName, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + catch (Exception) + { + } + } + + return result; + } + + internal async Task>> UpdateEntriesAsync(FluentCommand command, bool resultRequired, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + + return await IterateEntriesAsync( + resolvedCommand, resultRequired, + async (x, y, z, w) => await UpdateEntryAsync(x, y, z, w, cancellationToken).ConfigureAwait(false), + cancellationToken).ConfigureAwait(false); + } + + internal async Task DeleteEntryAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + var requestBuilder = new RequestBuilder(resolvedCommand, Session, BatchWriter); + var request = await requestBuilder.DeleteRequestAsync(cancellationToken).ConfigureAwait(false); + if (!IsBatchRequest) + { + using (await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false)) + { + } + } + } + + internal async Task DeleteEntriesAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return 0; + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + return await IterateEntriesAsync( + resolvedCommand, + async (x, y) => await DeleteEntryAsync(x, y, cancellationToken).ConfigureAwait(false), + cancellationToken).ConfigureAwait(false); + } + + internal async Task LinkEntryAsync(FluentCommand command, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + var requestBuilder = new RequestBuilder(resolvedCommand, Session, BatchWriter); + var request = await requestBuilder.LinkRequestAsync(linkName, linkedEntryKey, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + if (!IsBatchRequest) + { + using (await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false)) + { + } + } + } + + internal async Task UnlinkEntryAsync(FluentCommand command, string linkName, IDictionary linkedEntryKey, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + var requestBuilder = new RequestBuilder(resolvedCommand, Session, BatchWriter); + var request = await requestBuilder.UnlinkRequestAsync(linkName, linkedEntryKey, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + if (!IsBatchRequest) + { + using (await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false)) + { + } + } + } + + private async Task GetMediaStreamAsync(string commandText, IDictionary headers, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + throw new NotSupportedException("Media stream requests are not supported in batch mode."); + } + + var requestBuilder = new RequestBuilder(commandText, Session, BatchWriter, headers); + var request = await requestBuilder.GetRequestAsync(true, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + return await ExecuteGetStreamRequestAsync(request, cancellationToken).ConfigureAwait(false); + } + + internal async Task GetMediaStreamAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + throw new NotSupportedException("Media stream requests are not supported in batch mode."); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + return await GetMediaStreamAsync(resolvedCommand.Format(), command.Details.Headers, cancellationToken).ConfigureAwait(false); + } + + private async Task SetMediaStreamAsync(string commandText, Stream stream, string contentType, bool optimisticConcurrency, IDictionary headers, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + throw new NotSupportedException("Media stream requests are not supported in batch mode."); + } + + var requestBuilder = new RequestBuilder(commandText, Session, BatchWriter, headers); + var request = await requestBuilder.UpdateRequestAsync(stream, contentType, optimisticConcurrency, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + await ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + } + + internal async Task SetMediaStreamAsync(FluentCommand command, Stream stream, string contentType, bool optimisticConcurrency, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + throw new NotSupportedException("Media stream requests are not supported in batch mode."); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + await SetMediaStreamAsync(resolvedCommand.Format(), stream, contentType, optimisticConcurrency, resolvedCommand.Details.Headers, cancellationToken).ConfigureAwait(false); + } + + internal async Task ExecuteAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return; + } + + await ExecuteAsEnumerableAsync(command, cancellationToken).ConfigureAwait(false); + } + + internal async Task> ExecuteAsSingleAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntry(false); + } + + var result = await ExecuteAsEnumerableAsync(command, cancellationToken).ConfigureAwait(false); + return result?.FirstOrDefault(); + } + + internal async Task>> ExecuteAsEnumerableAsync(FluentCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + if (command.Details.HasFunction) + { + return await ExecuteFunctionAsync(resolvedCommand, annotations, cancellationToken).ConfigureAwait(false); + } + else if (command.Details.HasAction) + { + return await ExecuteActionAsync(resolvedCommand, annotations, cancellationToken).ConfigureAwait(false); + } + else + { + throw new InvalidOperationException("Command is expected to be a function or an action."); + } + } + + internal async Task>> ExecuteAsEnumerableAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsEntries(false); + } + + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + var resolvedCommand = command.Resolve(Session); + if (command.Details.HasFunction) + { + return await ExecuteFunctionAsync(resolvedCommand, cancellationToken).ConfigureAwait(false); + } + else if (command.Details.HasAction) + { + return await ExecuteActionAsync(resolvedCommand, cancellationToken).ConfigureAwait(false); + } + else + { + throw new InvalidOperationException("Command is expected to be a function or an action."); + } + } + + internal async Task ExecuteAsScalarAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsScalar(); + } + + var result = await ExecuteAsSingleAsync(command, cancellationToken).ConfigureAwait(false); + return IsBatchRequest + ? default(T) + : result == null + ? default(T) + : Session.TypeCache.Convert(result.First().Value); + } + + internal async Task ExecuteAsArrayAsync(FluentCommand command, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsArray(); + } + + var result = await ExecuteAsEnumerableAsync(command, cancellationToken).ConfigureAwait(false); + return IsBatchRequest + ? Array.Empty() + : result == null + ? null + : typeof(T) == typeof(string) || typeof(T).IsValue() + ? result.SelectMany(x => x.Values).Select(x => Session.TypeCache.Convert(x)).ToArray() + : result.Select(x => (T)x.ToObject(Session.TypeCache, typeof(T))).ToArray(); + } + + internal async Task ExecuteAsArrayAsync(FluentCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + if (IsBatchResponse) + { + return BatchResponse.AsArray(); + } + + var result = await ExecuteAsEnumerableAsync(command, annotations, cancellationToken).ConfigureAwait(false); + return IsBatchRequest + ? Array.Empty() + : result == null + ? null + : typeof(T) == typeof(string) || typeof(T).IsValue() + ? result.SelectMany(x => x.Values).Select(x => Session.TypeCache.Convert(x)).ToArray() + : result.Select(x => (T)x.ToObject(Session.TypeCache, typeof(T))).ToArray(); + } + + internal async Task ExecuteBatchAsync(IList> actions, IDictionary headers, CancellationToken cancellationToken) + { + await Session.ResolveAdapterAsync(cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + await ExecuteBatchActionsAsync(actions, headers, cancellationToken).ConfigureAwait(false); + } + + private string ExtractFilterFromCommandText(string collection, string commandText) + { + const string filterPrefix = "?$filter="; + + if (commandText.Length > filterPrefix.Length && + commandText.Substring(0, collection.Length + filterPrefix.Length).Equals( + collection + filterPrefix, StringComparison.CurrentCultureIgnoreCase)) + { + return commandText.Substring(collection.Length + filterPrefix.Length); + } + else + { + return commandText; + } + } +} diff --git a/src/Simple.OData.Client.Core/ODataClient.Internals.cs b/src/Simple.OData.Client.Core/ODataClient.Internals.cs new file mode 100644 index 000000000..16a240d0b --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataClient.Internals.cs @@ -0,0 +1,376 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Threading; +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public partial class ODataClient +{ + private async Task> GetUpdatedResult(ResolvedCommand command, CancellationToken cancellationToken) + { + var entryKey = command.Details.HasKey ? command.KeyValues : command.FilterAsKey; + var entryData = command.CommandData; + + var updatedKey = entryKey.Where(x => !entryData.ContainsKey(x.Key)).ToIDictionary(); + foreach (var item in entryData.Where(x => entryKey.ContainsKey(x.Key))) + { + updatedKey.Add(item); + } + + var updatedCommand = new FluentCommand(command).Key(updatedKey); + return await FindEntryAsync(updatedCommand.Resolve(Session).Format(), cancellationToken).ConfigureAwait(false); + } + + private async Task>> ExecuteFunctionAsync(ResolvedCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + var request = await Session.Adapter.GetRequestWriter(BatchWriter) + .CreateFunctionRequestAsync(command.Format(), command.Details.FunctionName, command.Details.Headers).ConfigureAwait(false); + + return await ExecuteRequestWithResultAsync(request, cancellationToken, + x => + { + var result = x.AsEntries(Session.Settings.IncludeAnnotationsInResults); + if (annotations != null && x.Feed != null) + { + annotations.CopyFrom(x.Feed.Annotations); + } + + return result; + }, + () => Array.Empty>()).ConfigureAwait(false); + } + + private async Task>> ExecuteFunctionAsync(ResolvedCommand command, CancellationToken cancellationToken) + { + var request = await Session.Adapter.GetRequestWriter(BatchWriter) + .CreateFunctionRequestAsync(command.Format(), command.Details.FunctionName, command.Details.Headers).ConfigureAwait(false); + + return await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntries(Session.Settings.IncludeAnnotationsInResults), + () => Array.Empty>()).ConfigureAwait(false); + } + + private async Task>> ExecuteActionAsync(ResolvedCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) + { + var entityTypeName = command.EntityCollection != null + ? Session.Metadata.GetQualifiedTypeName(command.EntityCollection.Name) + : null; + var request = await Session.Adapter.GetRequestWriter(BatchWriter) + .CreateActionRequestAsync(command.Format(), command.Details.ActionName, entityTypeName, command.CommandData, true, command.Details.Headers).ConfigureAwait(false); + + return await ExecuteRequestWithResultAsync(request, cancellationToken, + x => + { + var result = x.AsEntries(Session.Settings.IncludeAnnotationsInResults); + if (annotations != null && x.Feed != null) + { + annotations.CopyFrom(x.Feed.Annotations); + } + + return result; + }, + () => Array.Empty>()).ConfigureAwait(false); + } + + private async Task>> ExecuteActionAsync(ResolvedCommand command, CancellationToken cancellationToken) + { + var entityTypeName = command.EntityCollection != null + ? Session.Metadata.GetQualifiedTypeName(command.EntityCollection.Name) + : null; + var request = await Session.Adapter.GetRequestWriter(BatchWriter) + .CreateActionRequestAsync(command.Format(), command.Details.ActionName, entityTypeName, command.CommandData, true, command.Details.Headers).ConfigureAwait(false); + + return await ExecuteRequestWithResultAsync(request, cancellationToken, + x => x.AsEntries(Session.Settings.IncludeAnnotationsInResults), + () => Array.Empty>()).ConfigureAwait(false); + } + + private async Task ExecuteBatchActionsAsync(IList> actions, IDictionary headers, CancellationToken cancellationToken) + { + if (!actions.Any()) + { + return; + } + + var responseIndexes = new List(); + var request = await BatchWriter.Value.CreateBatchRequestAsync(this, actions, responseIndexes, headers).ConfigureAwait(false); + if (request != null) + { + // Execute batch and get response + using var response = await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + var responseReader = Session.Adapter.GetResponseReader(); + var batchResponse = await responseReader.GetResponseAsync(response).ConfigureAwait(false); + + // Replay batch operations to assign results + await responseReader.AssignBatchActionResultsAsync(this, batchResponse, actions, responseIndexes).ConfigureAwait(false); + } + } + + private async Task ExecuteRequestAsync(ODataRequest request, CancellationToken cancellationToken) + { + if (IsBatchRequest) + { + return; + } + + try + { + using (await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false)) + { + } + } + catch (WebRequestException ex) + { + if (_settings.IgnoreResourceNotFoundException && ex.Code == HttpStatusCode.NotFound) + { + return; + } + else + { + throw; + } + } + } + + private async Task ExecuteRequestWithResultAsync(ODataRequest request, CancellationToken cancellationToken, + Func createResult, Func createEmptyResult, Func createBatchResult = null) + { + if (IsBatchRequest) + { + return createBatchResult != null + ? createBatchResult() + : createEmptyResult != null + ? createEmptyResult() + : default(T); + } + + try + { + using var response = await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + if (response.IsSuccessStatusCode && response.StatusCode != HttpStatusCode.NoContent && + (request.Method == RestVerbs.Get || request.ResultRequired)) + { + var responseReader = Session.Adapter.GetResponseReader(); + return createResult(await responseReader.GetResponseAsync(response).ConfigureAwait(false)); + } + else + { + return default(T); + } + } + catch (WebRequestException ex) + { + if (_settings.IgnoreResourceNotFoundException && ex.Code == HttpStatusCode.NotFound) + { + return createEmptyResult != null ? createEmptyResult() : default(T); + } + else + { + throw; + } + } + } + + private async Task ExecuteGetStreamRequestAsync(ODataRequest request, CancellationToken cancellationToken) + { + if (IsBatchRequest) + { + return Stream.Null; + } + + try + { + using var response = await _requestRunner.ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + if (response.IsSuccessStatusCode && response.StatusCode != HttpStatusCode.NoContent && + (request.Method == RestVerbs.Get || request.ResultRequired)) + { + var stream = new MemoryStream(); + await response.Content.CopyToAsync(stream); + if (stream.CanSeek) + { + stream.Seek(0L, SeekOrigin.Begin); + } + + return stream; + } + else + { + return Stream.Null; + } + } + catch (WebRequestException ex) + { + if (_settings.IgnoreResourceNotFoundException && ex.Code == HttpStatusCode.NotFound) + { + return Stream.Null; + } + else + { + throw; + } + } + } + + private async Task>> IterateEntriesAsync( + ResolvedCommand command, bool resultRequired, + Func, IDictionary, bool, Task>> funcAsync, CancellationToken cancellationToken) + { + var collectionName = command.QualifiedEntityCollectionName; + var entryData = command.CommandData; + + IEnumerable> result = null; + var client = new ODataClient(this); + var entries = await client.FindEntriesAsync(command.Format(), cancellationToken).ConfigureAwait(false); + if (entries != null) + { + var entryList = entries.ToList(); + var resultList = new List>(); + foreach (var entry in entryList) + { + resultList.Add(await funcAsync(collectionName, entry, entryData, resultRequired).ConfigureAwait(false)); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + + result = resultList; + } + + return result; + } + + private async Task IterateEntriesAsync(ResolvedCommand command, + Func, Task> funcAsync, CancellationToken cancellationToken) + { + var collectionName = command.QualifiedEntityCollectionName; + + var result = 0; + var client = new ODataClient(this); + var entries = await client.FindEntriesAsync(command.Format(), cancellationToken).ConfigureAwait(false); + if (entries != null) + { + var entryList = entries.ToList(); + foreach (var entry in entryList) + { + await funcAsync(collectionName, entry).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + ++result; + } + } + + return result; + } + + private void RemoveAnnotationProperties(IDictionary entryData, IList actions = null) + { + var runActionsOnExist = false; + if (actions == null) + { + actions = new List(); + runActionsOnExist = true; + } + + if (!_settings.IncludeAnnotationsInResults) + { + foreach (var entry in entryData) + { + var key = entry.Key; + if (key == FluentCommand.AnnotationsLiteral || key.StartsWith(FluentCommand.AnnotationsLiteral + "_")) + { + actions.Add(() => entryData.Remove(key)); + } + } + + var nestedEntries = entryData.Where(x => x.Value is IDictionary); + foreach (var nestedEntry in nestedEntries) + { + RemoveAnnotationProperties(nestedEntry.Value as IDictionary, actions); + } + + nestedEntries = entryData.Where(x => x.Value is IList>); + foreach (var nestedEntry in nestedEntries) + { + foreach (var element in nestedEntry.Value as IList>) + { + RemoveAnnotationProperties(element, actions); + } + } + } + + if (runActionsOnExist) + { + foreach (var action in actions) + { + action(); + } + } + } + + private async Task EnrichWithMediaPropertiesAsync(IEnumerable entries, ResolvedCommand command, CancellationToken cancellationToken) + { + if (entries != null) + { + foreach (var entry in entries) + { + await EnrichWithMediaPropertiesAsync(entry, command.Details.MediaProperties, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + } + } + } + + private async Task EnrichWithMediaPropertiesAsync(AnnotatedEntry entry, IEnumerable mediaProperties, CancellationToken cancellationToken) + { + if (entry != null && mediaProperties != null) + { + var entityMediaPropertyName = mediaProperties.FirstOrDefault(x => !entry.Data.ContainsKey(x)); + entityMediaPropertyName ??= FluentCommand.AnnotationsLiteral; + if (entry.Annotations != null) + { + await GetMediaStreamValueAsync(entry.Data, entityMediaPropertyName, entry.Annotations.MediaResource, cancellationToken).ConfigureAwait(false); + } + + foreach (var propertyName in mediaProperties) + { + if (entry.Data.TryGetValue(propertyName, out var value)) + { + await GetMediaStreamValueAsync(entry.Data, propertyName, value as ODataMediaAnnotations, cancellationToken).ConfigureAwait(false); + } + } + } + } + + private async Task GetMediaStreamValueAsync(IDictionary entry, string propertyName, ODataMediaAnnotations annotations, CancellationToken cancellationToken) + { + var mediaLink = annotations == null ? null : annotations.ReadLink ?? annotations.EditLink; + if (mediaLink != null) + { + var stream = await GetMediaStreamAsync(mediaLink.AbsoluteUri, cancellationToken).ConfigureAwait(false); + if (cancellationToken.IsCancellationRequested) + { + cancellationToken.ThrowIfCancellationRequested(); + } + + if (entry.TryGetValue(propertyName, out _)) + { + entry[propertyName] = stream; + } + else + { + entry.Add(propertyName, stream); + } + } + } +} diff --git a/src/Simple.OData.Client.Core/ODataClient.cs b/src/Simple.OData.Client.Core/ODataClient.cs new file mode 100644 index 000000000..e9289c9ea --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataClient.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +/// +/// Provides access to OData operations. +/// +public partial class ODataClient : IODataClient +{ + private readonly ODataClientSettings _settings; + private readonly RequestRunner _requestRunner; + + /// + /// Initializes a new instance of the class. + /// + /// The OData service URL. + /// + /// This constructor overload is obsolete. Use constructor overload./> + /// + public ODataClient(string baseUri) + : this(new ODataClientSettings { BaseUri = new Uri(baseUri) }) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The OData service URL. + public ODataClient(Uri baseUri) + : this(new ODataClientSettings { BaseUri = baseUri }) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The OData client settings. + public ODataClient(ODataClientSettings settings) + { + _settings = settings; + Session = Session.FromSettings(_settings); + _requestRunner = new RequestRunner(Session); + } + + internal ODataClient(ODataClientSettings settings, ConcurrentDictionary> batchEntries) + : this(settings) + { + if (batchEntries != null) + { + BatchEntries = batchEntries; + BatchWriter = new Lazy(() => Session.Adapter.GetBatchWriter(BatchEntries)); + } + } + + internal ODataClient(ODataClient client) + { + _settings = client._settings; + Session = client.Session; + _requestRunner = client._requestRunner; + } + + internal ODataClient(ODataClient client, ConcurrentDictionary> batchEntries) + : this(client) + { + if (batchEntries != null) + { + BatchEntries = batchEntries; + BatchWriter = new Lazy(() => Session.Adapter.GetBatchWriter(BatchEntries)); + } + } + + internal ODataClient(ODataClient client, ODataResponse batchResponse) + { + _settings = client._settings; + Session = client.Session; + BatchResponse = batchResponse; + } + + internal Session Session { get; private set; } + internal ODataResponse BatchResponse { get; private set; } + internal bool IsBatchRequest => BatchWriter != null; + internal bool IsBatchResponse => BatchResponse != null; + internal ConcurrentDictionary> BatchEntries { get; private set; } + internal Lazy BatchWriter { get; private set; } + + /// + /// Parses the OData service metadata string. + /// + /// OData protocol specific metadata interface + /// The metadata string. + /// + /// The service metadata. + /// + public static T ParseMetadataString(string metadataString) + { + var session = Session.FromMetadata(new Uri("http://localhost/" + metadataString.GetHashCode() + "$metadata"), metadataString); + return (T)session.Adapter.Model; + } + + /// + /// Clears service metadata cache. + /// + public static void ClearMetadataCache() + { + EdmMetadataCache.Clear(); + } + + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// Name of the collection. + /// + /// The fluent OData client instance. + /// + public IBoundClient> For(string collectionName) + { + return GetBoundClient().For(collectionName); + } + + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// Collection expression. + /// + /// The fluent OData client instance. + /// + public IBoundClient For(ODataExpression expression) + { + return new BoundClient(this, Session).For(expression); + } + + /// + /// Returns an instance of a fluent OData client for the specified collection. + /// + /// The entity type. + /// Name of the collection. + /// + /// The fluent OData client instance. + /// + public IBoundClient For(string collectionName = null) + where T : class + { + return new BoundClient(this, Session).For(collectionName); + } + + /// + /// Returns an instance of a fluent OData client for unbound operations (functions and actions). + /// + /// The fluent OData client instance. + public IUnboundClient Unbound() + { + return GetUnboundClient(); + } + + /// + /// Returns an instance of a fluent OData client for unbound operations (functions and actions). + /// + /// The fluent OData client instance. + public IUnboundClient Unbound() + where T : class + { + return GetUnboundClient(); + } + + private BoundClient> GetBoundClient() + { + return new BoundClient>(this, Session); + } + + private UnboundClient GetUnboundClient() + where T : class + { + return new UnboundClient(this, Session); + } + + /// + /// Allows callers to manipulate the request headers in between request executions. + /// Useful for retrieval of x-csrf-tokens when you want to update the request header + /// with the retrieved token on subsequent requests. + /// + /// Note that this overrides any current method. + /// + /// + /// The list of headers to update. + public void UpdateRequestHeaders(Dictionary> headers) + { + _settings.BeforeRequest += (request) => + { + foreach (var header in headers) + { + if (request.Headers.Contains(header.Key)) + { + request.Headers.Remove(header.Key); + } + + request.Headers.Add(header.Key, header.Value); + } + }; + } +} diff --git a/src/Simple.OData.Client.Core/ODataClientSettings.cs b/src/Simple.OData.Client.Core/ODataClientSettings.cs new file mode 100644 index 000000000..5fb1d5f7c --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataClientSettings.cs @@ -0,0 +1,404 @@ +using System; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +/// +/// OData client configuration settings +/// +public class ODataClientSettings +{ + private readonly INameMatchResolver _defaultNameMatchResolver = new BestMatchResolver(); + private INameMatchResolver _nameMatchResolver; + private readonly IODataAdapterFactory _defaultAdapterFactory = new ODataAdapterFactory(); + private IODataAdapterFactory _adapterFactory; + private Uri _baseOrRelativeUri; + + /// + /// Gets or sets external instance of HttpClient to be used when issuing OData requests. + /// + /// + /// The instance of . + /// + public HttpClient HttpClient { get; private set; } + + /// + /// Gets or sets the OData service URL. + /// + /// + /// The URL address. + /// + public Uri BaseUri + { + get + { + if (HttpClient != null && HttpClient.BaseAddress != null) + { + if (_baseOrRelativeUri != null) + { + return new Uri(HttpClient.BaseAddress, _baseOrRelativeUri); + } + else + { + return HttpClient.BaseAddress; + } + } + else + { + return _baseOrRelativeUri; + } + } + set + { + if (value != null && value.IsAbsoluteUri && HttpClient != null && HttpClient.BaseAddress != null) + { + throw new InvalidOperationException("Unable to set BaseUri when BaseAddress is specified on HttpClient."); + } + + _baseOrRelativeUri = value; + } + } + + /// + /// Gets or sets the OData client credentials. + /// + /// + /// The client credentials. + /// + public ICredentials Credentials { get; set; } + + /// + /// Gets or sets the OData payload format. + /// + /// + /// The payload format (JSON or Atom). + /// + public ODataPayloadFormat PayloadFormat { get; set; } + + /// + /// Gets or sets the time period to wait before the request times out. + /// + /// + /// The timeout. + /// + public TimeSpan RequestTimeout { get; set; } + + /// + /// Gets or sets a value indicating whether entry properties should be extended with the OData annotations. + /// + /// + /// true to include OData annotations in entry properties; otherwise, false. + /// + public bool IncludeAnnotationsInResults { get; set; } + + /// + /// Gets or sets a value indicating whether resource not found exception (404) should be ignored. + /// + /// + /// true to ignore resource not found exception; otherwise, false. + /// + public bool IgnoreResourceNotFoundException { get; set; } + + /// + /// Gets or sets a value indicating whether unmapped structural or navigation properties should be ignored or cause . + /// + /// + /// true to ignore unmapped properties; otherwise, false. + /// + public bool IgnoreUnmappedProperties { get; set; } + + /// + /// Gets or sets a preferred update method for OData entries. The selected method will be used wherever it's compatible with the update scenario. + /// If not specified, PATCH is preferred due to better performance. + /// + /// + /// The update method (PUT or PATCH). + /// + public ODataUpdateMethod PreferredUpdateMethod { get; set; } + + /// + /// Gets or sets the OData service metadata document. If not set, service metadata is downloaded prior to the first call to the OData service and stored in an in-memory cache. + /// + /// + /// The content of the service metadata document. + /// + public string MetadataDocument { get; set; } + + /// + /// Gets the associated with the uri, used to register converters and dynamic types. + /// + public ITypeCache TypeCache + { + get + { + if (BaseUri == null) + { + throw new InvalidOperationException("Assign BaseUri before accessing TypeCache"); + } + + return TypeCaches.TypeCache(BaseUri.AbsoluteUri, NameMatchResolver); + } + } + + /// + /// Gets or sets a value indicating whether connection should be disposed and renewed between OData requests. + /// + /// + /// true to create a new instance for each request; false to reuse between requests. + /// + public bool RenewHttpConnection { get; set; } + + /// + /// Gets or sets a value indicating whether should omit namespaces for function and action calls in generated URI. + /// + /// + /// true to omit namespaces for function and action calls in generated URI; false otherwise. + /// + public bool UnqualifiedNameCall { get; set; } + + /// + /// Gets or sets a value indicating whether should omit type prefix for Enum values in generated URI. + /// + /// + /// true to omit type prefix for Enum values in generated URI; false otherwise. + /// + public bool EnumPrefixFree { get; set; } + + /// + /// Gets or sets a name resolver for OData resources, types and properties. + /// + /// + /// If not set, a built-in word pluralizer is used to resolve resource, type and property names. + /// + public INameMatchResolver NameMatchResolver + { + get => _nameMatchResolver ?? _defaultNameMatchResolver; + set => _nameMatchResolver = value; + } + + /// + /// Gets or sets the adapter factory that is used by the session + /// + public IODataAdapterFactory AdapterFactory + { + get => _adapterFactory ?? _defaultAdapterFactory; + set => _adapterFactory = value; + } + + /// + /// Gets or sets the HttpMessageHandler factory used by HttpClient. + /// If not set, ODataClient creates an instance of HttpClientHandler. + /// + /// + /// The action on . + /// + public Func OnCreateMessageHandler { get; set; } + + /// + /// Gets or sets the action on HttpClientHandler. + /// + /// + /// The action on . + /// + public Action OnApplyClientHandler { get; set; } + + /// + /// Gets or sets the handler that executes and returns . + /// Can be used to mock OData request execution without sending messages to the server. + /// + /// + /// The executor. + /// + public Func> RequestExecutor { get; set; } + + /// + /// Gets or sets the action executed before the OData request. + /// + /// + /// The action on . + /// + public Action BeforeRequest { get; set; } + + /// + /// Gets or sets the action executed before the OData request. + /// + /// + /// The action on . + /// + public Func BeforeRequestAsync { get; set; } + + /// + /// Gets or sets the action executed after the OData request. + /// + /// + /// The action on . + /// + public Action AfterResponse { get; set; } + + /// + /// Gets or sets the action executed after the OData request. + /// + /// + /// The action on . + /// + public Func AfterResponseAsync { get; set; } + + /// + /// Gets or sets the method that will be executed to write trace messages. + /// + /// + /// The trace message handler. + /// + public Action OnTrace { get; set; } + + /// + /// Gets or sets the filter of information that is written to trace messages. + /// + /// + /// The filter value. + /// + public ODataTrace TraceFilter { get; set; } + + /// + /// Gets or sets a value indicating whether reference uris should be written as absolute uris instead of relative uris. + /// + /// + /// true to extend reference links to absolute uris; otherwise, false. + /// + /// + public bool UseAbsoluteReferenceUris { get; set; } + + /// + /// Gets or sets the value that indicates either to read untyped properties as strings. + /// + /// + /// true (Default) to read untyped values as strings; false otherwise. + /// + public bool ReadUntypedAsString { get; set; } = true; + + /// + /// Gets or sets the BatchPayloadUriOption to use when building a batch request payload. + /// Only available for OData V4. + /// + /// + /// AbsoluteUri (Default) to use absolute URIs for the batch payload. + /// + /// + /// AbsoluteUriUsingHostHeader to use absolute URIs from the Host header for the batch payload. + /// + /// + /// RelativeUri to use relative URIs for the batch payload. + /// + public BatchPayloadUriOption BatchPayloadUriOption { get; set; } = BatchPayloadUriOption.AbsoluteUri; + + /// + /// Gets or sets the source of the message of web request exceptions. + /// + /// + /// ReasonPhrase (Default) to output the reason phrase of the HTTP request message. + /// + /// + /// ResponseContent (Default) to output the content of the HTTP request message. + /// + /// /// + /// Both (Default) to output both the reason phrase and the content of the HTTP request message. + /// + public WebRequestExceptionMessageSource WebRequestExceptionMessageSource { get; set; } + + /// + /// Gets or sets validations to perform. Default value is , + /// + public ValidationKinds Validations { get; set; } = ValidationKinds.All; + + /// + /// Initializes a new instance of the class. + /// + public ODataClientSettings() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The URL address. + /// The client credentials. + [Obsolete("Use of string-typed baseUri is deprecated, please use Uri-typed baseUri instead.")] + public ODataClientSettings(string baseUri, ICredentials credentials = null) + { + BaseUri = new Uri(baseUri); + Credentials = credentials; + } + + /// + /// Initializes a new instance of the class. + /// + /// The URL address. + /// The client credentials. + public ODataClientSettings(Uri baseUri, ICredentials credentials = null) + { + BaseUri = baseUri; + Credentials = credentials; + } + + /// + /// Initializes a new instance of the class. + /// + /// The instance of . + /// The URL address. + /// The client credentials. + public ODataClientSettings(HttpClient httpClient, Uri relativeUri = null, ICredentials credentials = null) + { + if (httpClient != null && httpClient.BaseAddress != null && !httpClient.BaseAddress.IsAbsoluteUri) + { + throw new ArgumentException("HttpClient BaseAddress must be an absolute URI", nameof(httpClient)); + } + + if (relativeUri != null && relativeUri.IsAbsoluteUri) + { + throw new ArgumentException("Must be a relative URI", nameof(relativeUri)); + } + + if (httpClient != null && httpClient.BaseAddress == null && relativeUri != null) + { + throw new ArgumentException("Must not specify relative URI when HttpClient has no BaseAddress", nameof(relativeUri)); + } + + HttpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); + BaseUri = relativeUri; + Credentials = credentials; + } + + internal ODataClientSettings(ISession session) + { + BaseUri = session.Settings.BaseUri; + Credentials = session.Settings.Credentials; + PayloadFormat = session.Settings.PayloadFormat; + RequestTimeout = session.Settings.RequestTimeout; + IncludeAnnotationsInResults = session.Settings.IncludeAnnotationsInResults; + IgnoreResourceNotFoundException = session.Settings.IgnoreResourceNotFoundException; + IgnoreUnmappedProperties = session.Settings.IgnoreUnmappedProperties; + PreferredUpdateMethod = session.Settings.PreferredUpdateMethod; + MetadataDocument = session.Settings.MetadataDocument; + RenewHttpConnection = session.Settings.RenewHttpConnection; + UnqualifiedNameCall = session.Settings.UnqualifiedNameCall; + EnumPrefixFree = session.Settings.EnumPrefixFree; + NameMatchResolver = session.Settings.NameMatchResolver; + AdapterFactory = session.Settings.AdapterFactory; + OnCreateMessageHandler = session.Settings.OnCreateMessageHandler; + OnApplyClientHandler = session.Settings.OnApplyClientHandler; + HttpClient = session.Settings.HttpClient; + RequestExecutor = session.Settings.RequestExecutor; + BeforeRequest = session.Settings.BeforeRequest; + BeforeRequestAsync = session.Settings.BeforeRequestAsync; + AfterResponse = session.Settings.AfterResponse; + AfterResponseAsync = session.Settings.AfterResponseAsync; + OnTrace = session.Settings.OnTrace; + TraceFilter = session.Settings.TraceFilter; + UseAbsoluteReferenceUris = session.Settings.UseAbsoluteReferenceUris; + ReadUntypedAsString = session.Settings.ReadUntypedAsString; + WebRequestExceptionMessageSource = session.Settings.WebRequestExceptionMessageSource; + BatchPayloadUriOption = session.Settings.BatchPayloadUriOption; + } +} diff --git a/src/Simple.OData.Client.Core/ODataEntry.cs b/src/Simple.OData.Client.Core/ODataEntry.cs new file mode 100644 index 000000000..ed19c2b30 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataEntry.cs @@ -0,0 +1,88 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client; + +/// +/// A container for an OData entry properties. Normally not used directly by the client code. +/// +public class ODataEntry +{ + /// + /// The content of the OData entry. + /// + protected Dictionary _entry; + + /// + /// Initializes a new instance of the class. + /// + public ODataEntry() + { + _entry = new Dictionary(); + } + + /// + /// Initializes a new instance of the class. + /// + /// The collection of entry properties. + public ODataEntry(IDictionary entry) + { + _entry = new Dictionary(entry); + } + + /// + /// Gets or sets the value of the specified property. + /// + /// + /// The property value. + /// + /// The property name. + /// The property value. + public object this[string key] + { + get => _entry[key]; + set + { + if (_entry.ContainsKey(key)) + { + _entry[key] = value; + } + else + { + _entry.Add(key, value); + } + } + } + + /// + /// Returns OData entry properties as dictionary. + /// + /// A dictionary of OData entry properties. + public IDictionary AsDictionary() + { + return _entry; + } + + /// + /// Performs an explicit conversion from to . + /// + /// The property collection. + /// + /// The result of the conversion. + /// + public static explicit operator ODataEntry(Dictionary entry) + { + return new ODataEntry() { _entry = entry }; + } + + /// + /// Performs an explicit conversion from to . + /// + /// The OData entry. + /// + /// The result of the conversion. + /// + public static explicit operator Dictionary(ODataEntry entry) + { + return entry._entry; + } +} diff --git a/src/Simple.OData.Client.Core/ODataEntryAnnotations.cs b/src/Simple.OData.Client.Core/ODataEntryAnnotations.cs new file mode 100644 index 000000000..f060c7355 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataEntryAnnotations.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +/// +/// Contains additional information about OData entry +/// +public class ODataEntryAnnotations +{ + /// + /// Contains additional information about OData association links + /// + public class AssociationLink + { + /// + /// The association name. + /// + public string Name { get; set; } + + /// + /// The association URI. + /// + public Uri Uri { get; set; } + } + + /// + /// The entry ID. + /// + public string Id { get; set; } + + /// + /// The type name of the entry. + /// + public string TypeName { get; set; } + + /// + /// The link that can be used to read the entry. + /// + public Uri ReadLink { get; set; } + + /// + /// The link can be used to edit the entry. + /// + public Uri EditLink { get; set; } + + /// + /// The entry ETag. + /// + public string ETag { get; set; } + + /// + /// The collection of entry association links. + /// + public IEnumerable AssociationLinks { get; set; } + + /// + /// The media resource annotations. + /// + public ODataMediaAnnotations MediaResource { get; set; } + + /// + /// Custom feed annotations. + /// + public IEnumerable InstanceAnnotations { get; internal set; } + + /// + /// Custom feed annotations returned as an adapter-specific annotation type + /// + /// Custom type + /// + public IEnumerable GetInstanceAnnotations() + { + return InstanceAnnotations.Select(x => (T)x); + } + + internal void CopyFrom(ODataEntryAnnotations src) + { + if (src != null) + { + Id = src.Id; + TypeName = src.TypeName; + ReadLink = src.ReadLink; + EditLink = src.EditLink; + ETag = src.ETag; + AssociationLinks = src.AssociationLinks; + MediaResource = src.MediaResource; + InstanceAnnotations = src.InstanceAnnotations; + } + else + { + Id = null; + TypeName = null; + ReadLink = null; + EditLink = null; + ETag = null; + AssociationLinks = null; + MediaResource = null; + InstanceAnnotations = null; + } + } + + internal void Merge(ODataEntryAnnotations src) + { + if (src != null) + { + Id ??= src.Id; + TypeName ??= src.TypeName; + ReadLink ??= src.ReadLink; + EditLink ??= src.EditLink; + ETag ??= src.ETag; + AssociationLinks ??= src.AssociationLinks; + MediaResource ??= src.MediaResource; + InstanceAnnotations ??= src.InstanceAnnotations; + } + } +} diff --git a/src/Simple.OData.Client.Core/ODataExpandAssociation.cs b/src/Simple.OData.Client.Core/ODataExpandAssociation.cs new file mode 100644 index 000000000..ebc97e2d9 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataExpandAssociation.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +public class ODataExpandAssociation : IEquatable +{ + public ODataExpandAssociation(string name) + { + if (string.IsNullOrEmpty(name)) + { + throw new ArgumentException($"Parameter {nameof(name)} should not be null or empty.", nameof(name)); + } + + Name = name; + } + + public string Name { get; } + + public List ExpandAssociations { get; } = new List(); + + public List OrderByColumns { get; } = new List(); + + public ODataExpression FilterExpression { get; set; } + + public static ODataExpandAssociation From(string association) + { + if (string.IsNullOrEmpty(association)) + { + throw new ArgumentException($"Parameter {nameof(association)} should not be null or empty.", nameof(association)); + } + + var items = association.Split('/'); + var expandAssociation = new ODataExpandAssociation(items.First()); + var currentAssociation = expandAssociation; + foreach (var item in items.Skip(1)) + { + currentAssociation.ExpandAssociations.Add(new ODataExpandAssociation(item)); + currentAssociation = currentAssociation.ExpandAssociations.First(); + } + + return expandAssociation; + } + + public ODataExpandAssociation Clone() + { + var clone = new ODataExpandAssociation(Name); + clone.ExpandAssociations.AddRange(ExpandAssociations.Select(a => a.Clone())); + clone.FilterExpression = FilterExpression; + clone.OrderByColumns.AddRange(OrderByColumns); + return clone; + } + + public bool Equals(ODataExpandAssociation other) + { + if (other == null) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + return Name == other.Name; + } + + public override int GetHashCode() + { + return Name.GetHashCode(); + } +} diff --git a/src/Simple.OData.Client.Core/ODataExpandOptions.cs b/src/Simple.OData.Client.Core/ODataExpandOptions.cs new file mode 100644 index 000000000..ab030d9ff --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataExpandOptions.cs @@ -0,0 +1,113 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// Specifies expansion levels. +/// +public enum ODataExpandLevels +{ + /// + /// Specifies maximum expansion levels. + /// + Max, +} + +/// +/// Specifies expansion mode (by value or by reference). +/// +public enum ODataExpandMode +{ + /// + /// Associations should be expanded by value. + /// + ByValue, + + /// + /// Associations should be expanded by reference. + /// + ByReference, +} + +/// +/// Specifies how to expand entity associations. +/// +public class ODataExpandOptions : IEquatable +{ + /// + /// The number of levels to expand. + /// + public int Levels { get; private set; } + + /// + /// The expansion mode (by value or by reference). + /// + public ODataExpandMode ExpandMode { get; private set; } + + private ODataExpandOptions(int levels = 1, ODataExpandMode expandMode = ODataExpandMode.ByValue) + { + Levels = levels; + ExpandMode = expandMode; + } + + private ODataExpandOptions(ODataExpandLevels levels, ODataExpandMode expandMode = ODataExpandMode.ByValue) + : this(0, expandMode) + { + } + + /// + /// Expansion by value. + /// + /// The number of levels to expand. + public static ODataExpandOptions ByValue(int levels = 1) + { + return new ODataExpandOptions(levels, ODataExpandMode.ByValue); + } + + /// + /// Expansion by value. + /// + /// The number of levels to expand. + public static ODataExpandOptions ByValue(ODataExpandLevels levels) + { + return new ODataExpandOptions(levels, ODataExpandMode.ByValue); + } + + /// + /// Expansion by reference. + /// + /// The number of levels to expand. + public static ODataExpandOptions ByReference(int levels = 1) + { + return new ODataExpandOptions(levels, ODataExpandMode.ByReference); + } + + /// + /// Expansion by reference. + /// + /// The number of levels to expand. + public static ODataExpandOptions ByReference(ODataExpandLevels levels) + { + return new ODataExpandOptions(levels, ODataExpandMode.ByReference); + } + + public bool Equals(ODataExpandOptions other) + { + if (other == null) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + return ExpandMode == other.ExpandMode && Levels == other.Levels; + } + + public override int GetHashCode() + { + return (ExpandMode, Levels).GetHashCode(); + } +} diff --git a/src/Simple.OData.Client.Core/ODataFeedAnnotations.cs b/src/Simple.OData.Client.Core/ODataFeedAnnotations.cs new file mode 100644 index 000000000..bf54ca82d --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataFeedAnnotations.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +/// +/// Contains additional information about OData feed +/// +public class ODataFeedAnnotations +{ + /// + /// The ID of the corresponding entity set. + /// + public string Id { get; internal set; } + + /// + /// The result item count. + /// + public long? Count { get; internal set; } + + /// + /// A URL that can be used to retrieve changes to the current set of results + /// + public Uri DeltaLink { get; internal set; } + + /// + /// A URL that can be used to retrieve the next subset of the requested collection. + /// When set, indicates that the response response is only a subset of the requested collection of entities or collection of entity references. + /// + public Uri NextPageLink { get; internal set; } + + /// + /// Custom feed annotations. + /// + public IEnumerable InstanceAnnotations { get; internal set; } + + /// + /// Custom feed annotations returned as an adapter-specific annotation type + /// + /// Custom type + /// + public IEnumerable GetInstanceAnnotations() + { + return InstanceAnnotations.Select(x => (T)x); + } + + internal void CopyFrom(ODataFeedAnnotations src) + { + if (src != null) + { + Id = src.Id; + Count = src.Count; + DeltaLink = src.DeltaLink; + NextPageLink = src.NextPageLink; + InstanceAnnotations = src.InstanceAnnotations; + } + else + { + Id = null; + Count = null; + DeltaLink = null; + NextPageLink = null; + InstanceAnnotations = null; + } + } + + internal void Merge(ODataFeedAnnotations src) + { + if (src != null) + { + Id ??= src.Id; + Count ??= src.Count; + DeltaLink ??= src.DeltaLink; + NextPageLink ??= src.NextPageLink; + InstanceAnnotations ??= src.InstanceAnnotations; + } + } +} diff --git a/src/Simple.OData.Client.Core/ODataLiteral.cs b/src/Simple.OData.Client.Core/ODataLiteral.cs new file mode 100644 index 000000000..f6bd81f61 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataLiteral.cs @@ -0,0 +1,30 @@ +namespace Simple.OData.Client; + +internal static class ODataLiteral +{ + public const string Metadata = "$metadata"; + public const string Filter = "$filter"; + public const string Search = "$search"; + public const string Skip = "$skip"; + public const string Top = "$top"; + public const string Expand = "$expand"; + public const string OrderBy = "$orderby"; + public const string Select = "$select"; + public const string Count = "$count"; + public const string InlineCount = "$inlinecount"; + public const string Batch = "$batch"; + public const string Levels = "$levels"; + public const string Value = "$value"; + public const string Ref = "$ref"; + public const string AllPages = "allpages"; + public const string Max = "max"; + public const string True = "true"; + public const string False = "false"; + public const string Any = "any"; + public const string All = "all"; + public const string IsOf = "isof"; + public const string Is = "is"; + public const string Cast = "cast"; + public const string As = "as"; + public const string Apply = "$apply"; +} diff --git a/src/Simple.OData.Client.Core/ODataMediaAnnotations.cs b/src/Simple.OData.Client.Core/ODataMediaAnnotations.cs new file mode 100644 index 000000000..ca46b6cb6 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataMediaAnnotations.cs @@ -0,0 +1,29 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// Contains additional information about OData media resource +/// +public class ODataMediaAnnotations +{ + /// + /// The media resource content type. + /// + public string ContentType { get; set; } + + /// + /// The link that can be used to read the media resource. + /// + public Uri ReadLink { get; set; } + + /// + /// The link can be used to edit the media resource. + /// + public Uri EditLink { get; set; } + + /// + /// The media resource ETag. + /// + public string ETag { get; set; } +} diff --git a/src/Simple.OData.Client.Core/ODataNamespace.cs b/src/Simple.OData.Client.Core/ODataNamespace.cs new file mode 100644 index 000000000..5a0e07a03 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataNamespace.cs @@ -0,0 +1,7 @@ +namespace Simple.OData.Client; + +internal static class ODataNamespace +{ + public const string Metadata = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; + public const string Related = "http://schemas.microsoft.com/ado/2007/08/dataservices/related/"; +} diff --git a/src/Simple.OData.Client.Core/ODataOrderByColumn.cs b/src/Simple.OData.Client.Core/ODataOrderByColumn.cs new file mode 100644 index 000000000..191ce2804 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataOrderByColumn.cs @@ -0,0 +1,63 @@ +using System; + +namespace Simple.OData.Client; + +public class ODataOrderByColumn : IEquatable +{ + public string Name { get; } + public bool Descending { get; } + + public ODataOrderByColumn(string name, bool descending) + { + if (string.IsNullOrEmpty(name)) + { + throw new ArgumentException($"Parameter {nameof(name)} should not be null or empty.", nameof(name)); + } + + Name = name; + Descending = descending; + } + + public bool Equals(ODataOrderByColumn other) + { + if (other is null) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + return Name == other.Name && Descending == other.Descending; + } + + public override bool Equals(object obj) + { + if (obj is null) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((ODataOrderByColumn)obj); + } + + public override int GetHashCode() + { + unchecked + { + return ((Name != null ? Name.GetHashCode() : 0) * 397) ^ Descending.GetHashCode(); + } + } +} diff --git a/src/Simple.OData.Client.Core/ODataPayloadFormat.cs b/src/Simple.OData.Client.Core/ODataPayloadFormat.cs new file mode 100644 index 000000000..58fcdd70d --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataPayloadFormat.cs @@ -0,0 +1,22 @@ +namespace Simple.OData.Client; + +/// +/// The format of the messages exchanged with OData service. +/// +public enum ODataPayloadFormat +{ + /// + /// The message format is not specified and will be determined by the OData service. + /// + Unspecified, + + /// + /// OData message content will be formatted as Atom + /// + Atom, + + /// + /// OData message content will be formatted as JSON + /// + Json, +} diff --git a/src/Simple.OData.Client.Core/ODataProtocolVersion.cs b/src/Simple.OData.Client.Core/ODataProtocolVersion.cs new file mode 100644 index 000000000..351d1d0fc --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataProtocolVersion.cs @@ -0,0 +1,27 @@ +namespace Simple.OData.Client; + +/// +/// OData protocol version. +/// +public static class ODataProtocolVersion +{ + /// + /// Version 1.0 + /// + public const string V1 = "1.0"; + + /// + /// Version 2.0 + /// + public const string V2 = "2.0"; + + /// + /// Version 3.0 + /// + public const string V3 = "3.0"; + + /// + /// Version 4.0 + /// + public const string V4 = "4.0"; +} diff --git a/src/Simple.OData.Client.Core/ODataRequest.cs b/src/Simple.OData.Client.Core/ODataRequest.cs new file mode 100644 index 000000000..47ea71302 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataRequest.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Http; +using System.Net.Http.Headers; + +namespace Simple.OData.Client; + +public class ODataRequest +{ + private readonly string _uri; + private HttpRequestMessage _requestMessage; + private readonly ODataPayloadFormat _payloadFormat; + private readonly Stream _contentStream; + private readonly string _contentType; + + public HttpRequestMessage RequestMessage + { + get => GetOrCreateRequestMessage(); + private set => _requestMessage = value; + } + + public string[] Accept + { + get + { + var isMetadataRequest = RequestMessage.RequestUri.LocalPath.EndsWith(ODataLiteral.Metadata); + if (!isMetadataRequest && (ReturnsScalarResult || !ResultRequired)) + { + return null; + } + + if (isMetadataRequest) + { + return new[] { "application/xml" }; + } + else + { + return _payloadFormat switch + { + ODataPayloadFormat.Json => new[] { "application/json", "application/xml", "application/text" }, + _ => new[] { "application/atom+xml", "application/xml", "application/text" }, + }; + } + } + } + + public string CommandText { get; private set; } + public string Method { get; private set; } + public IDictionary EntryData { get; private set; } + public bool IsLink { get; set; } + public ODataPayloadFormat UsePayloadFormat { get; set; } + public bool ReturnsScalarResult { get; set; } + public bool ResultRequired { get; set; } + public bool CheckOptimisticConcurrency { get; set; } + public IDictionary Headers { get; } = new Dictionary(); + + internal ODataRequest(string method, ISession session, string commandText, IDictionary headers = null) + { + CommandText = commandText; + Method = method; + + var uri = new Uri(commandText, UriKind.RelativeOrAbsolute); + _uri = uri.IsAbsoluteUri + ? uri.AbsoluteUri + : Utils.CreateAbsoluteUri(session.Settings.BaseUri.AbsoluteUri, commandText).AbsoluteUri; + _payloadFormat = session.Settings.PayloadFormat; + + if (headers != null) + { + Headers = headers; + } + } + + internal ODataRequest(string method, ISession session, string commandText, HttpRequestMessage requestMessage) + : this(method, session, commandText) + { + RequestMessage = requestMessage; + } + + internal ODataRequest(string method, ISession session, string commandText, IDictionary entryData, Stream contentStream, string mediaType = null, IDictionary headers = null) + : this(method, session, commandText, headers) + { + EntryData = entryData; + _contentStream = contentStream; + _contentType = mediaType; + } + + private HttpContent GetContent() + { + if (_contentStream == null) + { + return null; + } + + if (_contentStream.CanSeek) + { + _contentStream.Seek(0, SeekOrigin.Begin); + } + + var content = new StreamContent(_contentStream); + content.Headers.ContentType = new MediaTypeHeaderValue(GetContentType()); + content.Headers.ContentLength = _contentStream.Length; + return content; + } + + private string GetContentType() + { + if (!string.IsNullOrEmpty(_contentType)) + { + return _contentType; + } + else + { + var payloadFormat = UsePayloadFormat != ODataPayloadFormat.Unspecified + ? UsePayloadFormat + : _payloadFormat; + + return payloadFormat switch + { + ODataPayloadFormat.Json => "application/json", + _ => IsLink ? "application/xml" : "application/atom+xml", + }; + } + } + + private HttpRequestMessage GetOrCreateRequestMessage() + { + if (_requestMessage != null) + { + return _requestMessage; + } + + _requestMessage = new HttpRequestMessage(new HttpMethod(Method), _uri) + { + Content = _contentStream != null ? GetContent() : null + }; + + if (Headers != null) + { + foreach (var header in Headers) + { + _requestMessage.Headers.Add(header.Key, header.Value); + } + } + + return _requestMessage; + } +} diff --git a/src/Simple.OData.Client.Core/ODataResponse.cs b/src/Simple.OData.Client.Core/ODataResponse.cs new file mode 100644 index 000000000..bd5f40b89 --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataResponse.cs @@ -0,0 +1,279 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public class AnnotatedFeed +{ + public IList Entries { get; private set; } + public ODataFeedAnnotations Annotations { get; private set; } + + public AnnotatedFeed(IEnumerable entries, ODataFeedAnnotations annotations = null) + { + Entries = entries.ToList(); + Annotations = annotations; + } + + public void SetAnnotations(ODataFeedAnnotations annotations) + { + if (Annotations == null) + { + Annotations = annotations; + } + else + { + Annotations.Merge(annotations); + } + } +} + +public class AnnotatedEntry +{ + public IDictionary Data { get; private set; } + public ODataEntryAnnotations Annotations { get; private set; } + public ODataFeedAnnotations LinkAnnotations { get; private set; } + + public AnnotatedEntry(IDictionary data, ODataEntryAnnotations annotations = null) + { + Data = data; + Annotations = annotations; + } + + public void SetAnnotations(ODataEntryAnnotations annotations) + { + if (Annotations == null) + { + Annotations = annotations; + } + else + { + Annotations.Merge(annotations); + } + } + + public void SetLinkAnnotations(ODataFeedAnnotations annotations) + { + if (LinkAnnotations == null) + { + LinkAnnotations = annotations; + } + else + { + LinkAnnotations.Merge(annotations); + } + } + + public IDictionary GetData(bool includeAnnotations) + { + if (includeAnnotations && Annotations != null) + { + var dataWithAnnotations = new Dictionary(Data) + { + { FluentCommand.AnnotationsLiteral, Annotations } + }; + return dataWithAnnotations; + } + else + { + return Data; + } + } +} + +public class ODataResponse +{ + public int StatusCode { get; private set; } + public string Location => Headers?.FirstOrDefault(x => x.Key == "Location").Value; + public string ODataEntityId => Headers?.FirstOrDefault(x => x.Key == "OData-EntityId").Value; + public IEnumerable> Headers { get; private set; } + public AnnotatedFeed Feed { get; private set; } + public IList Batch { get; private set; } + public Exception Exception { get; private set; } + + internal ITypeCache TypeCache { get; set; } + + private ODataResponse(ITypeCache typeCache) + { + TypeCache = typeCache; + } + + public IEnumerable> AsEntries(bool includeAnnotations) + { + if (Feed != null) + { + var data = Feed.Entries; + return data.Select(x => + data.Any() && data.First().Data.ContainsKey(FluentCommand.ResultLiteral) + ? ExtractDictionary(x, includeAnnotations) + : ExtractData(x, includeAnnotations)); + } + else + { + return Array.Empty>(); + } + } + + public IDictionary AsEntry(bool includeAnnotations) + { + var result = AsEntries(includeAnnotations); + + return result?.FirstOrDefault(); + } + + public T AsScalar() + { + var result = AsEntry(false); + var value = result == null || result.Count == 0 + ? null + : result.First().Value; + + return value == null + ? default(T) + : TypeCache.Convert(value); + } + + public T[] AsArray() + { + return AsEntries(false) + .SelectMany(x => x.Values) + .Select(x => TypeCache.Convert(x)) + .ToArray(); + } + + internal static ODataResponse FromNode(ITypeCache typeCache, ResponseNode node, IEnumerable> headers) + { + return new ODataResponse(typeCache) + { + Feed = node.Feed ?? new AnnotatedFeed(node.Entry != null ? new[] { node.Entry } : null), + Headers = headers + }; + } + + internal static ODataResponse FromProperty(ITypeCache typeCache, string propertyName, object propertyValue) + { + return FromFeed(typeCache, new[] + { + new Dictionary { {propertyName ?? FluentCommand.ResultLiteral, propertyValue} } + }); + } + + internal static ODataResponse FromValueStream(ITypeCache typeCache, Stream stream, bool disposeStream = false) + { + return FromFeed(typeCache, new[] + { + new Dictionary { {FluentCommand.ResultLiteral, Utils.StreamToString(stream, disposeStream)} } + }); + } + + internal static ODataResponse FromCollection(ITypeCache typeCache, IList collection) + { + return new ODataResponse(typeCache) + { + Feed = new AnnotatedFeed(collection.Select( + x => new AnnotatedEntry(new Dictionary() + { + { FluentCommand.ResultLiteral, x } + }))) + }; + } + + internal static ODataResponse FromBatch(ITypeCache typeCache, IList batch) + { + return new ODataResponse(typeCache) + { + Batch = batch, + }; + } + + + internal static ODataResponse FromStatusCode(ITypeCache typeCache, int statusCode, IEnumerable> headers, Exception exception = null) + { + return new ODataResponse(typeCache) + { + StatusCode = statusCode, + Exception = exception, + Headers = headers + }; + } + + internal static ODataResponse FromStatusCode(ITypeCache typeCache, int statusCode, IEnumerable> headers, Stream responseStream, WebRequestExceptionMessageSource exceptionMessageSource) + { + if (statusCode >= (int)HttpStatusCode.BadRequest) + { + var responseContent = Utils.StreamToString(responseStream, true); + return new ODataResponse(typeCache) + { + StatusCode = statusCode, + Exception = WebRequestException.CreateFromStatusCode((HttpStatusCode)statusCode, exceptionMessageSource, responseContent), + Headers = headers + }; + } + else + { + return new ODataResponse(typeCache) + { + StatusCode = statusCode, + Headers = headers + }; + } + } + + internal static ODataResponse EmptyFeeds(ITypeCache typeCache) + { + return FromFeed(typeCache, Array.Empty>()); + } + + private static ODataResponse FromFeed(ITypeCache typeCache, IEnumerable> entries, ODataFeedAnnotations feedAnnotations = null) + { + return new ODataResponse(typeCache) + { + Feed = new AnnotatedFeed(entries.Select(x => new AnnotatedEntry(x)), feedAnnotations) + }; + } + + private IDictionary ExtractData(AnnotatedEntry entry, bool includeAnnotations) + { + if (entry == null || entry.Data == null) + { + return null; + } + + return includeAnnotations ? DataWithAnnotations(entry.Data, entry.Annotations) : entry.Data; + } + + private IDictionary ExtractDictionary(AnnotatedEntry entry, bool includeAnnotations) + { + if (entry == null || entry.Data == null) + { + return null; + } + + var data = entry.Data; + if (data.Keys.Count == 1 && data.ContainsKey(FluentCommand.ResultLiteral) && + data.Values.First() is IDictionary) + { + return data.Values.First() as IDictionary; + } + else if (includeAnnotations) + { + return DataWithAnnotations(data, entry.Annotations); + } + else + { + return data; + } + } + + private IDictionary DataWithAnnotations(IDictionary data, ODataEntryAnnotations annotations) + { + var dataWithAnnotations = new Dictionary(data) + { + {FluentCommand.AnnotationsLiteral, annotations} + }; + return dataWithAnnotations; + } +} diff --git a/src/Simple.OData.Client.Core/ODataTrace.cs b/src/Simple.OData.Client.Core/ODataTrace.cs new file mode 100644 index 000000000..4eb52c0bb --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataTrace.cs @@ -0,0 +1,27 @@ +namespace Simple.OData.Client; + +/// +/// Specifies types of information to be written to trace messages. +/// +public enum ODataTrace +{ + /// + /// No trace information is written to trace messages. + /// + None, + + /// + /// Trace the contents of HTTP requests. + /// + RequestContent = 0x1, + + /// + /// Trace the contents of HTTP responses. + /// + ResponseContent = 0x2, + + /// + /// Trace all internal activities. + /// + All = 0xFF, +} diff --git a/src/Simple.OData.Client.Core/ODataUpdateMethod.cs b/src/Simple.OData.Client.Core/ODataUpdateMethod.cs new file mode 100644 index 000000000..392c8291b --- /dev/null +++ b/src/Simple.OData.Client.Core/ODataUpdateMethod.cs @@ -0,0 +1,22 @@ +namespace Simple.OData.Client; + +/// +/// The preferred entry update method. +/// +public enum ODataUpdateMethod +{ + /// + /// Use PATCH to update OData entries + /// + Patch, + /// + /// Use MERGE to update OData entries + /// + + [System.Obsolete("This method is obsolete. Use Patch instead.")] + Merge, + /// + /// Use PUT to update OData entries + /// + Put, +} diff --git a/src/Simple.OData.Client.Core/Pluralizer.cs b/src/Simple.OData.Client.Core/Pluralizer.cs new file mode 100644 index 000000000..1dac9f637 --- /dev/null +++ b/src/Simple.OData.Client.Core/Pluralizer.cs @@ -0,0 +1,43 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// Provides pluralization and singularization of words when resolving names of resources and properties +/// +public class Pluralizer : IPluralizer +{ + private readonly Func _pluralize; + private readonly Func _singularize; + + /// + /// Initializes a new instance of the class. + /// + /// The Pluralize function delegate. + /// The Singularize function delegate. + public Pluralizer(Func pluralize, Func singularize) + { + _pluralize = pluralize; + _singularize = singularize; + } + + /// + /// Pluralizes the specified word. + /// + /// The word to pluralize. + /// + public string Pluralize(string word) + { + return _pluralize(word); + } + + /// + /// Singularizes the specified word. + /// + /// The word to singularize. + /// + public string Singularize(string word) + { + return _singularize(word); + } +} diff --git a/src/Simple.OData.Client.Core/Properties/Resources.Designer.cs b/src/Simple.OData.Client.Core/Properties/Resources.Designer.cs new file mode 100644 index 000000000..6286ad347 --- /dev/null +++ b/src/Simple.OData.Client.Core/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18033 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Simple.OData.Client.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Simple.OData.Client.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/src/Simple.OData.Client.Core/Properties/Resources.resx b/src/Simple.OData.Client.Core/Properties/Resources.resx new file mode 100644 index 000000000..2f96abecd --- /dev/null +++ b/src/Simple.OData.Client.Core/Properties/Resources.resx @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.Core/Reflection/MemberAccessor.cs b/src/Simple.OData.Client.Core/Reflection/MemberAccessor.cs new file mode 100644 index 000000000..7f181d3ae --- /dev/null +++ b/src/Simple.OData.Client.Core/Reflection/MemberAccessor.cs @@ -0,0 +1,393 @@ +using System; +using System.Collections.Concurrent; +using System.Linq.Expressions; +using System.Reflection; + +namespace Simple.OData.Client; + +internal static class MemberAccessor + +{ + private static readonly ConcurrentDictionary<(Type, Type, MemberInfo), Delegate> getterCache = new(); + private static readonly ConcurrentDictionary<(Type, Type, MemberInfo), Delegate> setterCache = new(); + private static readonly ConcurrentDictionary<(Type, MemberInfo), Delegate> staticGetterCache = new(); + private static readonly ConcurrentDictionary<(Type, MemberInfo), Delegate> staticSetterCache = new(); + + public static Delegate BuildGetterAccessor(Type type, Type returnType, MemberInfo memberInfo) + { + var parameter = Expression.Parameter(type); + + var castedParameter = + type != memberInfo.DeclaringType ? + Expression.Convert(parameter, memberInfo.DeclaringType) : (Expression)parameter; + + var delegateType = Expression.GetDelegateType(new[] { typeof(object), returnType }); + var body = (Expression)Expression.MakeMemberAccess(castedParameter, memberInfo); + + if (body.Type != returnType) + { + body = Expression.Convert(body, returnType); + } + + return Expression.Lambda(delegateType, body, parameter).Compile(); + } + + public static Delegate BuildStaticGetterAccessor(Type returnType, MemberInfo memberInfo) + { + var delegateType = Expression.GetDelegateType(new[] { returnType }); + var body = (Expression)Expression.MakeMemberAccess(null, memberInfo); + + if (body.Type != returnType) + { + body = Expression.Convert(body, returnType); + } + + return Expression.Lambda(delegateType, body).Compile(); + } + + public static Delegate BuildSetterAccessor(Type type, Type valueType, MemberInfo memberInfo) + { + var parameter = Expression.Parameter(type); + var valueParameter = Expression.Parameter(valueType); + + var castedParameter = + type != memberInfo.DeclaringType ? + Expression.Convert(parameter, memberInfo.DeclaringType) : (Expression)parameter; + + var memberType = GetMemberType(memberInfo); + var castedValueParameter = + valueType != memberType ? + Expression.Convert(valueParameter, memberType) : (Expression)valueParameter; + + var delegateType = Expression.GetDelegateType(new[] { typeof(object), valueType, typeof(void) }); + return Expression.Lambda(delegateType, + Expression.Assign( + Expression.MakeMemberAccess(castedParameter, memberInfo), + castedValueParameter), + parameter, valueParameter).Compile(); + } + public static Delegate BuildStaticSetterAccessor(Type valueType, MemberInfo memberInfo) + { + var valueParameter = Expression.Parameter(valueType); + + var memberType = GetMemberType(memberInfo); + var castedValueParameter = + valueType != memberType ? + Expression.Convert(valueParameter, memberType) : (Expression)valueParameter; + + var delegateType = Expression.GetDelegateType(new[] { valueType, typeof(void) }); + return Expression.Lambda(delegateType, + Expression.Assign( + Expression.MakeMemberAccess(null, memberInfo), + castedValueParameter), + valueParameter).Compile(); + } + + private static Type GetMemberType(MemberInfo memberInfo) + { + if (memberInfo is PropertyInfo propertyInfo) + { + return propertyInfo.PropertyType; + } + else if (memberInfo is FieldInfo fieldInfo) + { + return fieldInfo.FieldType; + } + + return null; + } + + private static bool CanGet(MemberInfo memberInfo) + { + if (memberInfo is PropertyInfo propertyInfo) + { + return propertyInfo.CanRead; + } + else if (memberInfo is FieldInfo) + { + return true; + } + else + { + return false; + } + } + + private static bool CanSet(MemberInfo memberInfo) + { + if (memberInfo is PropertyInfo propertyInfo) + { + return propertyInfo.CanWrite; + } + else if (memberInfo is FieldInfo) + { + return true; + } + else + { + return false; + } + } + + private static bool IsStatic(MemberInfo memberInfo) + { + if (memberInfo is PropertyInfo propertyInfo) + { + return (propertyInfo.CanRead && propertyInfo.GetMethod is not null && propertyInfo.GetMethod.IsStatic) + || (propertyInfo.CanWrite && propertyInfo.SetMethod is not null && propertyInfo.SetMethod.IsStatic); + } + else if (memberInfo is FieldInfo fieldInfo) + { + return fieldInfo.IsStatic; + } + else + { + return false; + } + } + + private static MemberInfo GetMemberInfo(Type type, string memberName) + { + if (TryGetMemberInfo(type, memberName, out var memberInfo)) + { + return memberInfo; + } + + throw new InvalidOperationException($"Property or field {memberName} not found in type {type.FullName}"); + } + + private static void AssertMemberInfoType(MemberInfo memberInfo) + { + if (memberInfo.MemberType == MemberTypes.Field || memberInfo.MemberType == MemberTypes.Property) + { + return; + } + + throw new InvalidOperationException($"Member {memberInfo.Name} is of member type {memberInfo.MemberType}. Only property or field members can be access for value."); + } + + private static bool TryGetMemberInfo(Type type, string memberName, out MemberInfo memberInfo) + { + var propertyInfo = type.GetProperty(memberName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + var fieldInfo = (propertyInfo is null) ? + type.GetField(memberName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) : null; + + memberInfo = (MemberInfo)propertyInfo ?? fieldInfo; + + return memberInfo is not null; + } + + private static Func GetGetAccessor(object instance, MemberInfo memberInfo) + { + AssertMemberInfoType(memberInfo); + + var isStatic = IsStatic(memberInfo); + + if (!isStatic && instance is null) + { + throw new ArgumentNullException(nameof(instance), "Instance cannot be null to access a non static member."); + } + + if (isStatic) + { + return (object _) => ((Func)staticGetterCache.GetOrAdd( + (typeof(TMember), memberInfo), + key => BuildStaticGetterAccessor(key.Item1, key.Item2)))(); + } + else + { + return (Func)getterCache.GetOrAdd( + (instance.GetType(), typeof(TMember), memberInfo), + key => BuildGetterAccessor(typeof(object), key.Item2, key.Item3)); + } + } + + public static TMember GetValue(object instance, MemberInfo memberInfo) + { + var accessor = GetGetAccessor(instance, memberInfo); + + return accessor(instance); + } + + public static TMember GetValue(object instance, string memberName) + { + if (instance is null) + { + throw new ArgumentNullException(nameof(instance)); + } + + var type = instance.GetType(); + var memberInfo = GetMemberInfo(type, memberName); + + return GetValue(instance, memberInfo); + } + + public static object GetValue(object instance, MemberInfo memberInfo) + { + return GetValue(instance, memberInfo); + } + + public static object GetValue(object instance, string memberName) + { + return GetValue(instance, memberName); + } + + public static bool TryGetValue(object instance, MemberInfo memberInfo, out TMember value) + { + value = default; + + if (instance is null) + { + return false; + } + + if (!(CanGet(memberInfo))) + { + return false; + } + + var accessor = GetGetAccessor(instance, memberInfo); + + try + { + value = accessor(instance); + } + catch + { + return false; + } + + return true; + } + + public static bool TryGetValue(object instance, string memberName, out TMember value) + { + value = default; + + if (instance is null) + { + return false; + } + + var type = instance.GetType(); + var memberInfo = GetMemberInfo(type, memberName); + + return TryGetValue(instance, memberInfo, out value); + } + + public static bool TryGetValue(object instance, MemberInfo memberInfo, out object value) + { + return TryGetValue(instance, memberInfo, out value); + } + + public static bool TryGetValue(object instance, string memberName, out object value) + { + return TryGetValue(instance, memberName, out value); + } + + private static Action GetSetAccessor(object instance, MemberInfo memberInfo) + { + AssertMemberInfoType(memberInfo); + + var isStatic = IsStatic(memberInfo); + + if (!isStatic && instance is null) + { + throw new ArgumentNullException(nameof(instance), "Instance cannot be null to access a non static member."); + } + + if (isStatic) + { + return (object _, TMember x) => ((Action)staticSetterCache.GetOrAdd( + (typeof(TMember), memberInfo), + key => BuildStaticSetterAccessor(key.Item1, key.Item2)))(x); + } + else + { + return (Action)setterCache.GetOrAdd( + (instance.GetType(), typeof(TMember), memberInfo), + key => BuildSetterAccessor(typeof(object), key.Item2, key.Item3)); + } + } + + public static void SetValue(object instance, MemberInfo memberInfo, TMember value) + { + AssertMemberInfoType(memberInfo); + + var accessor = GetSetAccessor(instance, memberInfo); + + accessor(instance, value); + } + + public static void SetValue(object instance, string memberName, TMember value) + { + if (instance is null) + { + throw new ArgumentNullException(nameof(instance)); + } + + var type = instance.GetType(); + var memberInfo = GetMemberInfo(type, memberName); + + SetValue(instance, memberInfo, value); + } + + public static void SetValue(object instance, MemberInfo memberInfo, object value) + { + SetValue(instance, memberInfo, value); + } + + public static void SetValue(object instance, string memberName, object value) + { + SetValue(instance, memberName, value); + } + + public static bool TrySetValue(object instance, MemberInfo memberInfo, TMember value) + { + if (instance is null) + { + return false; + } + + if (!(CanSet(memberInfo))) + { + return false; + } + + var accessor = GetSetAccessor(instance, memberInfo); + + try + { + accessor(instance, value); + } + catch + { + return false; + } + + return true; + } + + public static bool TrySetValue(object instance, string memberName, TMember value) + { + if (instance is null) + { + return false; + } + + var type = instance.GetType(); + var memberInfo = GetMemberInfo(type, memberName); + + return TrySetValue(instance, memberInfo, value); + } + + public static bool TrySetValue(object instance, MemberInfo memberInfo, object value) + { + return TrySetValue(instance, memberInfo, value); + } + + public static bool TrySetValue(object instance, string memberName, object value) + { + return TrySetValue(instance, memberName, value); + } +} diff --git a/src/Simple.OData.Client.Core/Session.cs b/src/Simple.OData.Client.Core/Session.cs new file mode 100644 index 000000000..0f4ce9351 --- /dev/null +++ b/src/Simple.OData.Client.Core/Session.cs @@ -0,0 +1,194 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal class Session : ISession +{ + private IODataAdapter _adapter; + private HttpConnection _httpConnection; + + private Session(Uri baseUri, string metadataString) : this(new ODataClientSettings + { + BaseUri = baseUri, + MetadataDocument = metadataString + }) + { + } + + private Session(ODataClientSettings settings) + { + if (settings.BaseUri == null || string.IsNullOrEmpty(settings.BaseUri.AbsoluteUri)) + { + throw new InvalidOperationException("Unable to create client session with no URI specified."); + } + + Settings = settings; + + if (!string.IsNullOrEmpty(Settings.MetadataDocument)) + { + // Create as early as possible as most unit tests require this and also makes it simpler when assigning a static document + MetadataCache = InitializeStaticMetadata(Settings.MetadataDocument); + } + } + + public IODataAdapter Adapter + { + get + { + if (_adapter == null) + { + lock (this) + { + if (_adapter == null) + { + _adapter = MetadataCache.GetODataAdapter(this); + } + } + } + + return _adapter; + } + } + + public IMetadata Metadata => Adapter.GetMetadata(); + + public EdmMetadataCache MetadataCache { get; private set; } + + public ODataClientSettings Settings { get; } + + public ITypeCache TypeCache => TypeCaches.TypeCache(Settings.BaseUri.AbsoluteUri, Settings.NameMatchResolver); + + public void Dispose() + { + lock (this) + { + if (_httpConnection != null) + { + _httpConnection.Dispose(); + _httpConnection = null; + } + } + } + + private readonly SemaphoreSlim _initializeSemaphore = new(1); + public async Task Initialize(CancellationToken cancellationToken) + { + // Just allow one schema request at a time, unlikely to be much contention but avoids multiple requests for same endpoint. + await _initializeSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); + + try + { + if (MetadataCache == null) + { + MetadataCache = await InitializeMetadataCache(cancellationToken) + .ConfigureAwait(false); + } + + if (_adapter == null) + { + _adapter = MetadataCache.GetODataAdapter(this); + } + } + finally + { + _initializeSemaphore.Release(); + } + } + + public void Trace(string message, params object[] messageParams) + { + Settings.OnTrace?.Invoke(message, messageParams); + } + + public void ClearMetadataCache() + { + var metadataCache = MetadataCache; + if (metadataCache != null) + { + EdmMetadataCache.Clear(metadataCache.Key); + MetadataCache = null; + } + } + + public async Task ResolveAdapterAsync(CancellationToken cancellationToken) + { + await Initialize(cancellationToken).ConfigureAwait(false); + + if (Settings.PayloadFormat == ODataPayloadFormat.Unspecified) + { + Settings.PayloadFormat = Adapter.DefaultPayloadFormat; + } + + return Adapter; + } + + public HttpConnection GetHttpConnection() + { + if (_httpConnection == null) + { + lock (this) + { + if (_httpConnection == null) + { + _httpConnection = new HttpConnection(Settings); + } + } + } + + return _httpConnection; + } + + internal static Session FromSettings(ODataClientSettings settings) + { + return new Session(settings); + } + + internal static Session FromMetadata(Uri baseUri, string metadataString) + { + return new Session(baseUri, metadataString); + } + + private async Task SendMetadataRequestAsync(CancellationToken cancellationToken) + { + var request = new ODataRequest(RestVerbs.Get, this, ODataLiteral.Metadata); + return await new RequestRunner(this).ExecuteRequestAsync(request, cancellationToken).ConfigureAwait(false); + } + + private EdmMetadataCache InitializeStaticMetadata(string metadata) + { + return EdmMetadataCache.GetOrAdd( + Settings.BaseUri.AbsoluteUri, + uri => CreateMdc(uri, metadata)); + } + + private async Task InitializeMetadataCache(CancellationToken cancellationToken) + { + return await EdmMetadataCache.GetOrAddAsync( + Settings.BaseUri.AbsoluteUri, + async uri => + { + var metadata = await ResolveMetadataAsync(cancellationToken).ConfigureAwait(false); + return CreateMdc(uri, metadata); + }); + } + + private async Task ResolveMetadataAsync(CancellationToken cancellationToken) + { + if (!string.IsNullOrEmpty(Settings.MetadataDocument)) + { + return Settings.MetadataDocument; + } + + var response = await SendMetadataRequestAsync(cancellationToken).ConfigureAwait(false); + var metadataDocument = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + return metadataDocument; + } + + private EdmMetadataCache CreateMdc(string key, string metadata) + { + return new EdmMetadataCache(key, metadata, TypeCaches.TypeCache(key, Settings.NameMatchResolver)); + } +} diff --git a/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj new file mode 100644 index 000000000..b1784827f --- /dev/null +++ b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj @@ -0,0 +1,58 @@ + + + net461;netstandard2.0 + true + Simple.OData.Client + $(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/ + $(OutputPath) + + latest + + + Simple.OData.Client.Core.xml + TRACE + + + Simple.OData.Client.Core.xml + TRACE + + + TRACE;DEBUG + + + TRACE;DEBUG + + + + + + + + + + + <_Parameter1>Simple.OData.Client.Dynamic, $(StrongNamePublicKey) + + + <_Parameter1>Simple.OData.Client.V3.Adapter, $(StrongNamePublicKey) + + + <_Parameter1>Simple.OData.Client.V4.Adapter, $(StrongNamePublicKey) + + + <_Parameter1>Simple.OData.Client.UnitTests, $(StrongNamePublicKey) + + + <_Parameter1>Simple.OData.Client.IntegrationTests, $(StrongNamePublicKey) + + + <_Parameter1>WebApiOData.V3.Samples.Tests, $(StrongNamePublicKey) + + + <_Parameter1>WebApiOData.V4.Samples.Tests, $(StrongNamePublicKey) + + + <_Parameter1>Simple.OData.Client.Benchmarks, $(StrongNamePublicKey) + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.Core/Simple.OData.Client.Core.xml b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.xml new file mode 100644 index 000000000..79cf7b1cd --- /dev/null +++ b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.xml @@ -0,0 +1,4142 @@ + + + + Simple.OData.Client.Core + + + + + The OData protocol version of the OData adapter. + + + + + OData protocol version 3 + + + + + OData protocol version 4 + + + + + Default OData protocol version + + + + + Any OData protocol version + + + + + The format of OData function arguments. + + + + + The function arguments will be formatted as a query string + + + + + The function arguments will be formatted as a a key-value list + + + + + Abstraction over the OData Edm model. + + + + + Gets a collection of key name collections that represent the alternate keys of the given entity. + Alternate keys are only supported on V4. On V3 this method will always return an empty enumeration. + + + The collection name of the entity + An empty enumeration of string enumerations representing the key names + + + + IODataAdapterFactory interface contains collection of methods to create OData adapters. + It can be used as a customization point to create adapters with custom behavior. + + + + + Creates an instance of IODataModelAdapter from an HTTP response with schema information. + + HTTP response message with schema information + Service type cache + + + + + + Creates an instance of IODataModelAdapter from a metadata string. + + Service metadata + Service type cache + + + + + + Creates an instance of OData adapter loader from a metadata string. + + Service metadata + Service type cache + + + + + + A caching layer for + + + + + ODataAdapterFactory creates OData adapters for specific OData protocols. + Custom OData adapter classes can be derived from ODataAdapterFactory to provide custom implementation of its methods. + + + + + + + + + + + + + + Returns a collection of supported protocol versions. + + HTTP response message with schema information + + + + + + Returns OData protocol version + + Service metadata + + + + + Indicates the format of Request-URI in each sub request in the batch operation. + + + This must be kept aligned with https://github.com/OData/odata.net/blob/master/src/Microsoft.OData.Core/Batch/ODataBatchPayloadUriOptions.cs + + + + + Absolute URI with schema, host, port, and absolute resource path. + + Example: + GET https://host:1234/path/service/People(1) HTTP/1.1 + + + + Absolute resource path and separate Host header. + + Example: + GET /path/service/People(1) HTTP/1.1 + Host: myserver.mydomain.org:1234 + + + + Resource path relative to the batch request URI. + + Example: + GET People(1) HTTP/1.1 + + + + Access the type definition with good performance. + + + + + Gets the type converters. + + + + + Register the type, along with its dynamic properties name, also applies to sub-types in the same assembly + + + + + + + Register the type, along with its dynamic properties name, also applies to sub-types in the same assembly + + + + + + + Get whether the type is a dynamic + + + + + + + Gets the dynamic properties container name for a type, will be unless registered + + + + + + + Get the OData annotations property if any. + + + + + Get all derived types in the same assembly. + + + + + + + Get the mapped properties for a type + + + + + + + Get the mapped properties for a type along with the associated property name + + + + + + + Get a property that is either directly named or mapped via an attribute + + + + + + + + Get the mapping name for a property + + + + + + + + Get the mapping name for a named property + + + + + + + + Get all properties for a type + + + + + + + Get a directly named property + + + + + + + + Get declared properties for a type. + + + + + + + Get a declared property + + + + + + + + Get all fields for a type + + + + + + + Get a field for a type + + + + + + + + + Get declared fields for a type + + + + + + + Get a declared field for a type + + + + + + + + Get a declared method for a type + + + + + + + + Get the declared constructors for a type + + + + + + + Get the default constructor for a type + + + + + + + Get the type's attributes + + + + + + + Get the generic type arguments for a type + + + + + + + Get whether a type is anonymous + + + + + + + Get whether we can assign a value of this type to another + + + + + + + + Get whether a type has a specific custom attribute + + + + + + + + + Get whether a type is generic + + + + + + + Gets whether a type is a value type + + + + + + + Gets whether a type is an enum + + + + + + + Get the base type of a type + + + + + + + Get the mapped name of a type. + + + + + + + + + + Creates a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Downshift a string and remove all non-alphanumeric characters. + + The original string. + The modified string. + + + + Sets the regular expression to be used for homogenizing object names. + + A regular expression matching all non-comparing characters. The default is "[^a-z0-9]". + Homogenized strings are always forced to lower-case. + + + + Extract a column name from the member's attributes + + + + + + + Get a directly named property + + + + + + + + Extension methods for . + + + + + Holds information about a type. + + + + + Creates a new instance of the class. + + Type of the cached properties. + Name match resolver. + Whether the cached type is dynamic. + Dynamic container name. + + + + Gets the type we are responsible for. + + + + + Get all derived types in the same assembly. + + + + + Gets the mapped name i.e. the OData type we correspond to. + + + + + Gets whether we are a dynamic type + + + + + Gets whether we are an anonymous type + + + + + Gets whether we are a generic type + + + + + Gets whether we are a value type + + + + + Gets whether we are an enum + + + + + Gets the base type + + + + + Gets the dynamic properties container name + + + + + Gets all properties + + + + + Gets declared properties + + + + + Gets all fields + + + + + Gets declared fields. + + + + + Gets mapped properties + + + + + Gets mapped properties with the mapped name + + + + + Gets a mapped property + + + + + + + Provides access to OData operations in a fluent style. + + The entry type. + + + + Provides access to OData operations in a fluent style. + + The entity type. + + + + + Navigates to the linked entity. + + The type of the linked entity. + Name of the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + Name of the link. + Self. + + + + Navigates to the linked entity. + + The expression for the link. + Self. + + + + Executes the OData function or action. + + Execution result task. + + + + Executes the OData function or action. + + The cancellation token. + Execution result task. + + + + Executes the OData function or action and returns a single item. + + Execution result. + + + + Executes the OData function or action and returns a single item. + + Execution result. + + + + Executes the OData function or action and returns a single item. + + The cancellation token. + Execution result. + + + + Executes the OData function or action and returns a single item. + + The cancellation token. + Execution result. + + + + Executes the OData function or action and returns enumerable result. + + Execution result. + + + + Executes the OData function or action and returns enumerable result. + + The cancellation token. + Execution result. + + + + Executes the OData function or action and returns scalar result. + + Execution result. + + + + Executes the OData function or action and returns scalar result. + + The cancellation token. + Execution result. + + + + Executes the OData function and returns an array. + + Execution result. + + + + Executes the OData function and returns an array. + + Execution result. + + + + Executes the OData function and returns an array. + + The cancellation token. + Execution result. + + + + Executes the OData function and returns an array. + + The cancellation token. + Execution result. + + + + Executes the OData function and returns an array. + + The OData feed annotations. + Execution result. + + + + Executes the OData function and returns an array. + + The OData feed annotations. + Execution result. + + + + Executes the OData function and returns an array. + + The cancellation token. + The OData feed annotations. + Execution result. + + + + Executes the OData function and returns an array. + + The cancellation token. + The OData feed annotations. + Execution result. + + + + Gets the OData command text. + + The command text. + + + + Gets the OData command text. + + The cancellation token. + The command text. + + + + Provides access to collection-bound OData operations in a fluent style. + + The entity type. + + + + Retrieves entries by executing OData GET request. + + Request execution results. + + + + Retrieves entries by executing OData GET request. + + The cancellation token. + Entries found. + + + + Retrieves entries by executing OData GET request. + + if set to true the result is expected to be of a scalar type. + Entries found. + + + + Retrieves entries by executing OData GET request. + + if set to true the result is expected to be of a scalar type. + The cancellation token. + Entries found. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The OData feed annotations. + Entries found with entry count. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The OData feed annotations. + The cancellation token. + Entries found with entry count. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The URI previously returned in OData feed annotations. + The OData feed annotations. + Entries found with entry count. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The URI previously returned in OData feed annotations. + The OData feed annotations. + The cancellation token. + Entries found with entry count. + + + + Retrieves an entry by executing OData GET request. + + The first of the entries found. + + + + Retrieves an entry by executing OData GET request. + + The cancellation token. + The first of the entries found. + + + + Retrieves an entry as a scalar type by executing OData GET request. + + The result as a scalar type. + + + + Retrieves an entry as a scalar type by executing OData GET request. + + The cancellation token. + The result as a scalar type. + + + + Insert a new entry by executing OData POST request. + + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + The cancellation token. + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + if set to true returns the new entry data, otherwise returns null. + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + if set to true returns the new entry data, otherwise returns null. + The cancellation token. + The newly inserted entry + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The cancellation token. + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + if set to true returns the updated entry data, otherwise returns null. + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + if set to true returns the updated entry data, otherwise returns null. + The cancellation token. + The updated entry data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The cancellation token. + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + if set to true returns the updated entry data, otherwise returns null. + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + if set to true returns the updated entry data, otherwise returns null. + The cancellation token. + The updated entries data + + + + Deletes the existing entry by executing OData DELETE request. + + Task instance. + + + + Deletes the existing entry by executing OData DELETE request. + + The cancellation token. + Task instance. + + + + Deletes entries by executing multiple OData DELETE requests. + + The number of deleted entries. + + + + Deletes entries by executing multiple OData DELETE requests. + + The cancellation token. + The number of deleted entries. + + + + Creates a link between entries. + + The linked entry type. + The linked entry key. + Task instance. + + + + Creates a link between entries. + + The linked entry type. + The linked entry key. + The cancellation token. + Task instance. + + + + Creates a link between entries. + + The linked entry type. + The linked entry key. + Name of the link. + Task instance. + + + + Creates a link between entries. + + The linked entry type. + The linked entry key. + Name of the link. + The cancellation token. + Task instance. + + + + Creates a link between entries. + + The linked entry type. + The link expression. + The linked entry key. + Task instance. + + + + Creates a link between entries. + + The linked entry type. + The link expression. + The linked entry key. + The cancellation token. + Task instance. + + + + Creates a link between entries. + + The link expression. + The linked entry key. + Task instance. + + + + Creates a link between entries. + + The link expression. + The linked entry key. + The cancellation token. + Task instance. + + + + Creates a link between entries. + + The link expression. + The linked entry key. + Task instance. + + + + Creates a link between entries. + + The link expression. + The linked entry key. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + Name of the link. + Task instance. + + + + Deletes a link between entries. + + Name of the link. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The link expression. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The link expression. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The link expression. + Task instance. + + + + Deletes a link between entries. + + The link expression. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The linked entry key. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The linked entry key. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The linked entry key. + Name of the link. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The linked entry key. + Name of the link. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The link expression. + The linked entry key. + Task instance. + + + + Deletes a link between entries. + + The linked entry type. + The link expression. + The linked entry key. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The link expression. + The linked entry key. + Task instance. + + + + Deletes a link between entries. + + The link expression. + The linked entry key. + The cancellation token. + Task instance. + + + + Casts the collection of base entities as the collection of derived ones. + + Name of the derived collection. + Self. + + + + Casts the collection of base entities as the collection of derived ones. + + Name of the derived collection. + Self. + + + + Casts the collection of base entities as the collection of derived ones. + + The expression for the derived collection. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Gets a value indicating whether the OData command filter represent the entry key. + + + true if the filter is an entry key; otherwise, false. + + + + + Converts the current command filter value to the entry key if they are equivalent; otherwise returns null. + + + The filter as entry key. + + + + + Provides access to OData operations in a fluent style. + + The entity type. + + + + Sets the container for data not covered by the entity properties. Typically used with OData open types. + + The filter expression. + Self. + + + + Sets the container for media stream content to be retrieved or updated together with standard entity properties. + + The media content properties. + Self. + + + + Sets the container for media stream content to be retrieved or updated together with standard entity properties. + + The media content properties. + Self. + + + + Sets the container for media stream content to be retrieved or updated together with standard entity properties. + + The media content properties. + Self. + + + + Sets the container for media stream content to be retrieved or updated together with standard entity properties. + + The media content properties. + Self. + + + + Sets the specified entry key. + + The entry key. + Self. + + + + Sets the specified entry key. + + The entry key. + Self. + + + + Sets the specified entry key. + + The entry key. + Self. + + + + Sets the specified entry key. + + The entry key. + Self. + + + + Sets the specified OData filter. + + The filter. + Self. + + + + Sets the specified OData filter. + + The filter expression. + Self. + + + + Sets the specified OData filter. + + The filter expression. + Self. + + + + Sets the specified OData search. + + The search term. + Self. + + + + Sets the OData function name. + + Name of the function. + Self. + + + + Sets the OData function name. + + Name of the function. + Self. + + + + Sets the OData action name. + + Name of the action. + Self. + + + + Skips the specified number of entries from the result. + + The count. + Self. + + + + Limits the number of results with the specified value. + + The count. + Self. + + + + Expands top level of all associations. + + The . + Self. + + + + Expands the top level of the specified associations. + + The associations to expand. + Self. + + + + Expands the number of levels of the specified associations. + + The . + The associations to expand. + Self. + + + + Expands the top level of the specified associations. + + The associations to expand. + Self. + + + + Expands the number of levels of the specified associations. + + The . + The associations to expand. + Self. + + + + Expands the top level of the specified associations. + + The associations to expand. + Self. + + + + Expands the number of levels of the specified associations. + + The . + The associations to expand. + Self. + + + + Expands the top level of the specified expression. + + The expression for associations to expand. + Self. + + + + Expands the number of levels of the specified associations. + + The . + The expression for associations to expand. + Self. + + + + Selects the specified result columns. + + The selected columns. + Self. + + + + Selects the specified result columns. + + The selected columns. + Self. + + + + Selects the specified result columns. + + The selected columns. + Self. + + + + Selects the specified result columns. + + The expression for the selected columns. + Self. + + + + Sorts the result by the specified columns in the specified order. + + The sort columns. + Self. + + + + Sorts the result by the specified columns in ascending order. + + The sort columns. + Self. + + + + Sorts the result by the specified columns in ascending order. + + The sort columns. + Self. + + + + Sorts the result by the specified columns in ascending order. + + The expression for the sort columns. + Self. + + + + Sorts the result by the specified columns in ascending order. + + The expression for the sort columns. + Self. + + + + Sorts the result by the specified columns in descending order. + + The sort columns. + Self. + + + + Sorts the result by the specified columns in descending order. + + The sort columns. + Self. + + + + Sorts the result by the specified columns in descending order. + + The expression for the sort columns. + Self. + + + + Sorts the result by the specified columns in descending order. + + The expression for the sort columns. + Self. + + + + Sets the custom query options. + + The custom query options string. + Self. + + + + Sets the custom query options. + + The key/value collection of custom query options. + Self. + + + + Sets the custom query options. + + The custom query options expression. + Self. + + + + Sets the custom query options. + + The custom query options expression. + Self. + + + + Adds a header to be included in the HTTP request. + + The header name. + The header value. + Ignored in batch actions. For batch headers use the method. + Self. + + + + Adds a collection of headers to be included in the HTTP request. + + The header name. + The header value. + Ignored in batch actions. For batch headers use the method. + Self. + + + + Selects retrieval of an entity media stream. + + Self. + + + + Selects retrieval of a named media stream. + + The media stream name. + Self. + + + + Selects retrieval of a named media stream. + + The media stream name expression. + Self. + + + + Selects retrieval of a named media stream. + + The media stream name expression. + Self. + + + + Requests the number of results. + + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + Name of the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + The type of the linked entity. + The expression for the link. + Self. + + + + Navigates to the linked entity. + + Name of the link. + Self. + + + + Navigates to the linked entity. + + The expression for the link. + Self. + + + + Executes the OData function or action. + + Execution result. + + + + Executes the OData function or action. + + The cancellation token. + Action execution result. + + + + Executes the OData function or action. + + Execution result. + + + + Executes the OData function or action. + + Execution result. + + + + Executes the OData function or action. + + The cancellation token. + Action execution result. + + + + Executes the OData function or action. + + The cancellation token. + Action execution result. + + + + Executes the OData function or action and returns collection. + + Action execution result. + + + + Executes the OData function or action and returns collection. + + The cancellation token. + Execution result. + + + + Executes the OData function or action and returns scalar result. + + The type of the result. + Execution result. + + + + Executes the OData function or action and returns scalar result. + + The type of the result. + The cancellation token. + Action execution result. + + + + Executes the OData function or action and returns an array. + + The type of the result array. + Execution result. + + + + Executes the OData function or action and returns an array. + + Execution result. + + + + Executes the OData function or action and returns an array. + + The type of the result array. + The cancellation token. + Action execution result. + + + + Executes the OData function or action and returns an array. + + The OData feed annotations. + Execution result. + + + + Executes the OData function or action and returns an array. + + The OData feed annotations. + Execution result. + + + + Executes the OData function or action and returns an array. + + The cancellation token. + The OData feed annotations. + Execution result. + + + + Executes the OData function or action and returns an array. + + The cancellation token. + The OData feed annotations. + Execution result. + + + + Executes the OData function or action and returns an array. + + The cancellation token. + Action execution result. + + + + Gets the OData command text. + + The command text. + + + + Gets the OData command text. + + The cancellation token. + The command text. + + + + Provides access to OData media stream operations. + + + + + Retrieves a media stream by executing OData GET request. + + The media stream. + + + + Retrieves a media stream by executing OData GET request. + + The cancellation token. + The media stream. + + + + Retrieves a media stream as byte array by executing OData GET request. + + The media stream converted to byte array. + + + + Retrieves a media stream as byte array by executing OData GET request. + + The cancellation token. + The media stream converted to byte array. + + + + Retrieves a media stream as string by executing OData GET request. + + The media stream converted to string. + + + + Retrieves a media stream as string by executing OData GET request. + + The cancellation token. + The media stream converted to string. + + + + Assigns a media stream by executing OData PUT request. + + The media stream. + The media content type. + if set to true sets the resource ETag in the updated request header. + Task instance. + + + + Assigns a media stream by executing OData PUT request. + + The media stream. + The media content type. + if set to true sets the resource ETag in the updated request header. + The cancellation token. + Task instance. + + + + Assigns a media stream by executing OData PUT request. + + The media stream content represented as byte array. + The media content type. + if set to true sets the resource ETag in the updated request header. + Task instance. + + + + Assigns a media stream by executing OData PUT request. + + The media stream content represented as byte array. + The media content type. + if set to true sets the resource ETag in the updated request header. + The cancellation token. + Task instance. + + + + Assigns a media stream by executing OData PUT request. + + The media stream content represented as string. + if set to true sets the resource ETag in the updated request header. + Task instance. + + + + Assigns a media stream by executing OData PUT request. + + The media stream content represented as string. + if set to true sets the resource ETag in the updated request header. + The cancellation token. + Task instance. + + + + Gets the OData command text. + + The command text. + + + + Gets the OData command text. + + The cancellation token. + The command text. + + + + Provides access to unbound OData operations in a fluent style. + + The entity type. + + + + Casts the collection of base entities as the collection of derived ones. + + Name of the derived collection. + Self. + + + + Casts the collection of base entities as the collection of derived ones. + + Name of the derived collection. + Self. + + + + Casts the collection of base entities as the collection of derived ones. + + The expression for the derived collection. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The value to update the entry with. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Sets the specified entry value for update. + + The entry with the updated value. + The list of associations to be passed by value for deep insert/update. + Self. + + + + Provides access to OData operations in a fluent style. + + The entry type. + + + + The exception that is thrown when the service failed to process the Web request + + + + + Creates from the instance of HttpResponseMessage. + + The instance of . + The source used to build exception message, see + The instance of . + + + + Creates from the instance of WebException. + + The instance of . + The source used to build exception message, see + The instance of . + + + + Creates from the instance of HttpResponseMessage. + + The HTTP status code. + The source used to build exception message, see + + The instance of . + + + + Initializes a new instance of the class. + + The message that describes the error. + The HTTP status code. + The original request URI. + The response content. + The source used to build exception message, see + The inner exception. + + + + Initializes a new instance of the class. + + The inner exception. + + + + Gets the . + + + The . + + + + + Gets the HTTP response text. + + + The response text. + + + + + Gets the HTTP Uri + + + The original request URI, or the resulting URI if a redirect took place. + + + + + Gets the reason phrase associated with the Http status code. + + + + + The message of an exception raised after a non successful Http request. + + + + + The reason phrase of the HTTP response message. + + + + + The content of the HTTP response message. + + + + + Both the reason phrase and content of the http response message. + + + + + Provides access to OData operations. + + + + + Returns an instance of a fluent OData client for the specified collection. + + Name of the collection. + The fluent OData client instance. + + + + Returns an instance of a fluent OData client for the specified collection. + + Collection expression. + The fluent OData client instance. + + + + Returns an instance of a fluent OData client for the specified collection. + + Name of the collection. + The fluent OData client instance. + + + + Returns an instance of a fluent OData client for unbound operations (functions and actions). + + The fluent OData client instance. + + + + Returns an instance of a fluent OData client for unbound operations (functions and actions). + + The fluent OData client instance. + + + + Gets the OData service metadata. + + The service metadata. + + + + Gets the OData service metadata. + + The service metadata. + + + + Gets the OData service metadata. + + OData protocol specific metadata interface + + The service metadata. + + + + + Gets the OData service metadata. + + OData protocol specific metadata interface + The cancellation token. + + The service metadata. + + + + + Gets the OData service metadata as string. + + The service metadata string. + + + + Gets the OData service metadata as string. + + The cancellation token. + The service metadata string. + + + + Gets the OData command text. + + The name of the collection. + The command expression. + The command text. + + + + Gets the OData command text. + + The name of the collection. + The command expression. + The cancellation token. + The command text. + + + + Gets the OData command text. + + The collection type. + The name of the collection. + The command expression. + The command text. + + + + Gets the OData command text. + + The collection type. + The name of the collection. + The command expression. + The cancellation token. + The command text. + + + + Retrieves entries by executing OData GET request. + + The OData command text. + Entries found. + + + + Retrieves entries by executing OData GET request. + + The OData command text. + The cancellation token. + Entries found. + + + + Retrieves entries by executing OData GET request. + + The OData command text. + if set to true the result is expected to be of a scalar type. + Entries found. + + + + Retrieves entries by executing OData GET request. + + The OData command text. + if set to true the result is expected to be of a scalar type. + The cancellation token. + Entries found. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The OData command text. + The OData feed annotations. + Entries found with entry count. + + + + Retrieves entries by executing OData GET request and assigns OData feed annotations. + + The OData command text. + The OData feed annotations. + The cancellation token. + Entries found with entry count. + + + + Retrieves an entry by executing OData GET request. + + The OData command text. + The first of the entries found. + + + + Retrieves an entry by executing OData GET request. + + The OData command text. + The cancellation token. + The first of the entries found. + + + + Retrieves an entry as a scalar type by executing OData GET request. + + The OData command text. + The result as a scalar type. + + + + Retrieves an entry as a scalar type by executing OData GET request. + + The OData command text. + The cancellation token. + The result as a scalar type. + + + + Looks up an entry by executing OData GET request. + + The name of the collection. + The entry key. + The entry with the specified key + + + + Looks up an entry by executing OData GET request. + + The name of the collection. + The cancellation token. + The entry key. + The entry with the specified key + + + + Looks up an entry by executing OData GET request. + + The name of the collection. + The entry key. + The entry with the specified key + + + + Looks up an entry by executing OData GET request. + + The name of the collection. + The entry key. + The cancellation token. + The entry with the specified key + + + + Insert a new entry by executing OData POST request. + + The name of the collection. + The entry data. + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + The name of the collection. + The entry data. + The cancellation token. + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + The name of the collection. + The entry data. + if set to true returns the new entry data, otherwise returns null. + The newly inserted entry + + + + Insert a new entry by executing OData POST request. + + The name of the collection. + The entry data. + if set to true returns the new entry data, otherwise returns null. + The cancellation token. + The newly inserted entry + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The name of the collection. + The entry key. + The entry data. + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The name of the collection. + The entry key. + The entry data. + The cancellation token. + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The name of the collection. + The entry key. + The entry data. + if set to true returns the updated entry data, otherwise returns null. + The updated entry data + + + + Updates the existing entry by executing OData PUT or PATCH request. + + The name of the collection. + The entry key. + The entry data. + if set to true returns the updated entry data, otherwise returns null. + The cancellation token. + The updated entry data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The name of the collection. + The command text. + The entry data. + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The name of the collection. + The command text. + The entry data. + The cancellation token. + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The name of the collection. + The command text. + The entry data. + if set to true returns the updated entry data, otherwise returns null. + The updated entries data + + + + Updates entries by executing multiple OData PUT or PATCH requests. + + The name of the collection. + The command text. + The entry data. + if set to true returns the updated entry data, otherwise returns null. + The cancellation token. + The updated entries data + + + + Deletes the existing entry by executing OData DELETE request. + + The name of the collection. + The entry key. + Task instance. + + + + Deletes the existing entry by executing OData DELETE request. + + The name of the collection. + The entry key. + The cancellation token. + Task instance. + + + + Deletes entries by executing multiple OData DELETE requests. + + The name of the collection. + The command text. + The number of deleted entries. + + + + Deletes entries by executing multiple OData DELETE requests. + + The name of the collection. + The command text. + The cancellation token. + The number of deleted entries. + + + + Creates a link between entries. + + The name of the collection. + The entry key. + Name of the link. + The linked entry key. + Task instance. + + + + Creates a link between entries. + + The name of the collection. + The entry key. + Name of the link. + The linked entry key. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The name of the collection. + The entry key. + Name of the link to be deleted. + Task instance. + + + + Deletes a link between entries. + + The name of the collection. + The entry key. + Name of the link to be deleted. + The cancellation token. + Task instance. + + + + Deletes a link between entries. + + The name of the collection. + The entry key. + Name of the link to be deleted. + The linked entry key. + Task instance. + + + + Deletes a link between entries. + + The name of the collection. + The entry key. + Name of the link to be deleted. + The linked entry key. + The cancellation token. + Task instance. + + + + Retrieves a media entry stream by executing OData GET request. + + The OData command text. + The media stream. + + + + Retrieves a media entry stream by executing OData GET request. + + The OData command text. + The cancellation token. + The media stream. + + + + Assigns a stream to a media entry by executing OData PUT request. + + The OData command text. + The media stream. + The media content type. + if set to true sets the resource ETag in the updated request header. + Task instance. + + + + Assigns a stream to a media entry by executing OData PUT request. + + The OData command text. + The media stream. + The media content type. + if set to true sets the resource ETag in the updated request header. + The cancellation token. + Task instance. + + + + Executes the OData function. + + Name of the function. + The function parameters. + Function execution result. + + + + Executes the OData function. + + Name of the function. + The function parameters. + The cancellation token. + Function execution result. + + + + Executes the OData function. + + Name of the function. + The function parameters. + Function execution result. + + + + Executes the OData function. + + Name of the function. + The function parameters. + The cancellation token. + Function execution result. + + + + Executes the OData function and returns scalar result. + + The result type. + Name of the function. + The parameters. + Function execution result. + + + + Executes the OData function and returns scalar result. + + The result type. + Name of the function. + The function parameters. + The cancellation token. + Function execution result. + + + + Executes the OData function and returns an array. + + The array element type. + Name of the function. + The function parameters. + Function execution result. + + + + Executes the OData function and returns an array. + + The array element type. + Name of the function. + The function parameters. + The cancellation token. + Function execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + Action execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + The cancellation token. + Action execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + Action execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + The cancellation token. + Action execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + Action execution result. + + + + Executes the OData action. + + Name of the action. + The action parameters. + The cancellation token. + Action execution result. + + + + Executes the OData action and returns scalar result. + + The result type. + Name of the action. + The parameters. + action execution result. + + + + Executes the OData action and returns scalar result. + + The result type. + Name of the action. + The action parameters. + The cancellation token. + Action execution result. + + + + Executes the OData action and returns an array. + + The array element type. + Name of the action. + The action parameters. + Action execution result. + + + + Executes the OData action and returns an array. + + The array element type. + Name of the action. + The action parameters. + The cancellation token. + Action execution result. + + + + Provides pluralization and singularization of words when resolving names of resources and properties + + + + + Pluralizes the specified word. + + The word to pluralize. + + + + + Singularizes the specified word. + + The word to singularize. + + + + + Provide access to session-specific details. + + + + + Gets OData client configuration settings. + + + + + Gets OData client adapter. + + + + + Gets OData service metadata. + + + + + Gets type information for this session. + + + + + Writes a trace message. + + Trace message format string. + Trace message parameters. + + + + Obtains an instance of that is used to issue HTTP requests to OData service. + + An instance. + + + + Register a dictionary type converter + + + + + + Register an object type converter + + + + + + Register a dictionary type converter + + + + + + + Register an object type converter + + + + + + + Determine if a type has a dictionary converter + + + + + + + Determine if a type has a dictionary converter + + + + + + + Determine if a type has an object converter + + + + + + + Determine if a type has an object converter + + + + + + + Convert a dictionary to the specified type + + + + + + + + Convert an object to the specified type + + + + + + + + Convert a dictionary to the specified type + + + + + + + + Convert an object to the specified type + + + + + + + + Performs batch processing of OData requests by grouping multiple operations in a single HTTP POST request in accordance with OData protocol + + + + + Initializes a new instance of the class. + + The URL base. + + + + Initializes a new instance of the class. + + The settings. + + + + Initializes a new instance of the class. + + The OData client which settings will be used to create a batch. + + + + Initializes a new instance of the class. + + The OData client which will be used to create a batch. + Flag indicating that the existing session from the + should be used rather than creating a new one. + + + + + Adds an OData command to an OData batch. + + The OData batch. + The command to add to the batch. + + + + + Executes the OData batch by submitting pending requests to the OData service. + + + + + + Executes the OData batch by submitting pending requests to the OData service. + + The cancellation token. + + + + + Adds a header to be included in the HTTP request. + + The header name. + The header value. + Self. + + + + Adds a collection of headers to be included in the HTTP request. + + The header name. + The header value. + Self. + + + + Provides access to OData operations. + + + Provides access to OData operations. + + + + + Retrieves the OData service metadata. + + The URL base of the OData service. + The service metadata. + + + + Retrieves the OData service metadata. + + The URL base of the OData service. + The cancellation token. + The service metadata. + + + + Retrieves the OData service metadata. + + The URL base of the OData service. + The OData service access credentials. + The service metadata. + + + + Retrieves the OData service metadata. + + The URL base of the OData service. + The OData service access credentials. + The cancellation token. + The service metadata. + + + + Retrieves the OData service metadata. + + OData protocol specific metadata interface + The URL base of the OData service. + The service metadata. + + + + Retrieves the OData service metadata. + + OData protocol specific metadata interface + The URL base of the OData service. + The cancellation token. + The service metadata. + + + + Retrieves the OData service metadata. + + OData protocol specific metadata interface + The URL base of the OData service. + The OData service access credentials. + The service metadata. + + + + Retrieves the OData service metadata. + + OData protocol specific metadata interface + The URL base of the OData service. + The OData service access credentials. + The cancellation token. + + The service metadata. + + + + + Retrieves the OData service metadata as string. + + The URL base of the OData service. + The service metadata. + + + + Gets The service metadata as string asynchronous. + + The URL base of the OData service. + The cancellation token. + The service metadata. + + + + Gets The service metadata as string asynchronous. + + The URL base of the OData service. + The OData service access credentials. + The service metadata. + + + + Gets The service metadata as string asynchronous. + + The URL base. + The OData service access credentials. + The cancellation token. + The service metadata. + + + + Initializes a new instance of the class. + + The OData service URL. + + This constructor overload is obsolete. Use constructor overload./> + + + + + Initializes a new instance of the class. + + The OData service URL. + + + + Initializes a new instance of the class. + + The OData client settings. + + + + Parses the OData service metadata string. + + OData protocol specific metadata interface + The metadata string. + + The service metadata. + + + + + Clears service metadata cache. + + + + + Returns an instance of a fluent OData client for the specified collection. + + Name of the collection. + + The fluent OData client instance. + + + + + Returns an instance of a fluent OData client for the specified collection. + + Collection expression. + + The fluent OData client instance. + + + + + Returns an instance of a fluent OData client for the specified collection. + + The entity type. + Name of the collection. + + The fluent OData client instance. + + + + + Returns an instance of a fluent OData client for unbound operations (functions and actions). + + The fluent OData client instance. + + + + Returns an instance of a fluent OData client for unbound operations (functions and actions). + + The fluent OData client instance. + + + + Allows callers to manipulate the request headers in between request executions. + Useful for retrieval of x-csrf-tokens when you want to update the request header + with the retrieved token on subsequent requests. + + Note that this overrides any current method. + + + The list of headers to update. + + + + OData client configuration settings + + + + + Gets or sets external instance of HttpClient to be used when issuing OData requests. + + + The instance of . + + + + + Gets or sets the OData service URL. + + + The URL address. + + + + + Gets or sets the OData client credentials. + + + The client credentials. + + + + + Gets or sets the OData payload format. + + + The payload format (JSON or Atom). + + + + + Gets or sets the time period to wait before the request times out. + + + The timeout. + + + + + Gets or sets a value indicating whether entry properties should be extended with the OData annotations. + + + true to include OData annotations in entry properties; otherwise, false. + + + + + Gets or sets a value indicating whether resource not found exception (404) should be ignored. + + + true to ignore resource not found exception; otherwise, false. + + + + + Gets or sets a value indicating whether unmapped structural or navigation properties should be ignored or cause . + + + true to ignore unmapped properties; otherwise, false. + + + + + Gets or sets a preferred update method for OData entries. The selected method will be used wherever it's compatible with the update scenario. + If not specified, PATCH is preferred due to better performance. + + + The update method (PUT or PATCH). + + + + + Gets or sets the OData service metadata document. If not set, service metadata is downloaded prior to the first call to the OData service and stored in an in-memory cache. + + + The content of the service metadata document. + + + + + Gets the associated with the uri, used to register converters and dynamic types. + + + + + Gets or sets a value indicating whether connection should be disposed and renewed between OData requests. + + + true to create a new instance for each request; false to reuse between requests. + + + + + Gets or sets a value indicating whether should omit namespaces for function and action calls in generated URI. + + + true to omit namespaces for function and action calls in generated URI; false otherwise. + + + + + Gets or sets a value indicating whether should omit type prefix for Enum values in generated URI. + + + true to omit type prefix for Enum values in generated URI; false otherwise. + + + + + Gets or sets a name resolver for OData resources, types and properties. + + + If not set, a built-in word pluralizer is used to resolve resource, type and property names. + + + + + Gets or sets the adapter factory that is used by the session + + + + + Gets or sets the HttpMessageHandler factory used by HttpClient. + If not set, ODataClient creates an instance of HttpClientHandler. + + + The action on . + + + + + Gets or sets the action on HttpClientHandler. + + + The action on . + + + + + Gets or sets the handler that executes and returns . + Can be used to mock OData request execution without sending messages to the server. + + + The executor. + + + + + Gets or sets the action executed before the OData request. + + + The action on . + + + + + Gets or sets the action executed before the OData request. + + + The action on . + + + + + Gets or sets the action executed after the OData request. + + + The action on . + + + + + Gets or sets the action executed after the OData request. + + + The action on . + + + + + Gets or sets the method that will be executed to write trace messages. + + + The trace message handler. + + + + + Gets or sets the filter of information that is written to trace messages. + + + The filter value. + + + + + + Gets or sets the value that indicates either to read untyped properties as strings. + + + true (Default) to read untyped values as strings; false otherwise. + + + + + Gets or sets the BatchPayloadUriOption to use when building a batch request payload. + Only available for OData V4. + + + AbsoluteUri (Default) to use absolute URIs for the batch payload. + + + AbsoluteUriUsingHostHeader to use absolute URIs from the Host header for the batch payload. + + + RelativeUri to use relative URIs for the batch payload. + + + + + Gets or sets the source of the message of web request exceptions. + + + ReasonPhrase (Default) to output the reason phrase of the HTTP request message. + + + ResponseContent (Default) to output the content of the HTTP request message. + + /// + Both (Default) to output both the reason phrase and the content of the HTTP request message. + + + + + Gets or sets validations to perform. Default value is , + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL address. + The client credentials. + + + + Initializes a new instance of the class. + + The URL address. + The client credentials. + + + + Initializes a new instance of the class. + + The instance of . + The URL address. + The client credentials. + + + + A container for an OData entry properties. Normally not used directly by the client code. + + + + + The content of the OData entry. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The collection of entry properties. + + + + Gets or sets the value of the specified property. + + + The property value. + + The property name. + The property value. + + + + Returns OData entry properties as dictionary. + + A dictionary of OData entry properties. + + + + Performs an explicit conversion from to . + + The property collection. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The OData entry. + + The result of the conversion. + + + + + Contains additional information about OData entry + + + + + Contains additional information about OData association links + + + + + The association name. + + + + + The association URI. + + + + + The entry ID. + + + + + The type name of the entry. + + + + + The link that can be used to read the entry. + + + + + The link can be used to edit the entry. + + + + + The entry ETag. + + + + + The collection of entry association links. + + + + + The media resource annotations. + + + + + Custom feed annotations. + + + + + Custom feed annotations returned as an adapter-specific annotation type + + Custom type + + + + + Specifies expansion levels. + + + + + Specifies maximum expansion levels. + + + + + Specifies expansion mode (by value or by reference). + + + + + Associations should be expanded by value. + + + + + Associations should be expanded by reference. + + + + + Specifies how to expand entity associations. + + + + + The number of levels to expand. + + + + + The expansion mode (by value or by reference). + + + + + Expansion by value. + + The number of levels to expand. + + + + Expansion by value. + + The number of levels to expand. + + + + Expansion by reference. + + The number of levels to expand. + + + + Expansion by reference. + + The number of levels to expand. + + + + Contains additional information about OData feed + + + + + The ID of the corresponding entity set. + + + + + The result item count. + + + + + A URL that can be used to retrieve changes to the current set of results + + + + + A URL that can be used to retrieve the next subset of the requested collection. + When set, indicates that the response response is only a subset of the requested collection of entities or collection of entity references. + + + + + Custom feed annotations. + + + + + Custom feed annotations returned as an adapter-specific annotation type + + Custom type + + + + + Contains additional information about OData media resource + + + + + The media resource content type. + + + + + The link that can be used to read the media resource. + + + + + The link can be used to edit the media resource. + + + + + The media resource ETag. + + + + + The format of the messages exchanged with OData service. + + + + + The message format is not specified and will be determined by the OData service. + + + + + OData message content will be formatted as Atom + + + + + OData message content will be formatted as JSON + + + + + OData protocol version. + + + + + Version 1.0 + + + + + Version 2.0 + + + + + Version 3.0 + + + + + Version 4.0 + + + + + Specifies types of information to be written to trace messages. + + + + + No trace information is written to trace messages. + + + + + Trace the contents of HTTP requests. + + + + + Trace the contents of HTTP responses. + + + + + Trace all internal activities. + + + + + The preferred entry update method. + + + + + Use PATCH to update OData entries + + + + + Use MERGE to update OData entries + + + + + Use PUT to update OData entries + + + + + Provides pluralization and singularization of words when resolving names of resources and properties + + + + + Initializes a new instance of the class. + + The Pluralize function delegate. + The Singularize function delegate. + + + + Pluralizes the specified word. + + The word to pluralize. + + + + + Singularizes the specified word. + + The word to singularize. + + + + + 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. + + + + + + + + Creates a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The exception that is thrown when service metadata doesn't contain the requested metadata object + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the metadata object. + + + + Initializes a new instance of the class. + + Name of the metadata object. + The message that describes the error. + + + + Initializes a new instance of the class. + + Name of the object. + The message that describes the error. + The inner exception. + + + + Gets the name of the unresolved metadata object. + + + The name of the object. + + + + + Validation kinds used in ODataMessageReaderSettings and ODataMessageWriterSettings. + + + This must be kept aligned with https://github.com/OData/odata.net/blob/master/src/Microsoft.OData.Core/ValidationKinds.cs + + + + + No validations. + + + + + Disallow duplicate properties in ODataResource (i.e., properties with the same name). + If no duplication can be guaranteed, this flag can be turned off for better performance. + + + + + Do not support for undeclared property for non open type. + + + + + Validates that the type in input must exactly match the model. + If the input can be guaranteed to be valid, this flag can be turned off for better performance. + + + + + Enable all validations. + + + + diff --git a/src/Simple.OData.Client.Core/SimplePluralizer.cs b/src/Simple.OData.Client.Core/SimplePluralizer.cs new file mode 100644 index 000000000..8e7a66ba7 --- /dev/null +++ b/src/Simple.OData.Client.Core/SimplePluralizer.cs @@ -0,0 +1,359 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Simple.OData.Client; + +// Based on gist by Juliën Hanssens +// https://gist.github.com/hanssens/2835960 +internal class SimplePluralizer : IPluralizer +{ + private static Dictionary _specialSingulars; + private static Dictionary _specialPlurals; + private static List _suffixRules; + + static SimplePluralizer() + { + PopulateLookupTables(); + PopulateSuffixRules(); + } + + public string Pluralize(string noun) + { + return AdjustCase(ToPluralInternal(noun), noun); + } + + public string Singularize(string noun) + { + return AdjustCase(ToSingularInternal(noun), noun); + } + + public bool IsNounPluralOfNoun(string plural, string singular) + { + return string.Compare(ToSingularInternal(plural), singular, StringComparison.OrdinalIgnoreCase) == 0; + } + + private static readonly string[] _specialWordsStringTable = + { + "agendum", "agenda", "", + "albino", "albinos", "", + "alga", "algae", "", + "alumna", "alumnae", "", + "apex", "apices", "apexes", + "archipelago", "archipelagos", "", + "bacterium", "bacteria", "", + "beef", "beefs", "beeves", + "bison", "", "", + "brother", "brothers", "brethren", + "candelabrum", "candelabra", "", + "carp", "", "", + "casino", "casinos", "", + "child", "children", "", + "chassis", "", "", + "chinese", "", "", + "clippers", "", "", + "cod", "", "", + "codex", "codices", "", + "commando", "commandos", "", + "corps", "", "", + "cortex", "cortices", "cortexes", + "cow", "cows", "kine", + "criterion", "criteria", "", + "datum", "data", "", + "debris", "", "", + "diabetes", "", "", + "ditto", "dittos", "", + "djinn", "", "", + "dynamo", "", "", + "elk", "", "", + "embryo", "embryos", "", + "ephemeris", "ephemeris", "ephemerides", + "erratum", "errata", "", + "extremum", "extrema", "", + "fiasco", "fiascos", "", + "fish", "fishes", "fish", + "flounder", "", "", + "focus", "focuses", "foci", + "fungus", "fungi", "funguses", + "gallows", "", "", + "genie", "genies", "genii", + "ghetto", "ghettos", "", + "graffiti", "", "", + "headquarters", "", "", + "herpes", "", "", + "homework", "", "", + "index", "indices", "indexes", + "inferno", "infernos", "", + "japanese", "", "", + "jumbo", "jumbos", "", + "latex", "latices", "latexes", + "lingo", "lingos", "", + "mackerel", "", "", + "macro", "macros", "", + "manifesto", "manifestos", "", + "measles", "", "", + "money", "moneys", "monies", + "mongoose", "mongooses", "mongoose", + "mumps", "", "", + "murex", "murecis", "", + "mythos", "mythos", "mythoi", + "news", "", "", + "octopus", "octopuses", "octopodes", + "ovum", "ova", "", + "ox", "ox", "oxen", + "person", "persons", "people", + "photo", "photos", "", + "pincers", "", "", + "pliers", "", "", + "pro", "pros", "", + "rabies", "", "", + "radius", "radiuses", "radii", + "rhino", "rhinos", "", + "salmon", "", "", + "scissors", "", "", + "series", "", "", + "shears", "", "", + "silex", "silices", "", + "simplex", "simplices", "simplexes", + "soliloquy", "soliloquies", "soliloquy", + "species", "", "", + "stratum", "strata", "", + "swine", "", "", + "trout", "", "", + "tuna", "", "", + "vertebra", "vertebrae", "", + "vertex", "vertices", "vertexes", + "vortex", "vortices", "vortexes", + }; + private static readonly string[] _suffixRulesStringTable = + { + "ch", "ches", + "sh", "shes", + "ss", "sses", + "ay", "ays", + "ey", "eys", + "iy", "iys", + "oy", "oys", + "uy", "uys", + "y", "ies", + "ao", "aos", + "eo", "eos", + "io", "ios", + "oo", "oos", + "uo", "uos", + "o", "oes", + "cis", "ces", + "sis", "ses", + "xis", "xes", + "louse", "lice", + "mouse", "mice", + "zoon", "zoa", + "man", "men", + "deer", "deer", + "fish", "fish", + "sheep", "sheep", + "itis", "itis", + "ois", "ois", + "pox", "pox", + "ox", "oxes", + "foot", "feet", + "goose", "geese", + "tooth", "teeth", + "alf", "alves", + "elf", "elves", + "olf", "olves", + "arf", "arves", + "leaf", "leaves", + "nife", "nives", + "life", "lives", + "wife", "wives", + }; + + private class Word + { + public readonly string Singular; + public readonly string Plural; + public Word(string singular, string plural) + { + Singular = singular; + Plural = plural; + } + } + + private class SuffixRule + { + private readonly string _singularSuffix; + private readonly string _pluralSuffix; + public SuffixRule(string singular, string plural) + { + _singularSuffix = singular; + _pluralSuffix = plural; + } + public bool TryToPlural(string word, out string plural) + { + if (word.EndsWith(_singularSuffix, StringComparison.OrdinalIgnoreCase)) + { + plural = word.Substring(0, word.Length - _singularSuffix.Length) + _pluralSuffix; + return true; + } + else + { + plural = null; + return false; + } + } + public bool TryToSingular(string word, out string singular) + { + if (word.EndsWith(_pluralSuffix, StringComparison.OrdinalIgnoreCase)) + { + singular = word.Substring(0, word.Length - _pluralSuffix.Length) + _singularSuffix; + return true; + } + else + { + singular = null; + return false; + } + } + } + + private static void PopulateLookupTables() + { + _specialSingulars = new Dictionary(StringComparer.OrdinalIgnoreCase); + _specialPlurals = new Dictionary(StringComparer.OrdinalIgnoreCase); + for (var i = 0; i < _specialWordsStringTable.Length; i += 3) + { + var s = _specialWordsStringTable[i]; + var p = _specialWordsStringTable[i + 1]; + var p2 = _specialWordsStringTable[i + 2]; + if (string.IsNullOrEmpty(p)) + { + p = s; + } + + var w = new Word(s, p); + _specialSingulars.Add(s, w); + _specialPlurals.Add(p, w); + if (!string.IsNullOrEmpty(p2)) + { + _specialPlurals.Add(p2, w); + } + } + } + + private static void PopulateSuffixRules() + { + _suffixRules = new List(); + for (var i = 0; i < _suffixRulesStringTable.Length; i += 2) + { + var singular = _suffixRulesStringTable[i]; + var plural = _suffixRulesStringTable[i + 1]; + _suffixRules.Add(new SuffixRule(singular, plural)); + } + } + + private string ToPluralInternal(string s) + { + if (string.IsNullOrEmpty(s) || s.ToCharArray().Any(x => x > 0x7F)) + { + return s; + } + // lookup special words + if (_specialSingulars.TryGetValue(s, out var word)) + { + return word.Plural; + } + // apply suffix rules + foreach (var rule in _suffixRules) + { + if (rule.TryToPlural(s, out var plural)) + { + return plural; + } + } + // apply the default rule + return s + "s"; + } + + private string ToSingularInternal(string s) + { + if (string.IsNullOrEmpty(s) || s.ToCharArray().Any(x => x > 0x7F)) + { + return s; + } + // lookup special words + if (_specialPlurals.TryGetValue(s, out var word)) + { + return word.Singular; + } + // apply suffix rules + foreach (var rule in _suffixRules) + { + if (rule.TryToSingular(s, out var singular)) + { + return singular; + } + } + // apply the default rule + if (s.EndsWith("s", StringComparison.OrdinalIgnoreCase)) + { + return s.Substring(0, s.Length - 1); + } + + return s; + } + + private string AdjustCase(string s, string template) + { + if (string.IsNullOrEmpty(s)) + { + return s; + } + + // determine the type of casing of the template string + var foundUpperOrLower = false; + var allLower = true; + var allUpper = true; + var firstUpper = false; + for (var i = 0; i < template.Length; i++) + { + if (char.IsUpper(template[i])) + { + if (i == 0) + { + firstUpper = true; + } + + allLower = false; + foundUpperOrLower = true; + } + else if (char.IsLower(template[i])) + { + allUpper = false; + foundUpperOrLower = true; + } + } + + // change the case according to template + if (foundUpperOrLower) + { + if (allLower) + { + s = s.ToLowerInvariant(); + } + else if (allUpper) + { + s = s.ToUpperInvariant(); + } + else if (firstUpper) + { + if (!char.IsUpper(s[0])) + { + s = s.Substring(0, 1).ToUpperInvariant() + s.Substring(1); + } + } + } + + return s; + } +} diff --git a/src/Simple.OData.Client.Core/TypeCaches.cs b/src/Simple.OData.Client.Core/TypeCaches.cs new file mode 100644 index 000000000..a0d60105f --- /dev/null +++ b/src/Simple.OData.Client.Core/TypeCaches.cs @@ -0,0 +1,19 @@ +using System.Collections.Concurrent; + +namespace Simple.OData.Client; + +internal static class TypeCaches +{ + private static readonly ConcurrentDictionary _typeCaches; + + static TypeCaches() + { + // TODO: Have a global switch whether we use the dictionary or not + _typeCaches = new ConcurrentDictionary(); + } + + internal static ITypeCache TypeCache(string uri, INameMatchResolver nameMatchResolver) + { + return _typeCaches.GetOrAdd(uri, new TypeCache(CustomConverters.Converter(uri), nameMatchResolver)); + } +} diff --git a/src/Simple.OData.Client.Core/TypeConverter.cs b/src/Simple.OData.Client.Core/TypeConverter.cs new file mode 100644 index 000000000..50a1c02a2 --- /dev/null +++ b/src/Simple.OData.Client.Core/TypeConverter.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; + +namespace Simple.OData.Client; + +/// +public class TypeConverter : ITypeConverter +{ + private readonly Dictionary, object>> _dictionaryConverters; + private readonly Dictionary> _objectConverters; + + /// + /// Creates a new instance of the class. + /// + public TypeConverter() + { + _dictionaryConverters = new Dictionary, object>>(); + _objectConverters = new Dictionary>(); + } + + /// + public void RegisterTypeConverter(Func, object> converter) + { + RegisterTypeConverter(typeof(T), converter); + } + + /// + public void RegisterTypeConverter(Func converter) + { + RegisterTypeConverter(typeof(T), converter); + } + + /// + public void RegisterTypeConverter(Type type, Func, object> converter) + { + lock (_dictionaryConverters) + { + if (_dictionaryConverters.ContainsKey(type)) + { + _dictionaryConverters.Remove(type); + } + + _dictionaryConverters.Add(type, converter); + } + } + + /// + public void RegisterTypeConverter(Type type, Func converter) + { + lock (_objectConverters) + { + if (_objectConverters.ContainsKey(type)) + { + _objectConverters.Remove(type); + } + + _objectConverters.Add(type, converter); + } + } + + /// + public bool HasDictionaryConverter() + { + return HasDictionaryConverter(typeof(T)); + } + + /// + public bool HasDictionaryConverter(Type type) + { + return _dictionaryConverters.ContainsKey(type); + } + + /// + public bool HasObjectConverter() + { + return HasObjectConverter(typeof(T)); + } + + /// + public bool HasObjectConverter(Type type) + { + return _objectConverters.ContainsKey(type); + } + + /// + public T Convert(IDictionary value) + { + return (T)Convert(value, typeof(T)); + } + + /// + public T Convert(object value) + { + return (T)Convert(value, typeof(T)); + } + + /// + public object Convert(IDictionary value, Type type) + { + if (_dictionaryConverters.TryGetValue(type, out var converter)) + { + return converter(value); + } + + throw new InvalidOperationException($"No custom converter found for type {type}"); + } + + /// + public object Convert(object value, Type type) + { + if (_objectConverters.TryGetValue(type, out var converter)) + { + return converter(value); + } + + throw new InvalidOperationException($"No custom converter found for type {type}"); + } +} diff --git a/src/Simple.OData.Client.Core/UnresolvableObjectException.cs b/src/Simple.OData.Client.Core/UnresolvableObjectException.cs new file mode 100644 index 000000000..9a9536a56 --- /dev/null +++ b/src/Simple.OData.Client.Core/UnresolvableObjectException.cs @@ -0,0 +1,60 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// The exception that is thrown when service metadata doesn't contain the requested metadata object +/// +public sealed class UnresolvableObjectException : Exception +{ + /// + /// Initializes a new instance of the class. + /// + public UnresolvableObjectException() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// Name of the metadata object. + public UnresolvableObjectException(string objectName) + { + ObjectName = objectName; + } + + /// + /// Initializes a new instance of the class. + /// + /// Name of the metadata object. + /// The message that describes the error. + public UnresolvableObjectException(string objectName, string message) + : base(message) + { + ObjectName = objectName; + } + + /// + /// Initializes a new instance of the class. + /// + /// Name of the object. + /// The message that describes the error. + /// The inner exception. + public UnresolvableObjectException(string objectName, string message, Exception inner) + : base(message, inner) + { + ObjectName = objectName; + } + + /// + /// Gets the name of the unresolved metadata object. + /// + /// + /// The name of the object. + /// + public string ObjectName + { + get => Data.Contains("ObjectName") ? (Data["ObjectName"] != null ? Data["ObjectName"].ToString() : "{{null}}") : null; + private set => Data["ObjectName"] = value; + } +} diff --git a/src/Simple.OData.Client.Core/Utils.cs b/src/Simple.OData.Client.Core/Utils.cs new file mode 100644 index 000000000..9db8caf3a --- /dev/null +++ b/src/Simple.OData.Client.Core/Utils.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace Simple.OData.Client; + +internal static class Utils +{ + public static string StreamToString(Stream stream, bool disposeStream = false) + { + if (!disposeStream && stream.CanSeek) + { + stream.Seek(0, SeekOrigin.Begin); + } + + var result = new StreamReader(stream).ReadToEnd(); + if (disposeStream) + { + stream.Dispose(); + } + + return result; + } + + public static byte[] StreamToByteArray(Stream stream, bool disposeStream = false) + { + if (!disposeStream && stream.CanSeek) + { + stream.Seek(0, SeekOrigin.Begin); + } + + var bytes = new byte[stream.Length]; + var result = new BinaryReader(stream).ReadBytes(bytes.Length); + if (disposeStream) + { + stream.Dispose(); + } + + return result; + } + + public static Stream StringToStream(string text) + { + return new MemoryStream(Encoding.UTF8.GetBytes(text)); + } + + public static Stream ByteArrayToStream(byte[] bytes) + { + return new MemoryStream(bytes); + } + + public static Stream CloneStream(Stream stream) + { + stream.Position = 0; + var clonedStream = new MemoryStream(); + stream.CopyTo(clonedStream); + return clonedStream; + } + + public static bool ContainsMatch(IEnumerable actualNames, string requestedName, INameMatchResolver matchResolver) + { + return actualNames.Any(x => matchResolver.IsMatch(x, requestedName)); + } + + public static bool AllMatch(IEnumerable subset, IEnumerable superset, INameMatchResolver matchResolver) + { + return subset.All(x => superset.Any(y => matchResolver.IsMatch(x, y))); + } + + public static T BestMatch(this IEnumerable collection, + Func fieldFunc, string value, INameMatchResolver matchResolver) + where T : class + { + if (ReferenceEquals(matchResolver, ODataNameMatchResolver.Strict)) + { + return collection.FirstOrDefault(x => matchResolver.IsMatch(fieldFunc(x), value)); + } + + return collection + .Where(x => matchResolver.IsMatch(fieldFunc(x), value)) + .Select(x => new { Match = x, IsStrictMatch = ODataNameMatchResolver.Strict.IsMatch(fieldFunc(x), value) }) + .OrderBy(x => x.IsStrictMatch ? 0 : 1) + .Select(x => x.Match).FirstOrDefault(); + } + + public static T BestMatch(this IEnumerable collection, + Func condition, Func fieldFunc, string value, + INameMatchResolver matchResolver) + where T : class + { + if (ReferenceEquals(matchResolver, ODataNameMatchResolver.Strict)) + { + return collection.FirstOrDefault(x => condition(x) && matchResolver.IsMatch(fieldFunc(x), value)); + } + + return collection + .Where(x => condition(x) && matchResolver.IsMatch(fieldFunc(x), value)) + .Select(x => new { Match = x, IsStrictMatch = ODataNameMatchResolver.Strict.IsMatch(fieldFunc(x), value) }) + .OrderBy(x => x.IsStrictMatch ? 0 : 1) + .Select(x => x.Match).FirstOrDefault(); + } + + public static Exception NotSupportedExpression(Expression expression) + { + return new NotSupportedException($"Not supported expression of type {expression.GetType()} ({expression.NodeType}): {expression}"); + } + + public static Uri CreateAbsoluteUri(string baseUri, string relativePath) + { + var basePath = string.IsNullOrEmpty(baseUri) ? "http://" : baseUri; + var uri = new Uri(basePath); + var baseQuery = uri.Query; + if (!string.IsNullOrEmpty(baseQuery)) + { + basePath = basePath.Substring(0, basePath.Length - baseQuery.Length); + baseQuery = baseQuery.Substring(1); + } + + if (!basePath.EndsWith("/")) + { + basePath += "/"; + } + + uri = new Uri(basePath + relativePath); + if (string.IsNullOrEmpty(baseQuery)) + { + return uri; + } + else + { + var uriHost = uri.AbsoluteUri.Substring( + 0, uri.AbsoluteUri.Length - uri.AbsolutePath.Length - uri.Query.Length); + var query = string.IsNullOrEmpty(uri.Query) + ? $"?{baseQuery}" + : $"{uri.Query}&{baseQuery}"; + + return new Uri(uriHost + uri.AbsolutePath + query); + } + } + + public static string ExtractCollectionName(string commandText) + { + var uri = new Uri(commandText, UriKind.RelativeOrAbsolute); + if (uri.IsAbsoluteUri) + { + return uri.LocalPath.Split('/').Last(); + } + else + { + return commandText.Split('?', '(', '/').First(); + } + } + + public static bool IsSystemType(Type type) + { + return + type.FullName.StartsWith("System.") || + type.FullName.StartsWith("Microsoft."); + } + + public static bool IsDesktopPlatform() + { + var cmdm = Type.GetType("System.ComponentModel.DesignerProperties, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); + return cmdm != null; + } + + public static Task GetTaskFromResult(T result) + { + return Task.FromResult(result); + } + + public static bool NamedKeyValuesMatchKeyNames(IDictionary namedKeyValues, INameMatchResolver resolver, IEnumerable keyNames, out IEnumerable> matchingNamedKeyValues) + { + matchingNamedKeyValues = null; + if (namedKeyValues is null || keyNames is null) + { + return false; + } + + if (keyNames.Count() == namedKeyValues.Count) + { + var tmpMatchingNamedKeyValues = new List>(); + foreach (var keyProperty in keyNames) + { + var namedKeyValue = namedKeyValues.FirstOrDefault(x => resolver.IsMatch(x.Key, keyProperty)); + if (namedKeyValue.Key != null) + { + tmpMatchingNamedKeyValues.Add(new KeyValuePair(keyProperty, namedKeyValue.Value)); + } + else + { + break; + } + } + + if (tmpMatchingNamedKeyValues.Count == keyNames.Count()) + { + matchingNamedKeyValues = tmpMatchingNamedKeyValues; + return true; + } + } + + return false; + } + + public static bool NamedKeyValuesContainKeyNames(IDictionary namedKeyValues, INameMatchResolver resolver, IEnumerable keyNames, out IEnumerable> matchingNamedKeyValues) + { + matchingNamedKeyValues = null; + if (namedKeyValues is null || keyNames is null) + { + return false; + } + + var tmpMatchingNamedKeyValues = new List>(); + foreach (var namedKeyValue in namedKeyValues) + { + var keyProperty = keyNames.FirstOrDefault(x => resolver.IsMatch(x, namedKeyValue.Key)); + if (keyProperty != null) + { + tmpMatchingNamedKeyValues.Add(new KeyValuePair(keyProperty, namedKeyValue.Value)); + } + } + + if (tmpMatchingNamedKeyValues.Any()) + { + matchingNamedKeyValues = tmpMatchingNamedKeyValues; + return true; + } + + return false; + } +} diff --git a/src/Simple.OData.Client.Core/ValidationKinds.cs b/src/Simple.OData.Client.Core/ValidationKinds.cs new file mode 100644 index 000000000..fd9f0b59d --- /dev/null +++ b/src/Simple.OData.Client.Core/ValidationKinds.cs @@ -0,0 +1,40 @@ +using System; + +namespace Simple.OData.Client; + +/// +/// Validation kinds used in ODataMessageReaderSettings and ODataMessageWriterSettings. +/// +/// +/// This must be kept aligned with https://github.com/OData/odata.net/blob/master/src/Microsoft.OData.Core/ValidationKinds.cs +/// +[Flags] +public enum ValidationKinds +{ + /// + /// No validations. + /// + None = 0, + + /// + /// Disallow duplicate properties in ODataResource (i.e., properties with the same name). + /// If no duplication can be guaranteed, this flag can be turned off for better performance. + /// + ThrowOnDuplicatePropertyNames = 1, + + /// + /// Do not support for undeclared property for non open type. + /// + ThrowOnUndeclaredPropertyForNonOpenType = 2, + + /// + /// Validates that the type in input must exactly match the model. + /// If the input can be guaranteed to be valid, this flag can be turned off for better performance. + /// + ThrowIfTypeConflictsWithMetadata = 4, + + /// + /// Enable all validations. + /// + All = ~0 +} diff --git a/src/Simple.OData.Client.Dynamic/DynamicODataEntry.cs b/src/Simple.OData.Client.Dynamic/DynamicODataEntry.cs new file mode 100644 index 000000000..e4b6fec84 --- /dev/null +++ b/src/Simple.OData.Client.Dynamic/DynamicODataEntry.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Linq.Expressions; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public class DynamicODataEntry : ODataEntry, IDynamicMetaObjectProvider +{ + internal DynamicODataEntry() + { + } + + internal DynamicODataEntry(IDictionary entry, ITypeCache typeCache) : base(ToDynamicODataEntry(entry, typeCache)) + { + TypeCache = typeCache; + } + + internal ITypeCache TypeCache { get; } + + private static IDictionary ToDynamicODataEntry(IDictionary entry, ITypeCache typeCache) + { + return entry?.ToDictionary( + x => x.Key, + y => y.Value is IDictionary + ? new DynamicODataEntry(y.Value as IDictionary, typeCache) + : y.Value is IEnumerable + ? ToDynamicODataEntry(y.Value as IEnumerable, typeCache) + : y.Value); + } + + private static IEnumerable ToDynamicODataEntry(IEnumerable entry, ITypeCache typeCache) + { + return entry?.Select(x => x is IDictionary + ? new DynamicODataEntry(x as IDictionary, typeCache) + : x).ToList(); + } + + private object GetEntryValue(string propertyName) + { + var value = base[propertyName]; + if (value is IDictionary) + { + value = new DynamicODataEntry(value as IDictionary, TypeCache); + } + + return value; + } + + public DynamicMetaObject GetMetaObject(Expression parameter) + { + return new DynamicEntryMetaObject(parameter, this); + } + + private class DynamicEntryMetaObject : DynamicMetaObject + { + internal DynamicEntryMetaObject(Expression parameter, DynamicODataEntry value) + : base(parameter, BindingRestrictions.Empty, value) + { + TypeCache = value.TypeCache; + } + + private ITypeCache TypeCache { get; } + + public override DynamicMetaObject BindGetMember(GetMemberBinder binder) + { + var methodInfo = typeof(DynamicODataEntry).GetDeclaredMethod(nameof(GetEntryValue)); + var arguments = new Expression[] + { + Expression.Constant(binder.Name) + }; + + return new DynamicMetaObject( + Expression.Call(Expression.Convert(Expression, LimitType), methodInfo, arguments), + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + public override DynamicMetaObject BindConvert(ConvertBinder binder) + { + Expression> convertValueExpression = (hv, e) => hv + ? e.AsDictionary().ToObject(TypeCache, binder.Type, false) + : null; + var valueExpression = Expression.Convert(Expression.Invoke(convertValueExpression, Expression.Constant(HasValue), Expression.Convert(Expression, LimitType)), + binder.Type); + + return new DynamicMetaObject( + valueExpression, + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + } +} diff --git a/src/Simple.OData.Client.Dynamic/DynamicODataExpression.cs b/src/Simple.OData.Client.Dynamic/DynamicODataExpression.cs new file mode 100644 index 000000000..22ba431f0 --- /dev/null +++ b/src/Simple.OData.Client.Dynamic/DynamicODataExpression.cs @@ -0,0 +1,217 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public class DynamicODataExpression : ODataExpression, IDynamicMetaObjectProvider +{ + internal DynamicODataExpression() + { + } + + protected DynamicODataExpression(object value) + : base(value) + { + } + + protected DynamicODataExpression(string reference) + : base(reference) + { + } + + protected DynamicODataExpression(string reference, object value) + : base(reference, value) + { + } + + protected DynamicODataExpression(ExpressionFunction function) + : base(function) + { + } + + protected DynamicODataExpression(ODataExpression left, ODataExpression right, ExpressionType expressionOperator) + : base(left, right, expressionOperator) + { + } + + protected DynamicODataExpression(ODataExpression caller, string reference) + : base(caller, reference) + { + } + + protected DynamicODataExpression(ODataExpression caller, ExpressionFunction function) + : base(caller, function) + { + } + + public DynamicMetaObject GetMetaObject(Expression parameter) + { + return new DynamicExpressionMetaObject(parameter, this); + } + + private class DynamicExpressionMetaObject : DynamicMetaObject + { + internal DynamicExpressionMetaObject( + Expression parameter, + DynamicODataExpression value) + : base(parameter, BindingRestrictions.Empty, value) + { + } + + public override DynamicMetaObject BindGetMember(GetMemberBinder binder) + { + ConstructorInfo ctor; + Expression[] ctorArguments; + if (FunctionMapping.ContainsFunction(binder.Name, 0)) + { + ctor = CtorWithExpressionAndString; + ctorArguments = new Expression[] { Expression.Convert(Expression, LimitType), Expression.Constant(binder.Name) }; + } + else + { + Expression> calculateReference = (hv, e) => hv && !string.IsNullOrEmpty(e.Reference) + ? string.Join("/", e.Reference, binder.Name) + : binder.Name; + var referenceExpression = Expression.Invoke(calculateReference, Expression.Constant(HasValue), Expression.Convert(Expression, LimitType)); + ctor = CtorWithString; + ctorArguments = new Expression[] { referenceExpression }; + } + + return new DynamicMetaObject( + Expression.New(ctor, ctorArguments), + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + public override DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value) + { + var ctor = CtorWithStringAndValue; + Expression objectExpression = Expression.Convert(value.Expression, typeof(object)); + var ctorArguments = new[] { Expression.Constant(binder.Name), objectExpression }; + + return new DynamicMetaObject( + Expression.New(ctor, ctorArguments), + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + public override DynamicMetaObject BindInvokeMember( + InvokeMemberBinder binder, DynamicMetaObject[] args) + { + var expressionFunctionConstructor = typeof(ExpressionFunction).GetConstructor(new[] { typeof(string), typeof(IEnumerable) }); + if (FunctionMapping.ContainsFunction(binder.Name, args.Length)) + { + var expression = Expression.New(CtorWithExpressionAndExpressionFunction, + Expression.Convert(Expression, LimitType), + Expression.New(expressionFunctionConstructor, + Expression.Constant(binder.Name), + Expression.NewArrayInit(typeof(object), args.Select(x => Expression.Convert(x.Expression, typeof(object)))))); + + return new DynamicMetaObject( + expression, + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + if (string.Equals(binder.Name, ODataLiteral.Any, StringComparison.OrdinalIgnoreCase) || + string.Equals(binder.Name, ODataLiteral.All, StringComparison.OrdinalIgnoreCase)) + { + var expression = Expression.New(CtorWithExpressionAndExpressionFunction, + Expression.Convert(Expression, LimitType), + Expression.New(expressionFunctionConstructor, + Expression.Constant(binder.Name), + Expression.NewArrayInit(typeof(object), args.Select(x => Expression.Convert(x.Expression, typeof(object)))))); + + return new DynamicMetaObject( + expression, + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + if (string.Equals(binder.Name, ODataLiteral.IsOf, StringComparison.OrdinalIgnoreCase) || + string.Equals(binder.Name, ODataLiteral.Is, StringComparison.OrdinalIgnoreCase) || + string.Equals(binder.Name, ODataLiteral.Cast, StringComparison.OrdinalIgnoreCase) || + string.Equals(binder.Name, ODataLiteral.As, StringComparison.OrdinalIgnoreCase)) + { + var functionName = string.Equals(binder.Name, ODataLiteral.Is, StringComparison.OrdinalIgnoreCase) + ? ODataLiteral.IsOf + : string.Equals(binder.Name, ODataLiteral.As, StringComparison.OrdinalIgnoreCase) + ? ODataLiteral.Cast + : binder.Name; + + var isNullProperty = typeof(DynamicODataExpression).GetProperty(nameof(IsNull)); + var expressionFunctionArguments = Expression.Condition(Expression.MakeMemberAccess(Expression.Convert(Expression, LimitType), isNullProperty), + Expression.Convert(Expression, typeof(object)), + Expression.Convert(args.First().Expression, typeof(object))); + + var expression = Expression.New(CtorWithExpressionAndExpressionFunction, + Expression.Convert(Expression, LimitType), + Expression.New(expressionFunctionConstructor, + Expression.Constant(functionName), + Expression.NewArrayInit(typeof(object), expressionFunctionArguments))); + + return new DynamicMetaObject( + expression, + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + return base.BindInvokeMember(binder, args); + } + + public override DynamicMetaObject BindBinaryOperation(BinaryOperationBinder binder, DynamicMetaObject arg) + { + if (arg.RuntimeType != null && arg.RuntimeType.IsEnumType()) + { + var ctor = typeof(ODataExpression).GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.NonPublic, null, new[] { typeof(object) }, null); + var expression = Expression.New(CtorWithExpressionAndExpressionAndOperator, + Expression.Convert(Expression, LimitType), + Expression.New(ctor, Expression.Convert(arg.Expression, typeof(object))), + Expression.Constant(binder.Operation)); + + return new DynamicMetaObject( + expression, + BindingRestrictions.GetTypeRestriction(Expression, LimitType)); + } + + return base.BindBinaryOperation(binder, arg); + } + } + + private static IEnumerable GetConstructorInfo() + { + return _ctors ??= typeof(DynamicODataExpression).GetDeclaredConstructors().ToArray(); + } + + private static ConstructorInfo CtorWithString => _ctorWithString ??= GetConstructorInfo().Single(x => + x.GetParameters().Count() == 1 && + x.GetParameters()[0].ParameterType == typeof(string)); + + private static ConstructorInfo CtorWithStringAndValue => _ctorWithStringAndStringAndValue ??= GetConstructorInfo().Single(x => + x.GetParameters().Count() == 2 && + x.GetParameters()[0].ParameterType == typeof(string) && + x.GetParameters()[1].ParameterType == typeof(object)); + + private static ConstructorInfo CtorWithExpressionAndString => _ctorWithExpressionAndString ??= GetConstructorInfo().Single(x => + x.GetParameters().Count() == 2 && + x.GetParameters()[0].ParameterType == typeof(ODataExpression) && + x.GetParameters()[1].ParameterType == typeof(string)); + + private static ConstructorInfo CtorWithExpressionAndExpressionFunction => _ctorWithExpressionAndFunction ??= GetConstructorInfo().Single(x => + x.GetParameters().Count() == 2 && + x.GetParameters()[0].ParameterType == typeof(ODataExpression) && + x.GetParameters()[1].ParameterType == typeof(ExpressionFunction)); + + private static ConstructorInfo CtorWithExpressionAndExpressionAndOperator => _ctorWithExpressionAndExpressionAndOperator ??= GetConstructorInfo().Single(x => + x.GetParameters().Count() == 3 && + x.GetParameters()[0].ParameterType == typeof(ODataExpression) && + x.GetParameters()[1].ParameterType == typeof(ODataExpression) && + x.GetParameters()[2].ParameterType == typeof(ExpressionType)); + + private static ConstructorInfo[] _ctors; + private static ConstructorInfo _ctorWithString; + private static ConstructorInfo _ctorWithStringAndStringAndValue; + private static ConstructorInfo _ctorWithExpressionAndString; + private static ConstructorInfo _ctorWithExpressionAndFunction; + private static ConstructorInfo _ctorWithExpressionAndExpressionAndOperator; +} diff --git a/src/Simple.OData.Client.Dynamic/ODataDynamic.cs b/src/Simple.OData.Client.Dynamic/ODataDynamic.cs new file mode 100644 index 000000000..ced9bf5f8 --- /dev/null +++ b/src/Simple.OData.Client.Dynamic/ODataDynamic.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client; + +public static class ODataDynamic +{ + static ODataDynamic() + { + DictionaryExtensions.CreateDynamicODataEntry = (x, tc) => new DynamicODataEntry(x, tc); + } + + public static dynamic Expression => new DynamicODataExpression(); + + public static ODataExpression ExpressionFromReference(string reference) + { + return DynamicODataExpression.FromReference(reference); + } + + public static ODataExpression ExpressionFromValue(object value) + { + return DynamicODataExpression.FromValue(value); + } + + public static ODataExpression ExpressionFromFunction(string functionName, string targetName, IEnumerable arguments) + { + var targetExpression = DynamicODataExpression.FromReference(targetName); + return DynamicODataExpression.FromFunction(functionName, targetExpression, arguments); + } +} diff --git a/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.csproj b/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.csproj new file mode 100644 index 000000000..9da613c8d --- /dev/null +++ b/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.csproj @@ -0,0 +1,32 @@ + + + net461;netstandard2.0 + true + $(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/ + $(OutputPath) + latest + + + Simple.OData.Client.Dynamic.xml + TRACE + + + Simple.OData.Client.Dynamic.xml + TRACE + + + TRACE;DEBUG + + + TRACE;DEBUG + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.xml b/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.xml new file mode 100644 index 000000000..a6824b18e --- /dev/null +++ b/src/Simple.OData.Client.Dynamic/Simple.OData.Client.Dynamic.xml @@ -0,0 +1,8 @@ + + + + Simple.OData.Client.Dynamic + + + + diff --git a/src/Simple.OData.Client.IntegrationTests/BatchODataTests.cs b/src/Simple.OData.Client.IntegrationTests/BatchODataTests.cs new file mode 100644 index 000000000..229937c0e --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/BatchODataTests.cs @@ -0,0 +1,269 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +using Entry = System.Collections.Generic.Dictionary; + +public class BatchODataTestsV2Atom : BatchODataTests +{ + public BatchODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class BatchODataTestsV2Json : BatchODataTests +{ + public BatchODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class BatchODataTestsV3Atom : BatchODataTests +{ + public BatchODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class BatchODataTestsV3Json : BatchODataTests +{ + public BatchODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class BatchODataTestsV4Json : BatchODataTests +{ + public BatchODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class BatchODataTests : ODataTestBase +{ + protected BatchODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task Success() + { + var batch = new ODataBatch(_serviceUri); + batch += x => x.InsertEntryAsync("Products", CreateProduct(5001, "Test1"), false); + batch += x => x.InsertEntryAsync("Products", CreateProduct(5002, "Test2"), false); + await batch.ExecuteAsync(); + + var product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test1'"); + Assert.NotNull(product); + product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test2'"); + Assert.NotNull(product); + } + + // OData.org sample service doesn't fail on this request + //[Fact] + //public async Task PartialFailures() + //{ + // var batch = new ODataBatch(_serviceUri); + // batch += x => x.InsertEntryAsync("Products", CreateProduct(5003, "Test3"), false); + // batch += x => x.InsertEntryAsync("Products", CreateProduct(0, "Test4"), false); + // await AssertThrowsAsync(async () => await batch.ExecuteAsync()); + //} + + // OData.org sample service doesn't fail on this request + //[Fact] + //public async Task AllFailures() + //{ + // var batch = new ODataBatch(_serviceUri); + // batch += x => x.InsertEntryAsync("Products", CreateProduct(0, "Test5"), false); + // batch += x => x.InsertEntryAsync("Products", CreateProduct(0, "Test6"), false); + // await AssertThrowsAsync(async () => await batch.ExecuteAsync()); + //} + + [Fact] + public async Task InsertUpdateDeleteSingleBatch() + { + var key = new Entry() { { "Name", "Test11" } }; + + var batch = new ODataBatch(_serviceUri); + batch += x => x.InsertEntryAsync("Products", CreateProduct(5011, "Test11"), false); + batch += x => x.UpdateEntriesAsync("Products", "Products?$filter=Name eq 'Test11'", new Entry() { { "Price", 22m } }); + batch += x => x.DeleteEntriesAsync("Products", "Products?$filter=Name eq 'Test11'"); + await batch.ExecuteAsync(); + + var product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test11'"); + Assert.Equal(18d, Convert.ToDouble(product["Price"])); + } + + // Not properly handled by OData.org sample service + //[Fact] + //public async Task InsertUpdateDeleteSeparateBatches() + //{ + // var batch = new ODataBatch(_serviceUri); + // batch += x => x.InsertEntryAsync("Products", CreateProduct(5012, "Test12"), false); + // await batch.ExecuteAsync(); + + // var product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test12'"); + // Assert.Equal(18d, Convert.ToDouble(product["Price"])); + // var key = new Entry() { { "ID", product["ID"] } }; + + // batch = new ODataBatch(_serviceUri); + // batch += x => x.UpdateEntryAsync("Products", key, new Entry() { { "Price", 22m } }); + // await batch.ExecuteAsync(); + // product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test12'"); + // Assert.Equal(22d, Convert.ToDouble(product["Price"])); + + // batch = new ODataBatch(_serviceUri); + // batch += x => x.DeleteEntryAsync("Products", key); + // await batch.ExecuteAsync(); + // product = await _client.FindEntryAsync("Products?$filter=Name eq 'Test12'"); + // Assert.Null(product); + //} + + [Fact] + public async Task InsertSingleEntityWithSingleAssociationSingleBatch() + { + IDictionary category = null; + var batch = new ODataBatch(_serviceUri); + batch += async x => category = await x.InsertEntryAsync("Categories", CreateCategory(5013, "Test13")); + batch += x => x.InsertEntryAsync("Products", CreateProduct(5014, "Test14", category), false); + await batch.ExecuteAsync(); + + var product = await _client + .For("Products") + .Expand(ProductCategoryName) + .Filter("Name eq 'Test14'") + .FindEntryAsync(); + Assert.Equal(5013, ProductCategoryFunc(product)["ID"]); + } + + [Fact] + public async Task InsertSingleEntityWithMultipleAssociationsSingleBatch() + { + IDictionary product1 = null; + IDictionary product2 = null; + + var batch = new ODataBatch(_serviceUri); + batch += async x => product1 = await x.InsertEntryAsync("Products", CreateProduct(5015, "Test15")); + batch += async x => product2 = await x.InsertEntryAsync("Products", CreateProduct(5016, "Test16")); + batch += async x => await x.InsertEntryAsync("Categories", CreateCategory(5017, "Test17", new[] { product1, product2 }), false); + await batch.ExecuteAsync(); + + var category = await _client + .For("Categories") + .Key(5017) + .Expand("Products") + .FindEntryAsync(); + Assert.Equal(2, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExecuteXCsrfFetchPriorToBatchExecution() + { + IDictionary product1 = null; + IDictionary product2 = null; + + // None of the existing sample service endpoints actually provide an xcsrf token, + // but in scenarios where a developer may need to use a csrf token, this is an + // example of how to acquire one and send it in on subsequent batch requests. + var token = ""; + var settings = new ODataClientSettings(_serviceUri); + settings.BeforeRequest += (request) => + { + request.Headers.Add("x-csrf-token", "fetch"); + }; + settings.AfterResponse += (response) => + { + // Assuming that because the service end points don't return tokens at this time + // that we won't be setting the value of the token here. + token = response.Headers.TryGetValues("x-csrf-token", out var values) ? values.First() : "myToken"; + }; + + // Execute an arbitrary request to retrieve the csrf token + var client = new ODataClient(settings); + await client.GetMetadataDocumentAsync(); + + // Since the token was never updated it should still be an empty string. + Assert.NotNull(token); + + // Change the settings for the client so we can re-use the session and create a new request with different headers + var newHeaders = new Dictionary> + { + {"x-csrf-token", new List {token}} + }; + client.UpdateRequestHeaders(newHeaders); + + var batch = new ODataBatch(client, reuseSession: true); + batch += async x => product1 = await x.InsertEntryAsync("Products", CreateProduct(5015, "Test15")); + batch += async x => product2 = await x.InsertEntryAsync("Products", CreateProduct(5016, "Test16")); + batch += async x => await x.InsertEntryAsync("Categories", CreateCategory(5017, "Test17", new[] { product1, product2 }), false); + await batch.ExecuteAsync(); + + var category = await _client + .For("Categories") + .Key(5017) + .Expand("Products") + .FindEntryAsync(); + Assert.Equal(2, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task IgnoreResourceNotFoundExceptionInBatchRequest() + { + var settings = new ODataClientSettings(_serviceUri) + { + IgnoreResourceNotFoundException = true + }; + + var batch = new ODataBatch(settings); + + IDictionary bread = new Dictionary(); + + IDictionary milk = new Dictionary(); + + batch += async x => bread = await x.For("Products").Key(0).FindEntryAsync(); + batch += async x => await x.For("Products").Key(-1).FindEntryAsync(); + batch += async x => milk = await x.For("Products").Key(1).FindEntryAsync(); + + await batch.ExecuteAsync(); + + Assert.True(bread.ContainsKey("ID")); + Assert.True(milk.ContainsKey("ID")); + } + + [Fact] + public async Task InsertWithoutResultsReadingLocationHeader() + { + const int id = 5897; + ODataResponse response = null; + var batch = new ODataBatch(_serviceUri); + batch += async x => + { + var request = x.For("Products") + .Set(CreateProduct(id, "Test")) + .BuildRequestFor() + .InsertEntryAsync(false) + .Result + .GetRequest(); + response = await x.GetResponseAsync(request); + }; + await batch.ExecuteAsync(); + Assert.NotNull(response); + Assert.Equal($"{_serviceUri}Products({id})", response.Location); + } + + [Fact] + public async Task InsertReadingLocationHeader() + { + const int id = 5898; + ODataResponse response = null; + var batch = new ODataBatch(_serviceUri); + batch += async x => + { + var request = x.For("Products") + .Set(CreateProduct(id, "Test")) + .BuildRequestFor() + .InsertEntryAsync(true) + .Result + .GetRequest(); + response = await x.GetResponseAsync(request); + }; + await batch.ExecuteAsync(); + Assert.NotNull(response); + Assert.Equal($"{_serviceUri}Products({id})", response.Location); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/DeleteODataTests.cs b/src/Simple.OData.Client.IntegrationTests/DeleteODataTests.cs new file mode 100644 index 000000000..88ce910c0 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/DeleteODataTests.cs @@ -0,0 +1,100 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class DeleteODataTestsV2Atom : DeleteODataTests +{ + public DeleteODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class DeleteODataTestsV2Json : DeleteODataTests +{ + public DeleteODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class DeleteODataTestsV3Atom : DeleteODataTests +{ + public DeleteODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class DeleteODataTestsV3Json : DeleteODataTests +{ + public DeleteODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class DeleteODataTestsV4Json : DeleteODataTests +{ + public DeleteODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class DeleteODataTests : ODataTestBase +{ + protected DeleteODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task DeleteByKey() + { + var product = await _client + .For("Products") + .Set(CreateProduct(3001, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product["ID"]) + .DeleteEntryAsync(); + + product = await _client + .For("Products") + .Filter("Name eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByFilter() + { + _ = await _client + .For("Products") + .Set(CreateProduct(3002, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Filter("Name eq 'Test1'") + .DeleteEntryAsync(); + + var product = await _client + .For("Products") + .Filter("Name eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByObjectAsKey() + { + var product = await _client + .For("Products") + .Set(CreateProduct(3003, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product) + .DeleteEntryAsync(); + + product = await _client + .For("Products") + .Filter("Name eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/ErrorODataTests.cs b/src/Simple.OData.Client.IntegrationTests/ErrorODataTests.cs new file mode 100644 index 000000000..a2a3ac7d3 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/ErrorODataTests.cs @@ -0,0 +1,126 @@ +using System; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class ErrorODataTestsV2Atom : ErrorODataTests +{ + public ErrorODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class ErrorODataTestsV2Json : ErrorODataTests +{ + public ErrorODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class ErrorODataTestsV3Atom : ErrorODataTests +{ + public ErrorODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class ErrorODataTestsV3Json : ErrorODataTests +{ + public ErrorODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class ErrorODataTestsV4Json : ErrorODataTests +{ + public ErrorODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class ErrorODataTests : ODataTestBase +{ + protected ErrorODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task ErrorContent() + { + try + { + await _client + .For("Products") + .Filter("NonExistingProperty eq 1") + .FindEntryAsync(); + + Assert.False(true, "Expected exception"); + } + catch (WebRequestException ex) + { + Assert.NotNull(ex.Response); + } + catch (Exception) + { + Assert.False(true, "Expected WebRequestException"); + } + } + + [Fact] + public async Task ErrorMessage_ReasonPhrase() + { + try + { + var client = new ODataClient(CreateDefaultSettings(x => + x.WebRequestExceptionMessageSource = WebRequestExceptionMessageSource.ReasonPhrase)); + + await client + .For("Products") + .Filter("NonExistingProperty eq 1") + .FindEntryAsync(); + + Assert.False(true, "Expected exception"); + } + catch (WebRequestException ex) + { + Assert.NotNull(ex.Message); + Assert.Equal(ex.ReasonPhrase, ex.Message); + } + } + + [Fact] + public async Task ErrorMessage_ResponseContent() + { + try + { + var client = new ODataClient(CreateDefaultSettings(x => + x.WebRequestExceptionMessageSource = WebRequestExceptionMessageSource.ResponseContent)); + + await client + .For("Products") + .Filter("NonExistingProperty eq 1") + .FindEntryAsync(); + + Assert.False(true, "Expected exception"); + } + catch (WebRequestException ex) + { + Assert.NotNull(ex.Message); + Assert.Equal(ex.Response, ex.Message); + } + } + + [Fact] + public async Task ErrorMessage_PhraseAndContent() + { + try + { + var client = new ODataClient(CreateDefaultSettings(x => + x.WebRequestExceptionMessageSource = WebRequestExceptionMessageSource.Both)); + + await client + .For("Products") + .Filter("NonExistingProperty eq 1") + .FindEntryAsync(); + + Assert.False(true, "Expected exception"); + } + catch (WebRequestException ex) + { + Assert.NotNull(ex.Message); + Assert.True(ex.Message.Contains(ex.ReasonPhrase) && ex.Message.Contains(ex.Response)); + } + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/FindNorthwindTests.cs b/src/Simple.OData.Client.IntegrationTests/FindNorthwindTests.cs new file mode 100644 index 000000000..90072f3eb --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/FindNorthwindTests.cs @@ -0,0 +1,290 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests; + +public class Product +{ + public int ProductID { get; set; } + public string ProductName { get; set; } + public int? CategoryID { get; set; } + + public Category Category { get; set; } +} + +public class Category +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + + public Product[] Products { get; set; } +} + +public class FindNorthwindTestsV2Atom : FindNorthwindTests +{ + public FindNorthwindTestsV2Atom() : base(NorthwindV2ReadOnlyUri, ODataPayloadFormat.Atom) { } +} + +public class FindNorthwindTestsV2Json : FindNorthwindTests +{ + public FindNorthwindTestsV2Json() : base(NorthwindV2ReadOnlyUri, ODataPayloadFormat.Json) { } +} + +public class FindNorthwindTestsV3Atom : FindNorthwindTests +{ + public FindNorthwindTestsV3Atom() : base(NorthwindV3ReadOnlyUri, ODataPayloadFormat.Atom) { } +} + +public class FindNorthwindTestsV3Json : FindNorthwindTests +{ + public FindNorthwindTestsV3Json() : base(NorthwindV3ReadOnlyUri, ODataPayloadFormat.Json) { } +} + +public class FindNorthwindTestsV4Json : FindNorthwindTests +{ + public FindNorthwindTestsV4Json() : base(NorthwindV4ReadOnlyUri, ODataPayloadFormat.Json) { } +} + +public abstract class FindNorthwindTests : TestBase +{ + protected FindNorthwindTests(string serviceUri, ODataPayloadFormat payloadFormat) : base(serviceUri, payloadFormat) { } + + protected async override Task DeleteTestData() + { + var products = await _client.For("Products").Select("ProductID", "ProductName").FindEntriesAsync(); + foreach (var product in products) + { + if (product["ProductName"].ToString().StartsWith("Test")) + { + await _client.DeleteEntryAsync("Products", product); + } + } + + var categories = await _client.For("Categories").Select("CategoryID", "CategoryName").FindEntriesAsync(); + foreach (var category in categories) + { + if (category["CategoryName"].ToString().StartsWith("Test")) + { + await _client.DeleteEntryAsync("Categories", category); + } + } + + var employees = await _client.For("Employees").Select("EmployeeID", "LastName").FindEntriesAsync(); + foreach (var employee in employees) + { + if (employee["LastName"].ToString().StartsWith("Test")) + { + await _client.DeleteEntryAsync("Employees", employee); + } + } + } + + [Fact] + public async Task Filter() + { + var products = await _client + .For("Products") + .Filter("ProductName eq 'Chai'") + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single()["ProductName"]); + } + + [Fact] + public async Task FilterStringExpression() + { + var x = ODataDynamic.Expression; + var products = await _client + .For(x.Products) + .Filter(x.ProductName.Contains("ai")) + .FindEntriesAsync(); + Assert.Equal("Chai", (products as IEnumerable).Single().ProductName); + } + + [Fact] + public async Task Get() + { + var category = await _client + .For("Categories") + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, category["CategoryID"]); + } + + [Fact] + public async Task SkipOneTopOne() + { + var products = await _client + .For("Products") + .Skip(1) + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task OrderBy() + { + var product = (await _client + .For("Products") + .OrderBy("ProductName") + .FindEntriesAsync()).First(); + Assert.Equal("Alice Mutton", product["ProductName"]); + } + + [Fact] + public async Task SelectMultiple() + { + var product = await _client + .For("Products") + .Select("ProductID", "ProductName") + .FindEntryAsync(); + Assert.Contains("ProductName", product.Keys); + Assert.Contains("ProductID", product.Keys); + } + + [Fact] + public async Task ExpandOne() + { + var product = (await _client + .For("Products") + .OrderBy("ProductID") + .Expand("Category") + .FindEntriesAsync()).Last(); + Assert.Equal("Confections", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task ExpandMany() + { + var category = await _client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Beverages'") + .FindEntryAsync(); + Assert.Equal(12, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandSecondLevel() + { + var product = (await _client + .For("Products") + .OrderBy("ProductID") + .Expand("Category/Products") + .FindEntriesAsync()).Last(); + Assert.Equal(13, ((product["Category"] as IDictionary)["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandProductsOrderByCategoryName() + { + var product = (await _client + .For() + .Expand(x => x.Category) + .OrderBy(x => x.Category.CategoryName) + .Select(x => x.Category.CategoryName) + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", product.Category.CategoryName); + } + + [Fact] + public async Task ExpandCategoryOrderByProductName() + { + if (_serviceUri.AbsoluteUri == ODataV4ReadWriteUri) + { + var category = (await _client + .For() + .Expand(x => x.Products) + .OrderBy(x => x.Products.Select(y => y.ProductName)) + .FindEntriesAsync()).Last(); + Assert.Equal("Röd Kaviar", category.Products.Last().ProductName); + } + } + + [Fact] + public async Task Count() + { + var count = await _client + .For("Products") + .Count() + .FindScalarAsync(); + Assert.Equal(77, count); + } + + [Fact] + public async Task TotalCount() + { + var annotations = new ODataFeedAnnotations(); + var products = await _client + .For("Products") + .FindEntriesAsync(annotations); + Assert.Equal(77, annotations.Count); + Assert.Equal(20, products.Count()); + } + + [Fact] + public async Task CombineAll() + { + var product = (await _client + .For("Products") + .OrderBy("ProductName") + .Skip(2) + .Top(1) + .Expand("Category") + .Select("Category") + .FindEntriesAsync()).Single(); + Assert.Equal("Seafood", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task NavigateToSingle() + { + var category = await _client + .For("Products") + .Key(new Entry() { { "ProductID", 2 } }) + .NavigateTo("Category") + .FindEntryAsync(); + Assert.Equal("Beverages", category["CategoryName"]); + } + + [Fact] + public async Task NavigateToMultiple() + { + var products = await _client + .For("Categories") + .Key(2) + .NavigateTo("Products") + .FindEntriesAsync(); + Assert.Equal(12, products.Count()); + } + + [Fact] + public async Task NavigateToRecursive() + { + var employee = await _client + .For("Employees") + .Key(6) + .NavigateTo("Employee1") + .NavigateTo("Employee1") + .NavigateTo("Employees1") + .Key(5) + .FindEntryAsync(); + Assert.Equal("Steven", employee["FirstName"]); + } + + [Fact] + public async Task NavigateToRecursiveSingleClause() + { + var employee = await _client + .For("Employees") + .Key(6) + .NavigateTo("Employee1/Employee1/Employees1") + .Key(5) + .FindEntryAsync(); + Assert.Equal("Steven", employee["FirstName"]); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/FindODataTests.cs b/src/Simple.OData.Client.IntegrationTests/FindODataTests.cs new file mode 100644 index 000000000..83527f6d4 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/FindODataTests.cs @@ -0,0 +1,268 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class FindODataTestsV2Atom : FindODataTests +{ + public FindODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class FindODataTestsV2Json : FindODataTests +{ + public FindODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class FindODataTestsV3Atom : FindODataTests +{ + public FindODataTestsV3Atom() : base(ODataV3ReadOnlyUri, ODataPayloadFormat.Atom, 3) { } +} + +public class FindODataTestsV3Json : FindODataTests +{ + public FindODataTestsV3Json() : base(ODataV3ReadOnlyUri, ODataPayloadFormat.Json, 3) { } +} + +public class FindODataTestsV4Json : FindODataTests +{ + public FindODataTestsV4Json() : base(ODataV4ReadOnlyUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class FindODataTests : ODataTestBase +{ + protected FindODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task Filter() + { + var products = await _client + .For("Products") + .Filter("Name eq 'Milk'") + .FindEntriesAsync(); + Assert.Equal("Milk", products.Single()["Name"]); + } + + [Fact] + public async Task FilterStringExpression() + { + var x = ODataDynamic.Expression; + var products = await _client + .For(x.Products) + .Filter(x.Name.Contains("lk")) + .FindEntriesAsync(); + Assert.Equal("Milk", (products as IEnumerable).Single()["Name"]); + } + + [Fact] + public async Task Get() + { + var category = await _client + .For("Categories") + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, category["ID"]); + } + + [Fact] + public async Task SkipOneTopOne() + { + var products = await _client + .For("Products") + .Skip(1) + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task OrderBy() + { + var product = (await _client + .For("Products") + .OrderBy("Name") + .FindEntriesAsync()).First(); + Assert.Equal("Bread", product["Name"]); + } + + [Fact] + public async Task OrderByNestedComplex() + { + var supplier = (await _client + .For("Suppliers") + .OrderBy("Address/City") + .FindEntriesAsync()).First(); + Assert.Equal("Tokyo Traders", supplier["Name"]); + supplier = (await _client + .For("Suppliers") + .OrderByDescending("Address/City") + .FindEntriesAsync()).First(); + Assert.Equal("Exotic Liquids", supplier["Name"]); + } + + [Fact] + public async Task SelectMultiple() + { + var product = await _client + .For("Products") + .Select("ID", "Name") + .FindEntryAsync(); + Assert.Contains("Name", product.Keys); + Assert.Contains("ID", product.Keys); + } + + [Fact] + public async Task ExpandOne() + { + var product = (await _client + .For("Products") + .OrderBy("ID") + .Expand(ProductCategoryName) + .FindEntriesAsync()).Last(); + Assert.Equal(ExpectedCategory, ProductCategoryFunc(product)["Name"]); + } + + [Fact] + public async Task ExpandMany() + { + var category = await _client + .For("Categories") + .Expand("Products") + .Filter("Name eq 'Beverages'") + .FindEntryAsync(); + Assert.Equal(ExpectedExpandMany, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandSecondLevel() + { + var product = (await _client + .For("Products") + .OrderBy("ID") + .Expand(ProductCategoryName + "/Products") + .FindEntriesAsync()).Last(); + Assert.Equal(ExpectedExpandSecondLevel, (ProductCategoryFunc(product)["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task Count() + { + var count = await _client + .For("Products") + .Count() + .FindScalarAsync(); + Assert.Equal(ExpectedCount, count); + } + + [Fact] + public async Task TotalCount() + { + var annotations = new ODataFeedAnnotations(); + var products = await _client + .For("Products") + .FindEntriesAsync(annotations); + Assert.Equal(ExpectedTotalCount, annotations.Count); + Assert.Equal(ExpectedTotalCount, products.Count()); + } + + [Fact] + public async Task CombineAll() + { + var product = (await _client + .For("Products") + .OrderBy("Name") + .Skip(2) + .Top(1) + .Expand(ProductCategoryName) + .Select(ProductCategoryName) + .FindEntriesAsync()).Single(); + Assert.Equal(ExpectedCategory, ProductCategoryFunc(product)["Name"]); + } + + [Fact] + public async Task NavigateToSingle() + { + var category = await _client + .For("Products") + .Key(new Dictionary() { { "ID", 2 } }) + .NavigateTo(ProductCategoryName) + .FindEntryAsync(); + Assert.Equal("Beverages", category["Name"]); + } + + [Fact] + public async Task NavigateToMultiple() + { + var products = await _client + .For("Categories") + .Key(2) + .NavigateTo("Products") + .FindEntriesAsync(); + Assert.Equal(2, products.Count()); + } + + [Fact] + public async Task GetMediaStream() + { + if (_version == 2) // No media support in OData V2 + { + return; + } + + var ad = await _client + .For("Advertisements") + .FindEntryAsync(); + var id = ad["ID"]; + var stream = await _client + .For("Advertisements") + .Key(id) + .Media() + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.StartsWith("Test stream data", text); + } + + [Fact] + public async Task GetNamedMediaStream() + { + if (_version == 2) // No media support in OData V2 + { + return; + } + + var stream = await _client + .For("Persons") + .Key(1) + .NavigateTo("PersonDetail") + .Media("Photo") + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.StartsWith("Test named stream data", text); + } + + private class PersonDetail + { + public string Photo { get; set; } + } + + [Fact] + public async Task GetTypedNamedMediaStream() + { + if (_version == 2) // No media support in OData V2 + { + return; + } + + var text = await _client + .For("Persons") + .Key(1) + .NavigateTo() + .Media(x => x.Photo) + .GetStreamAsStringAsync(); + Assert.StartsWith("Test named stream data", text); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/InsertODataTests.cs b/src/Simple.OData.Client.IntegrationTests/InsertODataTests.cs new file mode 100644 index 000000000..22c723999 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/InsertODataTests.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class InsertODataTestsV2Atom : InsertODataTests +{ + public InsertODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class InsertODataTestsV2Json : InsertODataTests +{ + public InsertODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class InsertODataTestsV3Atom : InsertODataTests +{ + public InsertODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class InsertODataTestsV3Json : InsertODataTests +{ + public InsertODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class InsertODataTestsV4Json : InsertODataTests +{ + public InsertODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class InsertODataTests : ODataTestBase +{ + protected InsertODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task Insert() + { + var product = await _client + .For("Products") + .Set(CreateProduct(1001, "Test1")) + .InsertEntryAsync(); + + Assert.Equal("Test1", product["Name"]); + } + + [Fact] + public async Task InsertLookupByID() + { + var product = await _client + .For("Products") + .Set(CreateProduct(1002, "Test1")) + .InsertEntryAsync(); + + Assert.True((int)product["ID"] > 0); + Assert.Equal("Test1", product["Name"]); + } + + [Fact] + public async Task InsertExpando() + { + dynamic expando = new ExpandoObject(); + expando.ID = 1003; + expando.Name = "Test9"; + expando.Description = "Test9"; + expando.Price = 18m; + expando.Rating = 1; + expando.ReleaseDate = DateTime.Now; + + var product = await (Task>)_client + .For("Products") + .Set(expando) + .InsertEntryAsync(); + + Assert.True((int)product["ID"] > 0); + } + + [Fact] + public async Task InsertProductWithCategory() + { + var category = await _client + .For("Categories") + .Set(CreateCategory(1005, "Test5")) + .InsertEntryAsync(); + var product = await _client + .For("Products") + .Set(CreateProduct(1007, "Test6", category)) + .InsertEntryAsync(); + + Assert.Equal("Test6", product["Name"]); + product = await _client + .For("Products") + .Filter("Name eq 'Test6'") + .Expand(ProductCategoryName) + .FindEntryAsync(); + Assert.NotNull(product[ProductCategoryName]); + Assert.Equal(category["ID"], ProductCategoryFunc(product)["ID"]); + } + + [Fact] + public async Task InsertReadingLocationHeader() + { + const int id = 5899; + var withRequest = await _client + .For("Products") + .Set(CreateProduct(id, "Test")) + .BuildRequestFor() + .InsertEntryAsync(); + var response = await _client.GetResponseAsync(withRequest.GetRequest()); + Assert.NotNull(response); + Assert.Equal($"{_serviceUri}Products({id})", response.Location); + } + + [Fact] + public async Task InsertWithoutResultsReadingLocationHeader() + { + const int id = 5900; + var withRequest = await _client + .For("Products") + .Set(CreateProduct(id, "Test")) + .BuildRequestFor() + .InsertEntryAsync(false); + var response = await _client.GetResponseAsync(withRequest.GetRequest()); + Assert.NotNull(response); + Assert.Equal($"{_serviceUri}Products({id})", response.Location); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/LinkODataTests.cs b/src/Simple.OData.Client.IntegrationTests/LinkODataTests.cs new file mode 100644 index 000000000..607a25695 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/LinkODataTests.cs @@ -0,0 +1,96 @@ +using System.Collections; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class LinkODataTestsV2Atom : LinkODataTests +{ + public LinkODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class LinkODataTestsV2Json : LinkODataTests +{ + public LinkODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class LinkODataTestsV3Atom : LinkODataTests +{ + public LinkODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class LinkODataTestsV3Json : LinkODataTests +{ + public LinkODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class LinkODataTestsV4Json : LinkODataTests +{ + public LinkODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class LinkODataTests : ODataTestBase +{ + protected LinkODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task LinkEntry() + { + var category = await _client + .For("Categories") + .Set(CreateCategory(4001, "Test4")) + .InsertEntryAsync(); + var product = await _client + .For("Products") + .Set(CreateProduct(4002, "Test5")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product) + .LinkEntryAsync(ProductCategoryName, category); + + product = await _client + .For("Products") + .Filter("Name eq 'Test5'") + .Expand(ProductCategoryName) + .FindEntryAsync(); + Assert.NotNull(product[ProductCategoryName]); + Assert.Equal(category["ID"], ProductCategoryFunc(product)["ID"]); + } + + [Fact] + public async Task UnlinkEntry() + { + var category = await _client + .For("Categories") + .Set(CreateCategory(4003, "Test4")) + .InsertEntryAsync(); + var product = await _client + .For("Products") + .Set(CreateProduct(4002, "Test5", category)) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product) + .UnlinkEntryAsync(ProductCategoryName, ProductCategoryName == "Categories" ? category : null); + + product = await _client + .For("Products") + .Filter("Name eq 'Test5'") + .Expand(ProductCategoryName) + .FindEntryAsync(); + if (ProductCategoryName == "Categories") + { + Assert.Empty(product[ProductCategoryName] as IEnumerable); + } + else + { + Assert.Null(product[ProductCategoryName]); + } + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/MediaODataTests.cs b/src/Simple.OData.Client.IntegrationTests/MediaODataTests.cs new file mode 100644 index 000000000..5215e924e --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/MediaODataTests.cs @@ -0,0 +1,159 @@ +using System.IO; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +// Not supported by OData V2 +//public class MediaODataTestsV2Atom : MediaODataTests +//{ +// public MediaODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +//} + +//public class MediaODataTestsV2Json : MediaODataTests +//{ +// public MediaODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +//} + +public class MediaODataTestsV3Atom : MediaODataTests +{ + public MediaODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class MediaODataTestsV3Json : MediaODataTests +{ + public MediaODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class MediaODataTestsV4Json : MediaODataTests +{ + public MediaODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class MediaODataTests : ODataTestBase +{ + private class PersonDetail + { + public string Photo { get; set; } + } + + protected MediaODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task GetMediaStream() + { + var ad = await _client + .For("Advertisements") + .FindEntryAsync(); + var id = ad["ID"]; + var stream = await _client + .For("Advertisements") + .Key(id) + .Media() + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.Contains("stream data", text); + } + + [Fact] + public async Task GetNamedMediaStream() + { + var stream = await _client + .For("Persons") + .Key(1) + .NavigateTo("PersonDetail") + .Media("Photo") + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.Contains("named stream data", text); + } + + [Fact] + public async Task GetTypedNamedMediaStream() + { + var text = await _client + .For("Persons") + .Key(1) + .NavigateTo() + .Media(x => x.Photo) + .GetStreamAsStringAsync(); + Assert.Contains("named stream data", text); + } + + [Fact] + public async Task FindEntryWithEntityMedia() + { + var ad = await _client + .For("Advertisements") + .FindEntryAsync(); + var id = ad["ID"]; + + ad = await _client + .For("Advertisements") + .WithMedia("Media") + .Key(id) + .FindEntryAsync(); + Assert.NotNull(ad["Media"]); + var text = Utils.StreamToString(ad["Media"] as Stream); + Assert.Contains("stream data", text); + } + + [Fact] + public async Task FindEntryWithNamedMedia() + { + var person = await _client + .For("Persons") + .Key(1) + .NavigateTo("PersonDetail") + .WithMedia("Photo") + .FindEntryAsync(); + Assert.NotNull(person["Photo"]); + var text = Utils.StreamToString(person["Photo"] as Stream); + Assert.Contains("named stream data", text); + } + + [Fact] + public async Task SetMediaStream() + { + var ad = await _client + .For("Advertisements") + .FindEntryAsync(); + var id = ad["ID"]; + var stream = Utils.StringToStream("Updated stream data"); + await _client + .For("Advertisements") + .Key(id) + .Media() + .SetStreamAsync(stream, "text/plain", false); + stream = await _client + .For("Advertisements") + .Key(id) + .Media() + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.Equal("Updated stream data", text); + } + + [Fact] + public async Task SetNamedMediaStream() + { + var stream = Utils.StringToStream("Updated named stream data"); + await _client + .For("Persons") + .Key(1) + .NavigateTo("PersonDetail") + .Media("Photo") + .SetStreamAsync(stream, "text/plain", false); + stream = await _client + .For("Persons") + .Key(1) + .NavigateTo("PersonDetail") + .Media("Photo") + .GetStreamAsync(); + var text = Utils.StreamToString(stream); + Assert.Equal("Updated named stream data", text); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/MetadataODataTests.cs b/src/Simple.OData.Client.IntegrationTests/MetadataODataTests.cs new file mode 100644 index 000000000..cbcd42872 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/MetadataODataTests.cs @@ -0,0 +1,86 @@ +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class MetadataODataTestsV2Atom : MetadataODataTests +{ + public MetadataODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +} + +public class MetadataODataTestsV2Json : MetadataODataTests +{ + public MetadataODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +} + +public class MetadataODataTestsV3Atom : MetadataODataTests +{ + public MetadataODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class MetadataODataTestsV3Json : MetadataODataTests +{ + public MetadataODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class MetadataODataTestsV4Json : MetadataODataTests +{ + public MetadataODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class MetadataODataTests : ODataTestBase +{ + protected MetadataODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task FilterWithMetadataDocument() + { + var metadataDocument = await _client.GetMetadataDocumentAsync(); + ODataClient.ClearMetadataCache(); + var settings = new ODataClientSettings() + { + BaseUri = _serviceUri, + PayloadFormat = _payloadFormat, + MetadataDocument = metadataDocument, + }; + var client = new ODataClient(settings); + var products = await client + .For("Products") + .Filter("Name eq 'Milk'") + .FindEntriesAsync(); + Assert.Equal("Milk", products.Single()["Name"]); + } + + [Fact] + public async Task ParallelBootstrapping() + { + ODataClient.ClearMetadataCache(); + var metadataCallsCount = 0; + var settings = new ODataClientSettings + { + BaseUri = _serviceUri, + BeforeRequest = _ => metadataCallsCount++ + }; + var client = new ODataClient(settings); + + await Task.WhenAll( + // Dispatch 10 calls in parallel + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync(), + client.GetMetadataAsStringAsync() + ); + + Assert.Equal(1, metadataCallsCount); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/ODataTestBase.cs b/src/Simple.OData.Client.IntegrationTests/ODataTestBase.cs new file mode 100644 index 000000000..609c25604 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/ODataTestBase.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests; + +public abstract class ODataTestBase : TestBase +{ + protected readonly int _version; + + protected ODataTestBase(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat) + { + _version = version; + } + + protected string ProductCategoryName => _version == 2 ? "Category" : "Categories"; + + protected Func, IDictionary> ProductCategoryFunc => x => _version == 2 + ? x[ProductCategoryName] as IDictionary + : (x[ProductCategoryName] as IEnumerable).Last() as IDictionary; + + protected Func, object> ProductCategoryLinkFunc + { + get + { + if (_version == 2) + { + return x => x; + } + else + { + return x => new List>() { x }; + } + } + } + + protected string ExpectedCategory => _version == 2 ? "Electronics" : "Beverages"; + + protected int ExpectedCount => _version == 2 ? 9 : 11; + + protected int ExpectedExpandMany => _version == 2 ? 6 : 8; + + protected int ExpectedExpandSecondLevel => _version == 2 ? 2 : 8; + + protected int ExpectedSkipOne => _version == 2 ? 8 : 10; + + protected int ExpectedTotalCount => _version == 2 ? 9 : 11; + + protected Entry CreateProduct(int productId, string productName, IDictionary category = null) + { + var entry = new Entry() + { + {"ID", productId}, + {"Name", productName}, + {"Description", "Test1"}, + {"Price", 18}, + {"Rating", 1}, + {"ReleaseDate", DateTimeOffset.Now}, + }; + + if (category != null) + { + entry.Add(ProductCategoryName, ProductCategoryLinkFunc(category)); + } + + return entry; + } + + protected static Entry CreateCategory(int categoryId, string categoryName, IEnumerable> products = null) + { + var entry = new Entry() + { + {"ID", categoryId}, + {"Name", categoryName}, + }; + + if (products != null) + { + entry.Add("Products", products); + } + + return entry; + } + + protected async override Task DeleteTestData() + { + try + { + var products = await _client.For("Products").Select("ID", "Name").FindEntriesAsync(); + foreach (var product in products) + { + if (product["Name"].ToString().StartsWith("Test")) + { + await _client.DeleteEntryAsync("Products", product); + } + } + + var categories = await _client.For("Categories").Select("ID", "Name").FindEntriesAsync(); + foreach (var category in categories) + { + if (category["Name"].ToString().StartsWith("Test")) + { + await _client.DeleteEntryAsync("Categories", category); + } + } + } + catch (Exception) + { + } + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/Properties/AssemblyInfo.cs b/src/Simple.OData.Client.IntegrationTests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a4bcec543 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Xunit; + +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Simple.OData.Client.IntegrationTests/Simple.OData.Client.IntegrationTests.csproj b/src/Simple.OData.Client.IntegrationTests/Simple.OData.Client.IntegrationTests.csproj new file mode 100644 index 000000000..3e14de8ae --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/Simple.OData.Client.IntegrationTests.csproj @@ -0,0 +1,40 @@ + + + net6.0 + true + true + true + $(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/ + $(OutputPath) + latest + + + TRACE;DEBUG + + + TRACE + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.IntegrationTests/SpecialTests.cs b/src/Simple.OData.Client.IntegrationTests/SpecialTests.cs new file mode 100644 index 000000000..43f415b82 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/SpecialTests.cs @@ -0,0 +1,265 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.Data.Edm; +using Xunit; + +namespace Simple.OData.Client.Tests; + +using Entry = System.Collections.Generic.Dictionary; + +public class SpecialTests : ODataTestBase +{ + public SpecialTests() + : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) + { + } + + [Fact] + public async Task InterceptRequest() + { + var settings = new ODataClientSettings(_serviceUri) + { + PayloadFormat = _payloadFormat, + BeforeRequest = x => x.Method = new HttpMethod("PUT") + }; + var client = new ODataClient(settings); + await AssertThrowsAsync(async () => await client.FindEntriesAsync("Products")); + } + + [Fact] + public async Task InterceptRequestAsync() + { + var settings = new ODataClientSettings + { + BaseUri = _serviceUri, + BeforeRequestAsync = x => + { + x.Method = new HttpMethod("PUT"); + var tcs = new TaskCompletionSource(); + var task = tcs.Task; + tcs.SetResult(x); + + return task; + } + }; + var client = new ODataClient(settings); + await AssertThrowsAsync(async () => await client.FindEntriesAsync("Products")); + } + + [Fact] + public async Task InterceptResponse() + { + var settings = new ODataClientSettings(_serviceUri) + { + PayloadFormat = _payloadFormat, + AfterResponse = x => throw new InvalidOperationException() + }; + var client = new ODataClient(settings); + await AssertThrowsAsync(async () => await client.FindEntriesAsync("Products")); + } + + [Fact] + public async Task InterceptResponseAsync() + { + var settings = new ODataClientSettings + { + BaseUri = _serviceUri, + AfterResponseAsync = x => { throw new InvalidOperationException(); }, + }; + var client = new ODataClient(settings); + await AssertThrowsAsync(async () => await client.FindEntriesAsync("Products")); + } + + [Fact] + public async Task InsertUsingModifiedSchema() + { + await AssertThrowsAsync(async () => + await _client.InsertEntryAsync("Products", new Entry() { { "Price", null } })); + + var metadataDocument = await _client.GetMetadataDocumentAsync(); + metadataDocument = metadataDocument.Replace(@"Name=""Price"" Type=""Edm.Double"" Nullable=""false""", @"Name=""Price"" Type=""Edm.Double"" Nullable=""true"""); + ODataClient.ClearMetadataCache(); + var settings = new ODataClientSettings + { + BaseUri = _serviceUri, + MetadataDocument = metadataDocument, + }; + var client = new ODataClient(settings); + var model = await client.GetMetadataAsync(); + var type = model.FindDeclaredType("ODataDemo.Product"); + var property = (type as IEdmEntityType).DeclaredProperties.Single(x => x.Name == "Price"); + Assert.True(property.Type.IsNullable); + + await AssertThrowsAsync(async () => + await client.InsertEntryAsync("Products", + new Entry() + { + { "Name", "Test"}, + { "Description", "Test" }, + { "Price", null } + })); + + ODataClient.ClearMetadataCache(); + } + + [Fact] + public async Task FindEntryParallelThreads() + { + var products = (await _client.FindEntriesAsync("Products")).ToArray(); + + var summary = new ExecutionSummary(); + var tasks = new List(); + foreach (var product in products) + { + var task = RunClient(_client, Convert.ToInt32(product["ID"]), summary); + tasks.Add(task); + } + + Task.WaitAll(tasks.ToArray()); + + Assert.Equal(products.Length, summary.ExecutionCount); + Assert.Equal(0, summary.ExceptionCount); + Assert.Equal(0, summary.NonEqualCount); + } + + [Fact] + public async Task FindEntryParallelThreadsRenewConnection() + { + var client = new ODataClient(new ODataClientSettings() { BaseUri = _serviceUri, RenewHttpConnection = true }); + var products = (await client.FindEntriesAsync("Products")).ToArray(); + + var summary = new ExecutionSummary(); + var tasks = new List(); + foreach (var product in products) + { + var task = RunClient(client, Convert.ToInt32(product["ID"]), summary); + tasks.Add(task); + } + + Task.WaitAll(tasks.ToArray()); + + Assert.Equal(products.Length, summary.ExecutionCount); + Assert.Equal(0, summary.ExceptionCount); + Assert.Equal(0, summary.NonEqualCount); + } + + [Fact] + public async Task InsertUpdateDeleteSeparateBatchesRenewHttpConnection() + { + var settings = new ODataClientSettings(_serviceUri) + { + PayloadFormat = _payloadFormat, + }; + var batch = new ODataBatch(settings); + batch += c => c.InsertEntryAsync("Products", + new Entry() + { + {"ID", 1001}, + { "Name", "Test1" }, + { "Price", 21m }, + { "ReleaseDate", DateTime.Now }, + { "Rating", 1 }, + }, false); + await batch.ExecuteAsync(); + + var client = new ODataClient(new ODataClientSettings { BaseUri = _serviceUri, RenewHttpConnection = true }); + var product = await client.FindEntryAsync("Products?$filter=Name eq 'Test1'"); + Assert.Equal(21m, Convert.ToDecimal(product["Price"])); + var key = new Entry() { { "ID", product["ID"] } }; + + batch = new ODataBatch(settings); + batch += c => c.UpdateEntryAsync("Products", key, new Entry() { { "Price", 22m } }); + await batch.ExecuteAsync(); + + product = await client.FindEntryAsync("Products?$filter=Name eq 'Test1'"); + Assert.Equal(22m, Convert.ToDecimal(product["Price"])); + + batch = new ODataBatch(settings); + batch += c => c.DeleteEntryAsync("Products", key); + await batch.ExecuteAsync(); + + product = await client.FindEntryAsync("Products?$filter=Name eq 'Test1'"); + Assert.Null(product); + } + [Fact] + public async Task MetadataErrorIsNotCached() + { + const string uriString = "ftp://localhost/"; + var baseUri = new Uri(uriString); + try + { + var settings = new ODataClientSettings { BaseUri = baseUri }; + var client = new ODataClient(settings); + await client.GetMetadataAsync(); + } + catch (NotSupportedException) + { + //only HTTP and HTTPS supported + } + + var wasCached = true; + var cached = EdmMetadataCache.GetOrAdd(uriString, x => + { + wasCached = false; + return null; + }); + Assert.False(wasCached); + Assert.Null(cached); + } + + [Fact] + public async Task MetadataIsCached() + { + var settings = new ODataClientSettings { BaseUri = _serviceUri }; + var client = new ODataClient(settings); + + await client.GetMetadataAsync(); + EdmMetadataCache.GetOrAdd(_serviceUri.ToString(), x => throw new Exception("metadata was not cached.")); + + settings.BeforeRequest = x => throw new Exception("metadata cache was not used."); + await client.GetMetadataAsync(); + + settings = new ODataClientSettings { BaseUri = _serviceUri, BeforeRequest = x => throw new Exception("not reusing settings will defeat metadata cache.") }; + client = new ODataClient(settings); + await client.GetMetadataAsync(); + } + + private class ExecutionSummary + { + public int ExecutionCount { get; set; } + public int NonEqualCount { get; set; } + public int ExceptionCount { get; set; } + } + + private async static Task RunClient(IODataClient client, int productID, ExecutionSummary result) + { + try + { + var product = await client.FindEntryAsync($"Products({productID})"); + if (productID != Convert.ToInt32(product["ID"])) + { + lock (result) + { + result.NonEqualCount++; + } + } + } + catch (Exception) + { + lock (result) + { + result.ExceptionCount++; + } + } + finally + { + lock (result) + { + result.ExecutionCount++; + } + } + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/TestBase.cs b/src/Simple.OData.Client.IntegrationTests/TestBase.cs new file mode 100644 index 000000000..fdd20a797 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/TestBase.cs @@ -0,0 +1,121 @@ +using System; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public abstract class TestBase : IDisposable +{ + private static readonly HttpClient metadataHttpClient = new(); + + protected const string ODataV2ReadWriteUri = "https://services.odata.org/V2/%28S%28readwrite%29%29/OData/OData.svc/"; + protected const string ODataV3ReadOnlyUri = "https://services.odata.org/V3/OData/OData.svc/"; + protected const string ODataV3ReadWriteUri = "https://services.odata.org/V3/%28S%28readwrite%29%29/OData/OData.svc/"; + protected const string ODataV4ReadOnlyUri = "https://services.odata.org/V4/OData/OData.svc/"; + protected const string ODataV4ReadWriteUri = "https://services.odata.org/V4/OData/%28S%28readwrite%29%29/OData.svc/"; + + protected const string NorthwindV2ReadOnlyUri = "https://services.odata.org/V2/Northwind/Northwind.svc/"; + protected const string NorthwindV3ReadOnlyUri = "https://services.odata.org/V3/Northwind/Northwind.svc/"; + protected const string NorthwindV4ReadOnlyUri = "https://services.odata.org/V4/Northwind/Northwind.svc/"; + + protected const string TripPinV4ReadWriteUri = "https://services.odata.org/V4/TripPinServiceRW/"; + protected const string TripPinV4RESTierUri = "https://services.odata.org/TripPinRESTierService/"; + + protected readonly Uri _serviceUri; + protected readonly ODataPayloadFormat _payloadFormat; + protected readonly IODataClient _client; + + protected TestBase(string serviceUri, ODataPayloadFormat payloadFormat) + { + //services.odata.org only works with Tls 1.2 + System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; + + if (serviceUri.Contains("%28readwrite%29") || serviceUri == TripPinV4ReadWriteUri) + { + serviceUri = GetReadWriteUri(serviceUri).GetAwaiter().GetResult(); + } + + _serviceUri = new Uri(serviceUri); + _payloadFormat = payloadFormat; + _client = CreateClientWithDefaultSettings(); + } + + private async static Task GetReadWriteUri(string serviceUri) + { + var response = await metadataHttpClient.GetAsync(serviceUri).ConfigureAwait(false); + var uri = response.RequestMessage.RequestUri.AbsoluteUri; + if (serviceUri == ODataV2ReadWriteUri) + { + var i1 = uri.IndexOf(".org/V"); + var i2 = uri.IndexOf("/OData/"); + uri = uri[..(i1 + 5)] + uri.Substring(i1 + 8, i2 - i1 - 7) + uri.Substring(i1 + 5, 2) + uri[i2..]; + } + + return uri; + } + + protected ODataClientSettings CreateDefaultSettings(Action configure = null) + { + var settings = new ODataClientSettings(_serviceUri) + { + PayloadFormat = _payloadFormat, + IgnoreResourceNotFoundException = true, + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + }; + + configure?.Invoke(settings); + + return settings; + } + + protected ODataClientSettings CreateDefaultSettingsWithNameResolver(INameMatchResolver nameMatchResolver) + { + return new ODataClientSettings(_serviceUri) + { + PayloadFormat = _payloadFormat, + IgnoreResourceNotFoundException = true, + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + NameMatchResolver = nameMatchResolver, + }; + } + + protected IODataClient CreateClientWithDefaultSettings() + { + return new ODataClient(CreateDefaultSettings()); + } + + protected IODataClient CreateClientWithNameResolver(INameMatchResolver nameMatchResolver) + { + return new ODataClient(CreateDefaultSettingsWithNameResolver(nameMatchResolver)); + } + + public void Dispose() + { + if (_client != null) + { + DeleteTestData().Wait(); + } + + GC.SuppressFinalize(this); + } + + protected abstract Task DeleteTestData(); + + public async static Task AssertThrowsAsync(Func testCode) where T : Exception + { + try + { + await testCode(); + throw new Exception($"Expected exception: {typeof(T)}"); + } + catch (T) + { + } + catch (AggregateException exception) + { + Assert.IsType(exception.InnerExceptions.Single()); + } + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/TripPinEntities.cs b/src/Simple.OData.Client.IntegrationTests/TripPinEntities.cs new file mode 100644 index 000000000..2da38f805 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/TripPinEntities.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; + +namespace Simple.OData.Client.Tests; + +internal enum PersonGender +{ + Male, + Female, + Unknown, +} + +internal class PersonBase +{ + public string UserName { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string[] Emails { get; set; } + public List AddressInfo { get; set; } + public PersonGender Gender { get; set; } + public long Concurrency { get; set; } +} + +[DataContract(Name = "Person")] +internal class PersonWithDataContract : PersonBase +{ +} + +internal class Person : PersonBase +{ + public IEnumerable Friends { get; set; } + public IEnumerable Trips { get; set; } + public Photo Photo { get; set; } +} + +internal class PersonWithDateTime : PersonBase +{ + public IEnumerable Friends { get; set; } + public IEnumerable Trips { get; set; } + public IEnumerable Photos { get; set; } +} + +internal class PersonWithOpenTypeFields : Person +{ + public string OpenTypeString { get; set; } + public int OpenTypeInt { get; set; } +} + +internal class PersonWithOpenTypeContainer : Person +{ + public IDictionary Properties { get; set; } +} + +internal class PersonWithSets +{ + public string UserName { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string[] Emails { get; set; } + public List AddressInfo { get; set; } + public PersonGender Gender { get; set; } + public long Concurrency { get; set; } + + public ISet Friends { get; set; } + public HashSet Trips { get; set; } + public HashSet Photos { get; set; } +} + +internal class PersonWithAnnotations : Person +{ + public ODataEntryAnnotations Annotations { get; set; } +} + +internal class Me : Person +{ +} + +internal class TripBase +{ + public int TripId { get; set; } + public Guid ShareId { get; set; } + public string Description { get; set; } + public string Name { get; set; } + public float Budget { get; set; } + public DateTimeOffset StartsAt { get; set; } + public DateTimeOffset EndsAt { get; set; } + public IList Tags { get; set; } + + public IEnumerable Photos { get; set; } +} + +internal class Trip : TripBase +{ + public IEnumerable PlanItems { get; set; } +} + +internal class TripWithDateTime : TripBase +{ + public IEnumerable PlanItems { get; set; } +} + +internal class Photo +{ + public long Id { get; set; } + public string Name { get; set; } + public byte[] Media { get; set; } +} + +internal class PlanItem +{ + public int PlanItemId { get; set; } + public string ConfirmationCode { get; set; } + public DateTimeOffset? StartsAt { get; set; } + public DateTimeOffset? EndsAt { get; set; } + public TimeSpan Duration { get; set; } +} + +internal class PlanItemWithDateTime +{ + public int PlanItemId { get; set; } + public string ConfirmationCode { get; set; } + public DateTime? StartsAt { get; set; } + public DateTime? EndsAt { get; set; } + public TimeSpan Duration { get; set; } +} + +internal class PublicTransportation : PlanItem +{ + public string SeatNumber { get; set; } +} + +internal class Flight : PublicTransportation +{ + public string FlightNumber { get; set; } + public Airport From { get; set; } + public Airport To { get; set; } + public Airline Airline { get; set; } +} + +internal class Event : PlanItem +{ + public string Description { get; set; } + public EventLocation OccursAt { get; set; } +} + +internal class Airline +{ + public string AirlineCode { get; set; } + public string Name { get; set; } +} + +internal class Airport +{ + public string IcaoCode { get; set; } + public string IataCode { get; set; } + public string Name { get; set; } + public AirportLocation Location { get; set; } +} + +internal class Location +{ + public class LocationCity + { + public string CountryRegion { get; set; } + public string Name { get; set; } + public string Region { get; set; } + } + + public string Address { get; set; } + public LocationCity City { get; set; } +} + +internal class AirportLocation : Location +{ + public Microsoft.Spatial.GeographyPoint Loc { get; set; } +} + +internal class EventLocation : Location +{ + public string BuildingInfo { get; set; } +} diff --git a/src/Simple.OData.Client.IntegrationTests/TripPinTestBase.cs b/src/Simple.OData.Client.IntegrationTests/TripPinTestBase.cs new file mode 100644 index 000000000..6640716b3 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/TripPinTestBase.cs @@ -0,0 +1,24 @@ +using System; +using System.Threading.Tasks; + +namespace Simple.OData.Client.Tests; + +public class TripPinTestBase : TestBase +{ + protected TripPinTestBase(string serviceUri, ODataPayloadFormat payloadFormat) + : base(serviceUri, payloadFormat) + { + } + +#pragma warning disable 1998 + protected async override Task DeleteTestData() + { + try + { + } + catch (Exception) + { + } + } +#pragma warning restore 1998 +} diff --git a/src/Simple.OData.Client.IntegrationTests/TripPinTests.cs b/src/Simple.OData.Client.IntegrationTests/TripPinTests.cs new file mode 100644 index 000000000..58551d9f5 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/TripPinTests.cs @@ -0,0 +1,1342 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Simple.OData.Client.V4.Adapter.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class TripPinTestsV4Json : TripPinTests +{ + public TripPinTestsV4Json() : base(TripPinV4ReadWriteUri, ODataPayloadFormat.Json) { } +} + +public class TripPinRESTierTestsV4Json : TripPinTestBase +{ + public TripPinRESTierTestsV4Json() : base(TripPinV4RESTierUri, ODataPayloadFormat.Json) { } + + [Fact] + public async Task FindPeopleCountByGender() + { + var client = new ODataClient(CreateDefaultSettings(s => + { + s.IgnoreUnmappedProperties = true; + })); + var peopleGroupedByGender = await client + .WithExtensions() + .For() + .Apply(x => x.GroupBy((p, a) => new + { + p.Gender, + Count = a.Count() + })) + .FindEntriesAsync(); + + Assert.True(peopleGroupedByGender.All(x => x.Count > 0)); + } + + [Fact] + public async Task FindPeopleCountByGenderDynamic() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + IEnumerable peopleGroupedByGender = await _client + .WithExtensions() + .For(x.Person) + .Apply(b.GroupBy(new + { + x.Gender, + Count = a.Count() + })) + .FindEntriesAsync(); + + Assert.True(peopleGroupedByGender.First().Count > 0); + } +} + +public abstract class TripPinTests : TripPinTestBase +{ + protected TripPinTests(string serviceUri, ODataPayloadFormat payloadFormat) : base(serviceUri, payloadFormat) { } + + [Fact] + public async Task FindAllPeople() + { + var client = new ODataClient(new ODataClientSettings + { + BaseUri = _serviceUri, + IncludeAnnotationsInResults = true + }); + var annotations = new ODataFeedAnnotations(); + + var count = 0; + var people = await client + .For("Person") + .FindEntriesAsync(annotations); + count += people.Count(); + + while (annotations.NextPageLink != null) + { + people = await client + .For() + .FindEntriesAsync(annotations.NextPageLink, annotations); + count += people.Count(); + + foreach (var person in people) + { + Assert.NotNull(person.Annotations.Id); + Assert.NotNull(person.Annotations.ReadLink); + Assert.NotNull(person.Annotations.EditLink); + } + } + + Assert.Equal(count, annotations.Count); + } + + [Fact] + public async Task FindSinglePersonWithFeedAnnotations() + { + var annotations = new ODataFeedAnnotations(); + + var people = await _client + .For() + .Filter(x => x.UserName == "russellwhyte") + .FindEntriesAsync(annotations); + + Assert.Single(people); + Assert.Null(annotations.NextPageLink); + } + + [Fact] + public async Task FindSinglePersonExternalHttpClient() + { + var client = new ODataClient(new ODataClientSettings(new HttpClient() { BaseAddress = _serviceUri })); + + var person = await client + .For() + .Key("russellwhyte") + .FindEntryAsync(); + + Assert.Equal("russellwhyte", person.UserName); + } + + [Fact] + public async Task FindPeopleByGender() + { + var people = await _client + .For() + .Filter(x => x.Gender == (int)PersonGender.Male) + .FindEntriesAsync(); + + Assert.True(people.All(x => x.Gender == PersonGender.Male)); + } + + [Fact] + public async Task FindSinglePersonWithEntryAnnotations() + { + var client = new ODataClient(new ODataClientSettings + { + BaseUri = _serviceUri, + IncludeAnnotationsInResults = true + }); + var person = await client + .For("Person") + .Filter(x => x.UserName == "russellwhyte") + .FindEntryAsync(); + + Assert.NotNull(person.Annotations.Id); + } + + [Fact] + public async Task FindPersonExpandTripsAndFriends() + { + var person = await _client + .For() + .Key("russellwhyte") + .Expand(x => new { x.Trips, x.Friends }) + .FindEntryAsync(); + Assert.Equal(3, person.Trips.Count()); + Assert.Equal(4, person.Friends.Count()); + } + + [Fact] + public async Task FindPersonExpandEmptyTrips() + { + var person = await _client + .For() + .Key("keithpinckney") + .Expand(x => new { x.Trips }) + .FindEntryAsync(); + Assert.Empty(person.Trips); + Assert.Null(person.Friends); + Assert.Null(person.Photo); + } + + [Fact] + public async Task FindPersonExpandAndSelectTripsAndFriendsTyped() + { + var person = await _client + .For() + .Key("russellwhyte") + .Expand(x => new { x.Trips, x.Friends }) + .Select(x => x.Trips.Select(y => y.Name)) + .Select(x => x.Friends.Select(y => y.LastName)) + .FindEntryAsync(); + Assert.Equal("Trip in US", person.Trips.First().Name); + Assert.Equal("Ketchum", person.Friends.First().LastName); + } + + [Fact] + public async Task FindPersonExpandAndSelectTripsAndFriendsDynamic() + { + var x = ODataDynamic.Expression; + var person = await _client + .For(x.Person) + .Key("russellwhyte") + .Expand(x.Trips, x.Friends) + .Select(x.Trips.Name) + .Select(x.Friends.LastName) + .FindEntryAsync(); + Assert.Equal("Trip in US", (person.Trips as IEnumerable).First().Name); + Assert.Equal("Ketchum", (person.Friends as IEnumerable).First().LastName); + } + + [Fact] + public async Task FindPersonExpandFriendsWithOrderBy() + { + _ = await _client + .For("People") + .Key("russellwhyte") + .Expand("Friends") + .OrderBy("Friends/LastName") + .FindEntryAsync(); + //Assert.Equal(3, person.Trips.Count()); + //Assert.Equal(4, person.Friends.Count()); + } + + [Fact] + public async Task FindPersonPlanItems() + { + var flights = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .FindEntriesAsync(); + Assert.Equal(3, flights.Count()); + } + + [Fact] + public async Task FindPersonPlanItemsWithDateTime() + { + var flights = await _client + .For("People") + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .FindEntriesAsync(); + Assert.Equal(3, flights.Count()); + } + + [Fact] + public async Task FindPersonWithDataContract() + { + var person = await _client + .For() + .Key("russellwhyte") + .FindEntryAsync(); + Assert.Equal("russellwhyte", person.UserName); + } + + [Fact] + public async Task FindPersonPlanItemsAsSets() + { + var flights = await _client + .For("People") + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .FindEntriesAsync(); + Assert.Equal(3, flights.Count()); + } + + [Fact] + public async Task FindPersonPlanItemsByDate() + { + var now = DateTimeOffset.Now; + var flights = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .Filter(x => x.StartsAt == now) + .FindEntriesAsync(); + Assert.Empty(flights); + } + + [Fact] + public async Task FindPersonTwoLevelExpand() + { + var person = await _client + .For() + .Key("russellwhyte") + .Expand(x => x.Friends.Select(y => y.Friends)) + .FindEntryAsync(); + Assert.NotNull(person); + Assert.Equal(4, person.Friends.Count()); + } + + [Fact] + public async Task FindPersonThreeLevelExpand() + { + var person = await _client + .For() + .Key("russellwhyte") + .Expand(x => x.Friends.Select(y => y.Friends.Select(z => z.Friends))) + .FindEntryAsync(); + Assert.NotNull(person); + Assert.Equal(4, person.Friends.Count()); + Assert.Equal(8, person.Friends.SelectMany(x => x.Friends).Count()); + } + + [Fact] + public async Task FindPersonWithAnyTrips() + { + var flights = await _client + .For() + .Filter(x => x.Trips + .Any(y => y.Budget > 10000d)) + .Expand(x => x.Trips) + .FindEntriesAsync(); + Assert.True(flights.All(x => x.Trips.Any(y => y.Budget > 10000d))); + Assert.Equal(2, flights.SelectMany(x => x.Trips).Count()); + } + + [Fact] + public async Task FindPersonWithAllTrips() + { + var flights = await _client + .For() + .Filter(x => x.Trips + .All(y => y.Budget > 10000d)) + .Expand(x => x.Trips) + .FindEntriesAsync(); + Assert.True(flights.All(x => x.Trips == null || x.Trips.All(y => y.Budget > 10000d))); + } + + [Fact] + public async Task FindPersonPlanItemsWithAllTripsAnyPlanItems() + { + var duration = TimeSpan.FromHours(4); + var flights = await _client + .For() + .Filter(x => x.Trips + .All(y => y.PlanItems + .Any(z => z.Duration < duration))) + .FindEntriesAsync(); + Assert.Equal(8, flights.Count()); + } + + [Fact] + public async Task FindPersonFlight() + { + var flight = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .Key(21) + .As() + .FindEntryAsync(); + Assert.Equal("FM1930", flight.FlightNumber); + } + + [Fact] + public async Task FindPersonFlightExpandAndSelect() + { + var flight = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .Key(21) + .As() + .Expand(x => x.Airline) + .Select(x => new { x.FlightNumber, x.Airline.AirlineCode }) + .FindEntryAsync(); + Assert.Null(flight.From); + Assert.Null(flight.To); + Assert.Null(flight.Airline.Name); + Assert.Equal("FM", flight.Airline.AirlineCode); + } + + [Fact] + public async Task FindPersonFlights() + { + var flights = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As() + .FindEntriesAsync(); + Assert.Equal(2, flights.Count()); + Assert.Contains(flights, x => x.FlightNumber == "FM1930"); + } + + [Fact] + public async Task FindPersonExpandPhotoWithSelect() + { + var persons = await _client + .For() + .Expand(x => x.Photo) + .Select(x => new { x.UserName, Photo = new { x.Photo.Name } }) + .Top(1) + .FindEntriesAsync(); + var person = Assert.Single(persons); + Assert.Null(person.Photo.Media); + Assert.Equal(default, person.Photo.Id); + } + + [Fact] + public async Task FindPersonExpandFriendsWithSelect() + { + var persons = await _client + .For() + .Expand(x => x.Friends) + .Select(x => new { x.UserName, Friends = x.Friends.Select(y => y.UserName) }) + .Top(1) + .FindEntriesAsync(); + var person = Assert.Single(persons); + Assert.DoesNotContain(person.Friends, x => x.UserName == null); + Assert.True(person.Friends.All(x => x.FirstName == null)); + } + + [Fact] + public async Task FindPersonFlightsWithFilter() + { + var flights = await _client + .For() + .Key("russellwhyte") + .NavigateTo(x => x.Trips) + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As() + .Filter(x => x.FlightNumber == "FM1930") + .FindEntriesAsync(); + Assert.Single(flights); + Assert.True(flights.All(x => x.FlightNumber == "FM1930")); + } + + [Fact] + public async Task FindPersonWithEmail() + { + var persons = await _client + .For() + .Filter(x => x.Emails.Any(e => e != null)) + .Top(1) + .FindEntriesAsync(); + var person = Assert.Single(persons); + Assert.NotEmpty(person.Emails); + } + + [Fact] + public async Task FindPersonByEmail() + { + var persons = await _client + .For() + .Filter(x => x.Emails.Any(e => e == "Russell@example.com")) + .Top(1) + .FindEntriesAsync(); + var person = Assert.Single(persons); + Assert.NotEmpty(person.Emails); + } + + [Fact] + public async Task FindPersonFromWa() + { + var persons = await _client + .For() + .Filter(x => x.AddressInfo.Any(a => a.City.Region == "WA")) + .Top(1) + .FindEntriesAsync(); + var person = Assert.Single(persons); + Assert.NotEmpty(person.Emails); + } + + [Fact] + public async Task UpdatePersonLastName() + { + var person = await _client + .For() + .Filter(x => x.UserName == "russellwhyte") + .Set(new { LastName = "White" }) + .UpdateEntryAsync(); + Assert.Equal("White", person.LastName); + } + + [Fact] + public async Task UpdatePersonEmail() + { + var person = await _client + .For() + .Filter(x => x.UserName == "russellwhyte") + .Set(new { Emails = new[] { "russell.whyte@gmail.com" } }) + .UpdateEntryAsync(); + Assert.Equal("russell.whyte@gmail.com", person.Emails.First()); + } + + [Fact] + public async Task UpdatePersonAddress() + { + var person = await _client + .For() + .Filter(x => x.UserName == "russellwhyte") + .Set(new + { + AddressInfo = new[] + { + new Location() + { + Address = "187 Suffolk Ln.", + City = new Location.LocationCity() + { + CountryRegion = "United States", + Name = "Boise", + Region = "ID" + } + } + }, + }) + .UpdateEntryAsync(); + Assert.Equal("Boise", person.AddressInfo.First().City.Name); + } + + [Fact] + public async Task InsertPersonWithTypedOpenProperty() + { + _ = await _client + .For("Person") + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + OpenTypeString = "Description" + }) + .InsertEntryAsync(); + + var person = await _client + .For("Person") + .Key("gregorsamsa") + .FindEntryAsync(); + Assert.Equal(@"Description", person.OpenTypeString); + } + + [Fact] + public async Task InsertPersonWithDynamicOpenProperty() + { + var person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + Properties = new Dictionary { { "OpenTypeString", "Description" } }, + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Key("gregorsamsa") + .FindEntryAsync(); + Assert.Equal(@"Description", person.Properties["OpenTypeString"]); + } + + [Fact] + public async Task UpdatePersonWithDynamicOpenProperty() + { + var person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + Properties = new Dictionary { { "OpenTypeString", "Description" } }, + }) + .InsertEntryAsync(); + await _client + .For("Person") + .Key("gregorsamsa") + .WithProperties(x => x.Properties) + .Set(new + { + UserName = "gregorsamsa", + Properties = new Dictionary { { "OpenTypeString", "New description" } }, + }) + .UpdateEntryAsync(); + person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Key("gregorsamsa") + .FindEntryAsync(); + Assert.Equal(@"New description", person.Properties["OpenTypeString"]); + Assert.Equal("Samsa", person.LastName); + } + + [Fact] + public async Task FlterPersonOnTypedOpenProperty() + { + var person = await _client + .For("Person") + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + OpenTypeString = "Description" + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .Filter(x => x.OpenTypeString == "Description") + .FindEntryAsync(); + Assert.Equal(@"Description", person.OpenTypeString); + } + + [Fact] + public async Task FlterPersonOnDynamicOpenProperty() + { + var person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + Properties = new Dictionary { { "OpenTypeString", "Description" } }, + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .WithProperties(x => x.Properties) + .Filter(x => x.Properties["OpenTypeString"].ToString() == "Description") + .FindEntryAsync(); + Assert.Equal(@"Description", person.Properties["OpenTypeString"]); + } + + [Fact(Skip = "Fails at server")] + public async Task InsertPersonWithLinkToPeople() + { + var friend = await _client + .For() + .Key("russellwhyte") + .FindEntryAsync(); + _ = await _client + .For() + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + Friends = new[] { friend }, + }) + .InsertEntryAsync(); + + var person = await _client + .For() + .Key("gregorsamsa") + .FindEntryAsync(); + + Assert.NotNull(person); + } + + [Fact(Skip = "Fails at server")] + public async Task InsertPersonWithLinkToMe() + { + var friend = await _client + .For() + .FindEntryAsync(); + _ = await _client + .For() + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + Friends = new[] { friend }, + }) + .InsertEntryAsync(); + + var person = await _client + .For() + .Key("gregorsamsa") + .FindEntryAsync(); + + Assert.NotNull(person); + } + + [Fact] + public async Task FilterPersonByOpenTypeProperty() + { + var person = await _client + .For("Person") + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + OpenTypeString = "Description" + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .Filter(x => x.OpenTypeString == "Description") + .FindEntryAsync(); + Assert.Equal(@"Description", person.OpenTypeString); + } + + [Fact] + public async Task SelectOpenTypeStringProperty() + { + var person = await _client + .For("Person") + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + OpenTypeString = @"""Description""" + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .Key("gregorsamsa") + .Select(x => new { x.UserName, x.OpenTypeString }) + .FindEntryAsync(); + Assert.Equal(@"\""Description\""", person.OpenTypeString); + } + + [Fact] + public async Task SelectOpenTypeIntProperty() + { + var person = await _client + .For("Person") + .Set(new + { + UserName = "gregorsamsa", + FirstName = "Gregor", + LastName = "Samsa", + OpenTypeInt = 1 + }) + .InsertEntryAsync(); + + person = await _client + .For("Person") + .Key("gregorsamsa") + .Select(x => new { x.UserName, x.OpenTypeInt }) + .FindEntryAsync(); + Assert.Equal(1, person.OpenTypeInt); + } + + [Fact] + public async Task FindMe() + { + var person = await _client + .For("Me") + .FindEntryAsync(); + Assert.Equal("aprilcline", person.UserName); + Assert.Equal(2, person.Emails.Length); + Assert.Equal("Lander", person.AddressInfo.Single().City.Name); + Assert.Equal(PersonGender.Female, person.Gender); + } + + [Fact] + public async Task FindMeSelectAddressInfo() + { + var person = await _client + .For("Me") + .Select(x => x.AddressInfo) + .FindEntryAsync(); + Assert.Equal("Lander", person.AddressInfo.Single().City.Name); + Assert.Null(person.UserName); + Assert.Null(person.Emails); + } + + [Fact] + public async Task UpdateMeGender_PreconditionRequired() + { + await AssertThrowsAsync(async () => + { + await _client + .For("Me") + .Set(new { Gender = PersonGender.Male }) + .UpdateEntryAsync(); + }); + } + + //[Fact] + //public async Task UpdateMe_LastName_PreconditionRequired() + //{ + // var person = await _client + // .For("Me") + // .Set(new { LastName = "newname" }) + // .UpdateEntryAsync(); + // Assert.Equal("newname", person.LastName); + //} + + [Fact] + public async Task FindAllAirlines() + { + var airlines = await _client + .For() + .FindEntriesAsync(); + Assert.Equal(8, airlines.Count()); + } + + [Fact] + public async Task FindAllAirports() + { + var airports = await _client + .For() + .FindEntriesAsync(); + Assert.Equal(8, airports.Count()); + } + + [Fact] + public async Task FindAirportByCode() + { + var airport = await _client + .For() + .Key("KSFO") + .FindEntryAsync(); + Assert.Equal("SFO", airport.IataCode); + Assert.Equal("San Francisco", airport.Location.City.Name); + Assert.Equal(4326, airport.Location.Loc.CoordinateSystem.EpsgId); + Assert.Equal(37.6188888888889, airport.Location.Loc.Latitude); + Assert.Equal(-122.374722222222, airport.Location.Loc.Longitude); + } + + [Fact] + public async Task FindAirportOrderedByLocationAddress() + { + var airports = await _client + .For() + .OrderBy(x => x.Location.Address) + .Top(2) + .FindEntriesAsync(); + var first = airports.Select(x => x.Location.Address).First(); + var second = airports.Select(x => x.Location.Address).Last(); + Assert.True(first.CompareTo(second) < 0); + airports = await _client + .For() + .OrderByDescending(x => x.Location.Address) + .Top(2) + .FindEntriesAsync(); + first = airports.Select(x => x.Location.Address).First(); + second = airports.Select(x => x.Location.Address).Last(); + Assert.True(first.CompareTo(second) > 0); + } + + [Fact] + public async Task FindAirportOrderedByLocationCityName() + { + var airports = await _client + .For() + .OrderBy(x => x.Location.City.Name) + .Top(2) + .FindEntriesAsync(); + var first = airports.Select(x => x.Location.City.Name).First(); + var second = airports.Select(x => x.Location.City.Name).Last(); + Assert.True(first.CompareTo(second) < 0); + airports = await _client + .For() + .OrderByDescending(x => x.Location.City.Name) + .Top(2) + .FindEntriesAsync(); + first = airports.Select(x => x.Location.City.Name).First(); + second = airports.Select(x => x.Location.City.Name).Last(); + Assert.True(first.CompareTo(second) > 0); + } + + [Fact] + public async Task FindAirportByLocationCityRegionEquals() + { + var airport = await _client + .For() + .Filter(x => x.Location.City.Region == "California") + .FindEntryAsync(); + Assert.Equal("SFO", airport.IataCode); + } + + [Fact] + public async Task FindAirportByLocationCityRegionContains() + { + var airport = await _client + .For() + .Filter(x => x.Location.City.Region.Contains("California")) + .FindEntryAsync(); + Assert.Equal("SFO", airport.IataCode); + } + + [Fact] + public async Task InsertEvent() + { + var command = _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As(); + + var tripEvent = await command + .Set(CreateTestEvent()) + .InsertEntryAsync(); + + tripEvent = await command + .Key(tripEvent.PlanItemId) + .FindEntryAsync(); + + Assert.NotNull(tripEvent); + } + + [Fact] + public async Task UpdateEvent() + { + var command = _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As(); + + var tripEvent = await command + .Set(CreateTestEvent()) + .InsertEntryAsync(); + + tripEvent = await command + .Key(tripEvent.PlanItemId) + .Set(new { Description = "This is a new description" }) + .UpdateEntryAsync(); + + Assert.Equal("This is a new description", tripEvent.Description); + } + + [Fact] + public async Task DeleteEvent() + { + var command = _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As(); + + var tripEvent = await command + .Set(CreateTestEvent()) + .InsertEntryAsync(); + + await command + .Key(tripEvent.PlanItemId) + .DeleteEntryAsync(); + + tripEvent = await command + .Key(tripEvent.PlanItemId) + .FindEntryAsync(); + + Assert.Null(tripEvent); + } + + [Fact] + public async Task FindPersonTrips() + { + var trips = await _client + .For() + .Key("russellwhyte") + .NavigateTo() + .FindEntriesAsync(); + + Assert.Equal(3, trips.Count()); + } + + [Fact] + public async Task FindPersonTripsWithDateTime() + { + var trips = await _client + .For() + .Key("russellwhyte") + .NavigateTo("Trip") + .FindEntriesAsync(); + + Assert.Equal(3, trips.Count()); + } + + [Fact] + public async Task FindPersonTripsFilterDescription() + { + var trips = await _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Filter(x => x.Description.Contains("New York")) + .FindEntriesAsync(); + + Assert.Single(trips); + Assert.Contains("New York", trips.Single().Description); + } + + [Fact] + public async Task GetNearestAirport() + { + var airport = await _client + .Unbound() + .Function("GetNearestAirport") + .Set(new { lat = 100d, lon = 100d }) + .ExecuteAsSingleAsync(); + + Assert.Equal("KSEA", airport.IcaoCode); + } + + [Fact] + public async Task ResetDataSource() + { + var command = _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As(); + + var tripEvent = await command + .Set(CreateTestEvent()) + .InsertEntryAsync(); + + await _client + .Unbound() + .Action("ResetDataSource") + .ExecuteAsync(); + + tripEvent = await command + .Filter(x => x.PlanItemId == tripEvent.PlanItemId) + .FindEntryAsync(); + + Assert.Null(tripEvent); + } + + [Fact] + public async Task ShareTrip() + { + await _client + .For() + .Key("russellwhyte") + .Action("ShareTrip") + .Set(new { userName = "scottketchum", tripId = 1003 }) + .ExecuteAsync(); + } + + [Fact] + public async Task ShareTripInBatch() + { + var batch = new ODataBatch(_client); + + batch += async x => await x + .For() + .Key("russellwhyte") + .Action("ShareTrip") + .Set(new { userName = "scottketchum", tripId = 1003 }) + .ExecuteAsSingleAsync(); + + await batch.ExecuteAsync(); + } + + [Fact] + public async Task GetInvolvedPeople() + { + var people = await _client + .For() + .Key("scottketchum") + .NavigateTo() + .Key(0) + .Function("GetInvolvedPeople") + .ExecuteAsEnumerableAsync(); + Assert.Equal(2, people.Count()); + } + + [Fact] + public async Task GetInvolvedPeopleEmptyResult() + { + var people = await _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1) + .Function("GetInvolvedPeople") + .ExecuteAsEnumerableAsync(); + Assert.Empty(people); + } + + [Fact] + public async Task GetInvolvedPeopleInBatch() + { + var batch = new ODataBatch(_client); + + IEnumerable people = null; + batch += async x => + { + people = await x.For() + .Key("scottketchum") + .NavigateTo() + .Key(0) + .Function("GetInvolvedPeople") + .ExecuteAsEnumerableAsync(); + }; + + await batch.ExecuteAsync(); + Assert.Equal(2, people.Count()); + } + + [Fact] + public async Task Batch() + { + IEnumerable airlines1 = null; + IEnumerable airlines2 = null; + + var batch = new ODataBatch(_client); + batch += async c => airlines1 = await c + .For() + .FindEntriesAsync(); + batch += c => c + .For() + .Set(new Airline() { AirlineCode = "TT", Name = "Test Airline" }) + .InsertEntryAsync(false); + batch += async c => airlines2 = await c + .For() + .FindEntriesAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(8, airlines1.Count()); + Assert.Equal(8, airlines2.Count()); + } + + [Fact(Skip = "Fails at server: https://github.com/OData/ODataSamples/issues/140")] + public async Task BatchPayloadRelativeUri() + { + IEnumerable airlines1 = null; + IEnumerable airlines2 = null; + + var client = new ODataClient(CreateDefaultSettings(s => + { + s.BaseUri = _serviceUri; + s.BatchPayloadUriOption = BatchPayloadUriOption.RelativeUri; + })); + + var batch = new ODataBatch(client); + batch += async c => airlines1 = await c + .For() + .FindEntriesAsync(); + batch += c => c + .For() + .Set(new Airline() { AirlineCode = "TT", Name = "Test Airline" }) + .InsertEntryAsync(false); + batch += async c => airlines2 = await c + .For() + .FindEntriesAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(8, airlines1.Count()); + Assert.Equal(8, airlines2.Count()); + } + + [Fact] + public async Task BatchPayloadAbsoluteUri() + { + IEnumerable airlines1 = null; + IEnumerable airlines2 = null; + + var client = new ODataClient(CreateDefaultSettings(s => + { + s.BaseUri = _serviceUri; + s.BatchPayloadUriOption = BatchPayloadUriOption.AbsoluteUri; + })); + + var batch = new ODataBatch(client); + batch += async c => airlines1 = await c + .For() + .FindEntriesAsync(); + batch += c => c + .For() + .Set(new Airline() { AirlineCode = "TT", Name = "Test Airline" }) + .InsertEntryAsync(false); + batch += async c => airlines2 = await c + .For() + .FindEntriesAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(8, airlines1.Count()); + Assert.Equal(8, airlines2.Count()); + } + + [Fact(Skip = "Fails at server: https://github.com/OData/ODataSamples/issues/140")] + public async Task BatchPayloadAbsoluteUriUsingHostHeader() + { + IEnumerable airlines1 = null; + IEnumerable airlines2 = null; + + var client = new ODataClient(CreateDefaultSettings(s => + { + s.BaseUri = _serviceUri; + s.BatchPayloadUriOption = BatchPayloadUriOption.AbsoluteUriUsingHostHeader; + })); + + var batch = new ODataBatch(client); + batch += async c => airlines1 = await c + .For() + .FindEntriesAsync(); + batch += c => c + .For() + .Set(new Airline() { AirlineCode = "TT", Name = "Test Airline" }) + .InsertEntryAsync(false); + batch += async c => airlines2 = await c + .For() + .FindEntriesAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(8, airlines1.Count()); + Assert.Equal(8, airlines2.Count()); + } + + [Fact] + public async Task FindEventWithNonNullStartTime() + { + var tripEvent = await _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As() + .Filter(x => x.StartsAt < DateTimeOffset.UtcNow) + .FindEntryAsync(); + + Assert.NotNull(tripEvent); + } + + [Fact] + public async Task FindEventWithNullStartTime() + { + var tripEvent = await _client + .For() + .Key("russellwhyte") + .NavigateTo() + .Key(1003) + .NavigateTo(x => x.PlanItems) + .As() + .Filter(x => x.StartsAt == null) + .FindEntryAsync(); + + Assert.Null(tripEvent); + } + + [Fact] + public async Task GetFavoriteAirline() + { + var airport = await _client + .For() + .Key("russellwhyte") + .Function("GetFavoriteAirline") + .ExecuteAsArrayAsync(); + + Assert.Equal("AA", airport.First().AirlineCode); + } + + [Fact] + public async Task GetPhotoMedia() + { + var photo = await _client + .For() + .Key(1) + .FindEntryAsync(); + photo.Media = await _client + .For() + .Key(photo.Id) + .Media() + .GetStreamAsArrayAsync(); + + Assert.Equal(12277, photo.Media.Length); + } + + [Fact] + public async Task SetPhotoMedia() + { + var photo = await _client + .For() + .Key(1) + .FindEntryAsync(); + photo.Media = await _client + .For() + .Key(photo.Id) + .Media() + .GetStreamAsArrayAsync(); + var byteCount = photo.Media.Length; + + await _client + .For() + .Key(photo.Id) + .Media() + .SetStreamAsync(photo.Media, "image/jpeg", true); + photo.Media = await _client + .For() + .Key(photo.Id) + .Media() + .GetStreamAsArrayAsync(); + + Assert.Equal(byteCount, photo.Media.Length); + } + + private static Event CreateTestEvent() + { + return new Event + { + ConfirmationCode = "4372899DD", + Description = "Client Meeting", + Duration = TimeSpan.FromHours(3), + EndsAt = DateTimeOffset.Parse("2014-06-01T23:11:17.5479185-07:00"), + OccursAt = new EventLocation() + { + Address = "100 Church Street, 8th Floor, Manhattan, 10007", + BuildingInfo = "Regus Business Center", + City = new Location.LocationCity() + { + CountryRegion = "United States", + Name = "New York City", + Region = "New York", + } + }, + PlanItemId = 33, + StartsAt = DateTimeOffset.Parse("2014-05-25T23:11:17.5459178-07:00"), + }; + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/UpdateODataTests.cs b/src/Simple.OData.Client.IntegrationTests/UpdateODataTests.cs new file mode 100644 index 000000000..f59353ee2 --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/UpdateODataTests.cs @@ -0,0 +1,264 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests; + +// Not implemented by OData.org service +//public class UpdateODataTestsV2Atom : UpdateODataTests +//{ +// public UpdateODataTestsV2Atom() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Atom, 2) { } +//} + +// Not implemented by OData.org service +//public class UpdateODataTestsV2Json : UpdateODataTests +//{ +// public UpdateODataTestsV2Json() : base(ODataV2ReadWriteUri, ODataPayloadFormat.Json, 2) { } +//} + +public class UpdateODataTestsV3Atom : UpdateODataTests +{ + public UpdateODataTestsV3Atom() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Atom, 3) { } +} + +public class UpdateODataTestsV3Json : UpdateODataTests +{ + public UpdateODataTestsV3Json() : base(ODataV3ReadWriteUri, ODataPayloadFormat.Json, 3) { } +} + +public class UpdateODataTestsV4Json : UpdateODataTests +{ + public UpdateODataTestsV4Json() : base(ODataV4ReadWriteUri, ODataPayloadFormat.Json, 4) { } +} + +public abstract class UpdateODataTests : ODataTestBase +{ + protected UpdateODataTests(string serviceUri, ODataPayloadFormat payloadFormat, int version) + : base(serviceUri, payloadFormat, version) + { + } + + [Fact] + public async Task UpdateByKey() + { + var product = await _client + .For("Products") + .Set(CreateProduct(2001, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product["ID"]) + .Set(new { Price = 123m }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .FindEntryAsync(); + + Assert.Equal(123d, product["Price"]); + } + + [Fact] + public async Task UpdateByFilter() + { + var product = await _client + .For("Products") + .Set(CreateProduct(2002, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Filter("Name eq 'Test1'") + .Set(new { Price = 123 }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .FindEntryAsync(); + + Assert.Equal(123d, product["Price"]); + } + + [Fact] + public async Task UpdateMultipleWithResult() + { + _ = await _client + .For("Products") + .Set(CreateProduct(2003, "Test1")) + .InsertEntryAsync(); + + var product = (await _client + .For("Products") + .Filter("Name eq 'Test1'") + .Set(new { Price = 123 }) + .UpdateEntriesAsync()).Single(); + + Assert.Equal(123d, product["Price"]); + } + + [Fact] + public async Task UpdateByObjectAsKey() + { + var product = await _client + .For("Products") + .Set(CreateProduct(2004, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product) + .Set(new { Price = 456 }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .FindEntryAsync(); + + Assert.Equal(456d, product["Price"]); + } + + [Fact] + public async Task UpdateDate() + { + var tomorrow = DateTime.Now.AddDays(1); + + var product = await _client + .For("Products") + .Set(CreateProduct(2008, "Test1")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product["ID"]) + .Set(new { ReleaseDate = tomorrow }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .FindEntryAsync(); + + Assert.Equal(tomorrow.Date, DateTime.Parse(product["ReleaseDate"].ToString()).Date); + } + + [Fact] + public async Task AddSingleAssociation() + { + var category = await _client + .For("Categories") + .Set(CreateCategory(2011, "Test1")) + .InsertEntryAsync(); + var product = await _client + .For("Products") + .Set(CreateProduct(2012, "Test2")) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product["ID"]) + .Set(new Entry { { ProductCategoryName, ProductCategoryLinkFunc(category) } }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .Expand(ProductCategoryName) + .FindEntryAsync(); + Assert.Equal(category["ID"], ProductCategoryFunc(product)["ID"]); + } + + [Fact] + public async Task UpdateSingleAssociation() + { + var category1 = await _client + .For("Categories") + .Set(CreateCategory(2013, "Test1")) + .InsertEntryAsync(); + var category2 = await _client + .For("Categories") + .Set(CreateCategory(2014, "Test2")) + .InsertEntryAsync(); + var product = await _client + .For("Products") + .Set(CreateProduct(2015, "Test3", category1)) + .InsertEntryAsync(); + + await _client + .For("Products") + .Key(product["ID"]) + .Set(new Entry { { ProductCategoryName, ProductCategoryLinkFunc(category2) } }) + .UpdateEntryAsync(); + + product = await _client + .For("Products") + .Key(product["ID"]) + .Expand(ProductCategoryName) + .FindEntryAsync(); + Assert.Equal(category2["ID"], ProductCategoryFunc(product)["ID"]); + } + + // Not supported for one-to-many relationships + //[Fact] + //public async Task RemoveSingleAssociation() + //{ + // var category = await _client + // .For("Categories") + // .Set(CreateCategory(2016, "Test5")) + // .InsertEntryAsync(); + // var product = await _client + // .For("Products") + // .Set(CreateProduct(2017, "Test6", category)) + // .InsertEntryAsync(); + + // await _client + // .For("Products") + // .Key(product["ID"]) + // .Set(new Entry { { ProductCategoryName, null } }) + // .UpdateEntryAsync(); + + // product = await _client + // .For("Products") + // .Key(product["ID"]) + // .Expand(ProductCategoryName) + // .FindEntryAsync(); + // Assert.Null(product[ProductCategoryName]); + //} + + [Fact] + public async Task UpdateMultipleAssociations() + { + var category = await _client + .For("Categories") + .Set(CreateCategory(2018, "Test3")) + .InsertEntryAsync(); + var product1 = await _client + .For("Products") + .Set(CreateProduct(2019, "Test4")) + .InsertEntryAsync(); + var product2 = await _client + .For("Products") + .Set(CreateProduct(2020, "Test5")) + .InsertEntryAsync(); + + await _client + .For("Categories") + .Key(category["ID"]) + .Set(new { Products = new[] { product1, product2 } }) + .UpdateEntryAsync(); + + category = await _client + .For("Categories") + .Key(category["ID"]) + .Expand("Products") + .FindEntryAsync(); + Assert.Equal(2, (category["Products"] as IEnumerable).Count()); + } +} diff --git a/src/Simple.OData.Client.IntegrationTests/app.config b/src/Simple.OData.Client.IntegrationTests/app.config new file mode 100644 index 000000000..016e837eb --- /dev/null +++ b/src/Simple.OData.Client.IntegrationTests/app.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/App.config b/src/Simple.OData.Client.UnitTests/App.config new file mode 100644 index 000000000..cc0189d8e --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/App.config @@ -0,0 +1,22 @@ + + + +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadOnlyTests.cs b/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadOnlyTests.cs new file mode 100644 index 000000000..02f7f832c --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadOnlyTests.cs @@ -0,0 +1,188 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.BasicApi; + +using Entry = System.Collections.Generic.Dictionary; + +public class ClientReadOnlyTests : TestBase +{ + public ClientReadOnlyTests() + : base(true) + { + } + + [Fact] + public async Task FindEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client.FindEntriesAsync("Products"); + Assert.True(products.Any()); + } + + [Fact] + public async Task FindEntriesNonExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client.FindEntriesAsync("Products?$filter=ProductID eq -1"); + Assert.True(!products.Any()); + } + + [Fact] + public async Task FindEntriesSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client.FindEntriesAsync("Products?$select=ProductName"); + Assert.Equal(1, products.First().Count); + Assert.Equal("ProductName", products.First().First().Key); + } + + [Fact] + public async Task FindEntriesFilterAny() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var orders = await client.FindEntriesAsync("Orders?$filter=Order_Details/any(d:d/Quantity gt 50)"); + Assert.Equal(ExpectedCountOfOrdersHavingAnyDetail, orders.Count()); + } + + [Fact] + public async Task FindEntriesFilterAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var orders = await client.FindEntriesAsync("Orders?$filter=Order_Details/all(d:d/Quantity gt 50)"); + Assert.Equal(ExpectedCountOfOrdersHavingAllDetails, orders.Count()); + } + + [Fact] + public async Task FindEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Chai'"); + Assert.Equal("Chai", product["ProductName"]); + } + + [Fact] + public async Task GetEntryExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client.GetEntryAsync("Products", new Entry() { { "ProductID", 1 } }); + Assert.Equal("Chai", product["ProductName"]); + } + + [Fact] + public async Task GetEntryExistingCompoundKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var orderDetail = await client.GetEntryAsync("Order_Details", new Entry() { { "OrderID", 10248 }, { "ProductID", 11 } }); + Assert.Equal(11, orderDetail["ProductID"]); + } + + [Fact] + public async Task GetEntryNonExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await AssertThrowsAsync(async () => await client.GetEntryAsync("Products", new Entry() { { "ProductID", -1 } })); + } + + [Fact] + public async Task GetEntryNonExistingIgnoreException() + { + var client = new ODataClient(CreateDefaultSettings().WithIgnoredResourceNotFoundException().WithHttpMock()); + var product = await client.GetEntryAsync("Products", new Entry() { { "ProductID", -1 } }); + + Assert.Null(product); + } + + [Fact] + public async Task ExecuteScalarFunctionWithStringParameter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client.ExecuteFunctionAsScalarAsync("ParseInt", new Entry() { { "number", "1" } }); + Assert.Equal(1, result); + } + + [Fact] + public async Task ExecuteScalarFunctionWithLongParameter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client.ExecuteFunctionAsScalarAsync("PassThroughLong", new Entry() { { "number", 1L } }); + Assert.Equal(1L, result); + } + + [Fact] + public async Task ExecuteScalarFunctionWithDateTimeParameter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var dateTime = new DateTime(2013, 1, 1, 12, 13, 14, 789, DateTimeKind.Utc); + var result = await client.ExecuteFunctionAsScalarAsync("PassThroughDateTime", new Entry() { { "dateTime", dateTime } }); + Assert.Equal(dateTime.ToUniversalTime(), result); + } + + [Fact] + public async Task ExecuteScalarFunctionWithGuidParameter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var guid = new Guid("7d8f1758-00d4-4c53-a2e3-8fca73ebb92c"); + var result = await client.ExecuteFunctionAsScalarAsync("PassThroughGuid", new Entry() { { "guid", guid } }); + Assert.Equal(guid, result); + } + + [Fact] + public async Task FindEntryExistingDynamicFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var filter = await (Task)client.GetCommandTextAsync("Products", x.ProductName == "Chai"); + var product = await client.FindEntryAsync(filter); + Assert.Equal("Chai", product["ProductName"]); + } + + [Fact] + public async Task FindBaseClassEntryDynamicFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var filter = await (Task)client.GetCommandTextAsync("Transport", x.TransportID == 1); + var ship = await client.FindEntryAsync(filter); + Assert.Equal("Titanic", ship["ShipName"]); + } + + [Fact] + public async Task FindDerivedClassEntryDynamicFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var filter = await (Task)client.GetCommandTextAsync("Transport/Ships", x.ShipName == "Titanic"); + var ship = await client.FindEntryAsync(filter); + Assert.Equal("Titanic", ship["ShipName"]); + } + + [Fact] + public async Task FindEntryExistingTypedFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var filter = await client.GetCommandTextAsync("Products", x => x.ProductName == "Chai"); + var product = await client.FindEntryAsync(filter); + Assert.Equal("Chai", product["ProductName"]); + } + + [Fact] + public async Task FindBaseClassEntryTypedFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var filter = await client.GetCommandTextAsync("Transport", x => x.TransportID == 1); + var ship = await client.FindEntryAsync(filter); + Assert.Equal("Titanic", ship["ShipName"]); + } + + [Fact] + public async Task FindDerivedClassEntryTypedFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var filter = await client.GetCommandTextAsync("Transport/Ships", x => x.ShipName == "Titanic"); + var ship = await client.FindEntryAsync(filter); + Assert.Equal("Titanic", ship["ShipName"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadWriteTests.cs b/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadWriteTests.cs new file mode 100644 index 000000000..57b9de072 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/BasicApi/ClientReadWriteTests.cs @@ -0,0 +1,162 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.BasicApi; + +using Entry = System.Collections.Generic.Dictionary; + +public class ClientReadWriteTests : TestBase +{ + [Fact] + public async Task InsertEntryWithResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 18m } }, true); + + Assert.Equal("Test1", product["ProductName"]); + } + + [Fact] + public async Task InsertEntryNoResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 18m } }, false); + + Assert.Null(product); + } + + [Fact] + public async Task InsertEntrySubcollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client.InsertEntryAsync("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); + + Assert.Equal("Test1", ship["ShipName"]); + } + + [Fact] + public async Task UpdateEntryWithResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var key = new Entry() { { "ProductID", 1 } }; + var product = await client.UpdateEntryAsync("Products", key, new Entry() { { "ProductName", "Chai" }, { "UnitPrice", 123m } }, true); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateEntryNoResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var key = new Entry() { { "ProductID", 1 } }; + var product = await client.UpdateEntryAsync("Products", key, new Entry() { { "ProductName", "Chai" }, { "UnitPrice", 123m } }, false); + Assert.Null(product); + + product = await client.GetEntryAsync("Products", key); + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateEntrySubcollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client.InsertEntryAsync("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); + var key = new Entry() { { "TransportID", ship["TransportID"] } }; + await client.UpdateEntryAsync("Transport/Ships", key, new Entry() { { "ShipName", "Test2" } }); + + ship = await client.GetEntryAsync("Transport", key); + Assert.Equal("Test2", ship["ShipName"]); + } + + [Fact] + public async Task UpdateEntrySubcollectionWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var ship = await client.InsertEntryAsync("Transport/Ships", new Entry() { { "ShipName", "Test1" } }, true); + var key = new Entry() { { "TransportID", ship["TransportID"] } }; + await client.UpdateEntryAsync("Transport/Ships", key, new Entry() { { "ShipName", "Test2" } }); + + ship = await client.GetEntryAsync("Transport", key); + Assert.Equal("Test2", ship["ShipName"]); + } + + [Fact] + public async Task DeleteEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test3" }, { "UnitPrice", 18m } }, true); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test3'"); + Assert.NotNull(product); + + await client.DeleteEntryAsync("Products", product); + + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test3'"); + Assert.Null(product); + } + + [Fact] + public async Task DeleteEntrySubCollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client.InsertEntryAsync("Transport/Ships", new Entry() { { "ShipName", "Test3" } }, true); + ship = await client.FindEntryAsync("Transport?$filter=TransportID eq " + ship["TransportID"]); + Assert.NotNull(ship); + + await client.DeleteEntryAsync("Transport", ship); + + ship = await client.FindEntryAsync("Transport?$filter=TransportID eq " + ship["TransportID"]); + Assert.Null(ship); + } + + [Fact] + public async Task DeleteEntrySubCollectionWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var ship = await client.InsertEntryAsync("Transport/Ships", new Entry() { { "ShipName", "Test3" } }, true); + ship = await client.FindEntryAsync("Transport?$filter=TransportID eq " + ship["TransportID"]); + Assert.NotNull(ship); + + await client.DeleteEntryAsync("Transport", ship); + + ship = await client.FindEntryAsync("Transport?$filter=TransportID eq " + ship["TransportID"]); + Assert.Null(ship); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task LinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client.InsertEntryAsync("Categories", new Entry() { { "CategoryName", "Test4" } }, true); + var product = await client.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test5" } }, true); + + await client.LinkEntryAsync("Products", product, "Category", category); + + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test5'"); + Assert.NotNull(product["CategoryID"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task UnlinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client.InsertEntryAsync("Categories", new Entry() { { "CategoryName", "Test6" } }, true); + _ = await client.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test7" }, { "CategoryID", category["CategoryID"] } }, true); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test7'"); + Assert.NotNull(product["CategoryID"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + + await client.UnlinkEntryAsync("Products", product, "Category"); + + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test7'"); + Assert.Null(product["CategoryID"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/BasicApi/ClientSettingsTests.cs b/src/Simple.OData.Client.UnitTests/BasicApi/ClientSettingsTests.cs new file mode 100644 index 000000000..52fe40bb5 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/BasicApi/ClientSettingsTests.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.BasicApi; + +public class ClientSettingsTests : TestBase +{ + [Fact] + public async Task UpdateRequestHeadersForXCsrfTokenRequests() + { + // Make sure the default doesn't contain any headers + var concreteClient = _client as ODataClient; + Assert.Null(concreteClient.Session.Settings.BeforeRequest); + + // Add some headers - note this will simply set up the request action + // to lazily add them to the request. + concreteClient.UpdateRequestHeaders(new Dictionary> + { + {"x-csrf-token", new List {"fetch"}} + }); + Assert.NotNull(concreteClient.Session.Settings.BeforeRequest); + + // Make sure we can still execute a request + await concreteClient.GetMetadataDocumentAsync(); + } +} diff --git a/src/Simple.OData.Client.UnitTests/BasicApi/ODataSchemaTests.cs b/src/Simple.OData.Client.UnitTests/BasicApi/ODataSchemaTests.cs new file mode 100644 index 000000000..c397ff870 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/BasicApi/ODataSchemaTests.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.BasicApi; + +public class ODataSchemaTests +{ + private const string _serviceUrl = "http://services.odata.org/{0}/OData/OData.svc/"; + + [Fact] + public async Task ReadMetadataV3() + { + var client = new ODataClient(string.Format(_serviceUrl, "V3")); + var metadata = await client.GetMetadataAsync(); + Assert.Equal(12, metadata.SchemaElements.Count()); + } + + [Fact] + public async Task ReadMetadataV3AsDynamic() + { + var client = new ODataClient(string.Format(_serviceUrl, "V3")); + dynamic metadata = await client.GetMetadataAsync(); + Assert.Equal(12, (metadata.SchemaElements as IEnumerable).Count()); + } + + [Fact] + public async Task ReadMetadataV4() + { + var client = new ODataClient(string.Format(_serviceUrl, "V4")); + var metadata = await client.GetMetadataAsync(); + Assert.Equal(12, metadata.SchemaElements.Count()); + } + + [Fact] + public async Task ReadMetadataV4AsDynamic() + { + var client = new ODataClient(string.Format(_serviceUrl, "V4")); + dynamic metadata = await client.GetMetadataAsync(); + Assert.Equal(12, (metadata.SchemaElements as IEnumerable).Count()); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/ActionWithEnumTests.cs b/src/Simple.OData.Client.UnitTests/Core/ActionWithEnumTests.cs new file mode 100644 index 000000000..aba8a74b5 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/ActionWithEnumTests.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.OData.Edm; +using Simple.OData.Client.V4.Adapter; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class ActionWithEnumTests : CoreTestBase +{ + public override string MetadataFile => "ActionWithEnum.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + private enum Rank + { + First, + Second, + Third, + } + + [Fact] + public async Task ActionWithEnum() + { + var requestWriter = new RequestWriter(_session, await _client.GetMetadataAsync(), null); + var result = await requestWriter.CreateActionRequestAsync("Entity", "MakeFromParam", null, + new Dictionary() { { "Name", "Entity Name" }, { "Rank", Rank.Second } }, false); + Assert.Equal("POST", result.Method); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/AdapterTests.cs b/src/Simple.OData.Client.UnitTests/Core/AdapterTests.cs new file mode 100644 index 000000000..8b53388c9 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/AdapterTests.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Web; +using Microsoft.Data.OData; +using Simple.OData.Client.V3.Adapter; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class AdapterTests : TestBase +{ + private class CustomBatchWriter : BatchWriter + { + private readonly ISession session; + + public CustomBatchWriter(ISession session, IDictionary> batchEntries) : base(session, batchEntries) + { + this.session = session; + } + + protected async override Task CreateOperationMessageAsync(Uri uri, string method, string collection, string contentId, bool resultRequired) + { + var result = await base.CreateOperationMessageAsync(AppendToken(uri), method, collection, contentId, resultRequired); + if (result is IODataRequestMessage request) + { + session.Trace("{0} batch request id {1}: {2}", request.Method, contentId, request.Url.AbsoluteUri); + } + + return result; + } + + private static Uri AppendToken(Uri uri, string token = "123456") + { + var uriBuilder = new UriBuilder(uri); + var queryParameters = HttpUtility.ParseQueryString(uriBuilder.Query); + queryParameters["token"] = token; + uriBuilder.Query = queryParameters.ToString(); + return uriBuilder.Uri; + } + } + + private class CustomAdapter : ODataAdapter + { + private readonly ISession session; + + public CustomAdapter(ISession session, IODataModelAdapter modelAdapter) : base(session, modelAdapter) + { + this.session = session; + } + + public override IBatchWriter GetBatchWriter(IDictionary> batchEntries) + { + return new CustomBatchWriter(session, batchEntries); + } + } + + private class CustomAdapterFactory : ODataAdapterFactory + { + public override Func CreateAdapterLoader(string metadataString, ITypeCache typeCache) + { + var modelAdapter = CreateModelAdapter(metadataString, typeCache); + return session => new CustomAdapter(session, modelAdapter); + } + } + + [Fact] + public void CustomAdapterIsProduced() + { + var settings = CreateDefaultSettings(); + settings.AdapterFactory = new CustomAdapterFactory(); + var client = new ODataClient(settings); + Assert.IsType(client.Session.Adapter); + } + + [Fact] + public async void CustomBatchWriterAppendsToken() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var trace = new List(); + settings.OnTrace = (str, args) => trace.Add(string.Format(str, args)); + settings.AdapterFactory = new CustomAdapterFactory(); + + var batch = new ODataBatch(settings); + batch += c => c.FindEntriesAsync("Products"); + await batch.ExecuteAsync(); + + var batchTrace = new Regex("^(.*)batch request id(.*)token=123456$"); + var matches = trace.Where(x => batchTrace.IsMatch(x)); + Assert.Single(matches); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/AggregationTests.cs b/src/Simple.OData.Client.UnitTests/Core/AggregationTests.cs new file mode 100644 index 000000000..eabd6a56c --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/AggregationTests.cs @@ -0,0 +1,81 @@ +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class AggregationTests : CoreTestBase +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + [Theory] + [InlineData("Northwind3.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%29")] + [InlineData("Northwind4.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%29")] + public async Task FilterAny(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Subordinates.Any(y => y.EmployeeID == 1)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%20and%20x1%2FFirstName%20eq%20%27abc%27%29")] + [InlineData("Northwind4.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%20and%20x1%2FFirstName%20eq%20%27abc%27%29")] + public async Task FilterMultipleAny(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Subordinates.Any(y => y.EmployeeID == 1 && y.FirstName == "abc")); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%20and%20substringof%28%27abc%27%2Cx1%2FFirstName%29%29")] + [InlineData("Northwind4.xml", "Employees?$filter=Subordinates%2Fany%28x1%3Ax1%2FEmployeeID%20eq%201%20and%20contains%28x1%2FFirstName%2C%27abc%27%29%29")] + public async Task FilterMultipleAnyContains(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Subordinates.Any(y => y.EmployeeID == 1 && y.FirstName.Contains("abc"))); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$filter=Category%2FProducts%2Fany%28x1%3Ax1%2FProductID%20eq%201%29")] + [InlineData("Northwind4.xml", "Products?$filter=Category%2FProducts%2Fany%28x1%3Ax1%2FProductID%20eq%201%29")] + public async Task FilterNestedAny(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Category.Products.Any(y => y.ProductID == 1)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$filter=Category%2FProducts%2Fany%28x1%3Ax1%2FCategory%2FProducts%2Fany%28x2%3Ax2%2FProductID%20eq%201%29%29")] + [InlineData("Northwind4.xml", "Products?$filter=Category%2FProducts%2Fany%28x1%3Ax1%2FCategory%2FProducts%2Fany%28x2%3Ax2%2FProductID%20eq%201%29%29")] + public async Task FilterMultipleNestedAny(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Category.Products.Any(y => y.Category.Products.Any(z => z.ProductID == 1))); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/CoreTestBase.cs b/src/Simple.OData.Client.UnitTests/Core/CoreTestBase.cs new file mode 100644 index 000000000..0bb6f5d0d --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/CoreTestBase.cs @@ -0,0 +1,62 @@ +using System; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using Microsoft.Data.OData; +using Moq; + +namespace Simple.OData.Client.Tests.Core; + +public abstract class CoreTestBase : IDisposable +{ + protected readonly IODataClient _client; + internal ISession _session; + + protected CoreTestBase() + { + _client = CreateClient(MetadataFile); + } + + public IODataClient CreateClient(string metadataFile, INameMatchResolver matchResolver = null) + { + var baseUri = new Uri("http://localhost/" + metadataFile); + var metadataString = GetResourceAsString(@"Resources." + metadataFile); + var settings = new ODataClientSettings + { + BaseUri = baseUri, + MetadataDocument = metadataString, + NameMatchResolver = matchResolver, + }; + _session = Session.FromMetadata(baseUri, metadataString); + return new ODataClient(settings); + } + + public abstract string MetadataFile { get; } + public abstract IFormatSettings FormatSettings { get; } + + public void Dispose() + { + GC.SuppressFinalize(this); + } + + public static string GetResourceAsString(string resourceName) + { + var assembly = Assembly.GetExecutingAssembly(); + var resourceNames = assembly.GetManifestResourceNames(); + var completeResourceName = resourceNames.FirstOrDefault(o => o.EndsWith("." + resourceName, StringComparison.CurrentCultureIgnoreCase)); + using var resourceStream = assembly.GetManifestResourceStream(completeResourceName); + TextReader reader = new StreamReader(resourceStream); + return reader.ReadToEnd(); + } + + public static IODataResponseMessageAsync SetUpResourceMock(string resourceName) + { + var document = GetResourceAsString(resourceName); + var mock = new Mock(); + mock.Setup(x => x.GetStreamAsync()).ReturnsAsync(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetHeader("Content-Type")).Returns(() => "application/atom+xml; type=feed; charset=utf-8"); + return mock.Object; + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/DynamicContainerTests.cs b/src/Simple.OData.Client.UnitTests/Core/DynamicContainerTests.cs new file mode 100644 index 000000000..c73d5535d --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/DynamicContainerTests.cs @@ -0,0 +1,33 @@ +using Simple.OData.Client.Tests.Entities; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class DynamicContainerTests +{ + private static ITypeCache TypeCache => TypeCaches.TypeCache("test", null); + + [Fact] + public void ContainerName() + { + TypeCache.Register(); + + Assert.Equal("DynamicProperties", TypeCache.DynamicContainerName(typeof(Animal))); + } + + [Fact] + public void ExplicitContainerName() + { + TypeCache.Register("Foo"); + + Assert.Equal("Foo", TypeCache.DynamicContainerName(typeof(Animal))); + } + + [Fact] + public void SubTypeContainerName() + { + TypeCache.Register(); + + Assert.Equal("DynamicProperties", TypeCache.DynamicContainerName(typeof(Mammal))); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/DynamicDataAggregationTests.cs b/src/Simple.OData.Client.UnitTests/Core/DynamicDataAggregationTests.cs new file mode 100644 index 000000000..00115bfcc --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/DynamicDataAggregationTests.cs @@ -0,0 +1,622 @@ +using System.Threading.Tasks; +using Simple.OData.Client.V4.Adapter.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class DynamicDataAggregationTests : CoreTestBase +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public async Task FilterWithStringsAsDictionary() + { + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Filter("contains(ProductName,'ai')").Filter("startswith(ProductName,'Ch')")); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%20and%20startswith%28ProductName%2C%27Ch%27%29%29", commandText); + } + + [Fact] + public async Task FilterWithStringsAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Filter("contains(ProductName,'ai')").Filter("startswith(ProductName,'Ch')")); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%20and%20startswith%28ProductName%2C%27Ch%27%29%29", commandText); + } + + [Fact] + public async Task FilterWithODataExpressionAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Filter(x.ProductName.Contains("ai"))); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%29", commandText); + } + + [Fact] + public async Task FilterWithODataExpressionAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Filter(x.ProductName.Contains("ai"))); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%29", commandText); + } + + [Fact] + public async Task FilterWithMultipleClausesAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Filter(x.ProductName.Contains("ai")).Filter(x.ProductName.StartsWith("Ch"))); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%20and%20startswith%28ProductName%2C%27Ch%27%29%29", commandText); + } + + [Fact] + public async Task FilterWithMultipleClausesAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Filter(x.ProductName.Contains("ai")).Filter(x.ProductName.StartsWith("Ch"))); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%20and%20startswith%28ProductName%2C%27Ch%27%29%29", commandText); + } + + [Fact] + public async Task AggregateWithAverageAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { AverageUnitPrice = a.Average(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithAverageAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { AverageUnitPrice = a.Average(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithSumAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { Total = a.Sum(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20sum%20as%20Total%29", commandText); + } + + [Fact] + public async Task AggregateWithSumAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { Total = a.Sum(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20sum%20as%20Total%29", commandText); + } + + [Fact] + public async Task AggregateWithMinAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { MinPrice = a.Min(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20min%20as%20MinPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithMinAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { MinPrice = a.Min(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20min%20as%20MinPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithMaxAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { MaxPrice = a.Max(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithMaxAsODateEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { MaxPrice = a.Max(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithDistinctCountAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { Count = a.CountDistinct(x.ProductName) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28ProductName%20with%20countdistinct%20as%20Count%29", commandText); + } + + [Fact] + public async Task AggregateWithDistinctCountAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { Count = a.CountDistinct(x.ProductName) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28ProductName%20with%20countdistinct%20as%20Count%29", commandText); + } + + [Fact] + public async Task AggregateWithCountAsDictionary() + { + _ = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Aggregate(new { Count = a.Count() })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28%24count%20as%20Count%29", commandText); + } + + [Fact] + public async Task AggregateWithCountAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Aggregate(new { Count = a.Count() })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28%24count%20as%20Count%29", commandText); + } + + [Fact] + public async Task SimpleGroupByAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.GroupBy(x.Category.CategoryName)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%29", commandText); + } + + [Fact] + public async Task SimpleGroupByAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.GroupBy(x.Category.CategoryName)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%29", commandText); + } + + [Fact] + public async Task SimpleGroupByWithMultiplePropertiesAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.GroupBy(new { x.Category.CategoryName, x.ProductName })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%2CProductName%29%29", commandText); + } + + [Fact] + public async Task SimpleGroupByWithMultiplePropertiesAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.GroupBy(new { x.Category.CategoryName, x.ProductName })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%2CProductName%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationOfMultiplePropertiesAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice), + Count = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%2C%24count%20as%20Count%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationOfMultiplePropertiesAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice), + Count = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%2C%24count%20as%20Count%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenFilterAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + MaxUnitPrice = a.Max(x.UnitPrice) + }) + .Filter(x.MaxUnitPrice > 100)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20max%20as%20MaxUnitPrice%29%29%2Ffilter%28MaxUnitPrice%20gt%20100%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenFilterAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + MaxUnitPrice = a.Max(x.UnitPrice) + }) + .Filter(x.MaxUnitPrice > 100)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20max%20as%20MaxUnitPrice%29%29%2Ffilter%28MaxUnitPrice%20gt%20100%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenAggregateAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .Aggregate(new { MaxPrice = a.Max(x.AverageUnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Faggregate%28AverageUnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenAggregateAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .Aggregate(new { MaxPrice = a.Max(x.AverageUnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Faggregate%28AverageUnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenGroupByWithAggregationAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .GroupBy(new + { + x.AverageUnitPrice, + CategoriesCount = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Fgroupby%28%28AverageUnitPrice%29%2Caggregate%28%24count%20as%20CategoriesCount%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenGroupByWithAggregationAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b + .GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .GroupBy(new + { + x.AverageUnitPrice, + CategoriesCount = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Fgroupby%28%28AverageUnitPrice%29%2Caggregate%28%24count%20as%20CategoriesCount%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenOrderByAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })) + .OrderBy(x.AverageUnitPrice); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29&$orderby=AverageUnitPrice", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenOrderByAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })) + .OrderBy(x.AverageUnitPrice); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29&$orderby=AverageUnitPrice", commandText); + } + + [Fact] + public async Task MultipleAppliesAsDictionary() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For("Products") + .Apply(b.Filter("contains(Category/CategoryName,'v')")) + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28Category%2FCategoryName%2C%27v%27%29%29%2Fgroupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task MultipleAppliesAsODataEntries() + { + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + var command = _client + .WithExtensions() + .For(x.Product) + .Apply(b.Filter(x.Category.CategoryName.Contains("v"))) + .Apply(b.GroupBy(new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28Category%2FCategoryName%2C%27v%27%29%29%2Fgroupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/DynamicExpressionTests.cs b/src/Simple.OData.Client.UnitTests/Core/DynamicExpressionTests.cs new file mode 100644 index 000000000..f58fb07e0 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/DynamicExpressionTests.cs @@ -0,0 +1,440 @@ +using System; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class DynamicExpressionV3Tests : DynamicExpressionTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); +} + +public class DynamicExpressionV4Tests : DynamicExpressionTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); +} + +public abstract class DynamicExpressionTests : CoreTestBase +{ + [Fact] + public void And() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID == 1 && x.ProductName == "Chai"; + Assert.Equal("CategoryID eq 1 and ProductName eq 'Chai'", filter.AsString(_session)); + } + + [Fact] + public void Or() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName == "Chai" || x.CategoryID == 1; + Assert.Equal("ProductName eq 'Chai' or CategoryID eq 1", filter.AsString(_session)); + } + + [Fact] + public void Not() + { + var x = ODataDynamic.Expression; + var filter = !(x.ProductName == "Chai"); + Assert.Equal("not (ProductName eq 'Chai')", filter.AsString(_session)); + } + + [Fact] + public void Precedence() + { + var x = ODataDynamic.Expression; + var filter = (x.CategoryID == 1 || x.CategoryID == 2) && x.ProductName == "Chai"; + Assert.Equal("(CategoryID eq 1 or CategoryID eq 2) and ProductName eq 'Chai'", filter.AsString(_session)); + } + + [Fact] + public void EqualString() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName == "Chai"; + Assert.Equal("ProductName eq 'Chai'", filter.AsString(_session)); + } + + [Fact] + public void EqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID == 1; + Assert.Equal("CategoryID eq 1", filter.AsString(_session)); + } + + [Fact] + public void NotEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID != 1; + Assert.Equal("CategoryID ne 1", filter.AsString(_session)); + } + + [Fact] + public void GreaterNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID > 1; + Assert.Equal("CategoryID gt 1", filter.AsString(_session)); + } + + [Fact] + public void GreaterOrEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID >= 1.5; + Assert.Equal($"CategoryID ge 1.5{FormatSettings.DoubleNumberSuffix}", filter.AsString(_session)); + } + + [Fact] + public void LessNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID < 1; + Assert.Equal("CategoryID lt 1", filter.AsString(_session)); + } + + [Fact] + public void LessOrEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID <= 1; + Assert.Equal("CategoryID le 1", filter.AsString(_session)); + } + + [Fact] + public void AddEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID + 1 == 2; + Assert.Equal("CategoryID add 1 eq 2", filter.AsString(_session)); + } + + [Fact] + public void SubEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID - 1 == 2; + Assert.Equal("CategoryID sub 1 eq 2", filter.AsString(_session)); + } + + [Fact] + public void MulEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID * 1 == 2; + Assert.Equal("CategoryID mul 1 eq 2", filter.AsString(_session)); + } + + [Fact] + public void DivEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID / 1 == 2; + Assert.Equal("CategoryID div 1 eq 2", filter.AsString(_session)); + } + + [Fact] + public void ModEqualNumeric() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID % 1 == 2; + Assert.Equal("CategoryID mod 1 eq 2", filter.AsString(_session)); + } + + [Fact] + public void EqualLong() + { + var x = ODataDynamic.Expression; + var filter = x.CategoryID == 1L; + Assert.Equal($"CategoryID eq 1{FormatSettings.LongNumberSuffix}", filter.AsString(_session)); + } + + [Fact] + public void EqualDecimal() + { + var x = ODataDynamic.Expression; + var filter = x.Total == 1M; + Assert.Equal($"Total eq 1{FormatSettings.DecimalNumberSuffix}", filter.AsString(_session)); + } + + [Fact] + public void EqualDecimalWithFractionalPart() + { + var x = ODataDynamic.Expression; + var filter = x.Total == 1.23M; + Assert.Equal($"Total eq 1.23{FormatSettings.DecimalNumberSuffix}", filter.AsString(_session)); + } + + [Fact] + public void EqualGuid() + { + var x = ODataDynamic.Expression; + var filter = x.LinkID == Guid.Empty; + Assert.Equal($"LinkID eq {FormatSettings.GetGuidFormat("00000000-0000-0000-0000-000000000000")}", filter.AsString(_session)); + } + + [Fact] + public void EqualDateTime() + { + if (FormatSettings.ODataVersion < 4) + { + var x = ODataDynamic.Expression; + var filter = x.Updated == new DateTime(2013, 1, 1, 0, 0, 0, 123, DateTimeKind.Utc); + Assert.Equal("Updated eq datetime'2013-01-01T00:00:00.123Z'", filter.AsString(_session)); + } + } + + [Fact] + public void EqualDateTimeOffset() + { + var x = ODataDynamic.Expression; + var filter = x.Updated == new DateTimeOffset(new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc)); + Assert.Equal($"Updated eq {FormatSettings.GetDateTimeOffsetFormat("2013-01-01T00:00:00Z")}", filter.AsString(_session)); + } + + [Fact] + public void EqualTimeSpan() + { + var x = ODataDynamic.Expression; + var filter = x.Period == new TimeSpan(1, 2, 3); + Assert.Equal($"Period eq {FormatSettings.TimeSpanPrefix}'PT1H2M3S'", filter.AsString(_session)); + } + + [Fact] + public void LengthOfStringEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Length() == 4; + Assert.Equal("length(ProductName) eq 4", filter.AsString(_session)); + } + + [Fact] + public void StringToLowerEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.ToLower() == "chai"; + Assert.Equal("tolower(ProductName) eq 'chai'", filter.AsString(_session)); + } + + [Fact] + public void StringToUpperEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.ToUpper() == "CHAI"; + Assert.Equal("toupper(ProductName) eq 'CHAI'", filter.AsString(_session)); + } + + [Fact] + public void StringStartsWithEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.StartsWith("Ch") == true; + Assert.Equal("startswith(ProductName,'Ch') eq true", filter.AsString(_session)); + } + + [Fact] + public void StringEndsWithEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.EndsWith("Ch") == true; + Assert.Equal("endswith(ProductName,'Ch') eq true", filter.AsString(_session)); + } + + [Fact] + public void StringContainsEqualTrue() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Contains("ai") == true; + Assert.Equal($"{FormatSettings.GetContainsFormat("ProductName", "ai")} eq true", filter.AsString(_session)); + } + + [Fact] + public void StringContainsEqualFalse() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Contains("ai") == false; + Assert.Equal($"{FormatSettings.GetContainsFormat("ProductName", "ai")} eq false", filter.AsString(_session)); + } + + [Fact] + public void StringContains() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Contains("ai"); + Assert.Equal(FormatSettings.GetContainsFormat("ProductName", "ai"), filter.AsString(_session)); + } + + [Fact] + public void StringNotContains() + { + var x = ODataDynamic.Expression; + var filter = !x.ProductName.Contains("ai"); + Assert.Equal($"not {FormatSettings.GetContainsFormat("ProductName", "ai")}", filter.AsString(_session)); + } + + [Fact] + public void StringToLowerAndContains() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.ToLower().Contains("Chai"); + Assert.Equal(FormatSettings.GetContainsFormat("tolower(ProductName)", "Chai"), filter.AsString(_session)); + } + + [Fact] + public void IndexOfStringEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.IndexOf("ai") == 1; + Assert.Equal("indexof(ProductName,'ai') eq 1", filter.AsString(_session)); + } + + [Fact] + public void SubstringWithPositionEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Substring(1) == "hai"; + Assert.Equal("substring(ProductName,1) eq 'hai'", filter.AsString(_session)); + } + + [Fact] + public void SubstringWithPositionAndLengthEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Substring(1, 2) == "ha"; + Assert.Equal("substring(ProductName,1,2) eq 'ha'", filter.AsString(_session)); + } + + [Fact] + public void ReplaceStringEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Replace("a", "o") == "Choi"; + Assert.Equal("replace(ProductName,'a','o') eq 'Choi'", filter.AsString(_session)); + } + + [Fact] + public void TrimEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Trim() == "Chai"; + Assert.Equal("trim(ProductName) eq 'Chai'", filter.AsString(_session)); + } + + [Fact] + public void ConcatEqual() + { + var x = ODataDynamic.Expression; + var filter = x.ProductName.Concat("Chai") == "ChaiChai"; + Assert.Equal("concat(ProductName,'Chai') eq 'ChaiChai'", filter.AsString(_session)); + } + + [Fact] + public void DayEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Day == 1; + Assert.Equal("day(CreationTime) eq 1", filter.AsString(_session)); + } + + [Fact] + public void MonthEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Month == 2; + Assert.Equal("month(CreationTime) eq 2", filter.AsString(_session)); + } + + [Fact] + public void YearEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Year == 3; + Assert.Equal("year(CreationTime) eq 3", filter.AsString(_session)); + } + + [Fact] + public void HourEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Hour == 4; + Assert.Equal("hour(CreationTime) eq 4", filter.AsString(_session)); + } + + [Fact] + public void MinuteEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Minute == 5; + Assert.Equal("minute(CreationTime) eq 5", filter.AsString(_session)); + } + + [Fact] + public void SecondEqual() + { + var x = ODataDynamic.Expression; + var filter = x.CreationTime.Second == 6; + Assert.Equal("second(CreationTime) eq 6", filter.AsString(_session)); + } + + [Fact] + public void RoundEqual() + { + var x = ODataDynamic.Expression; + var filter = x.Price.Round() == 1; + Assert.Equal("round(Price) eq 1", filter.AsString(_session)); + } + + [Fact] + public void FloorEqual() + { + var x = ODataDynamic.Expression; + var filter = x.Price.Floor() == 1; + Assert.Equal("floor(Price) eq 1", filter.AsString(_session)); + } + + [Fact] + public void CeilingEqual() + { + var x = ODataDynamic.Expression; + var filter = x.Price.Ceiling() == 2; + Assert.Equal("ceiling(Price) eq 2", filter.AsString(_session)); + } + + [Fact] + public void EqualNestedProperty() + { + var x = ODataDynamic.Expression; + var filter = x.Nested.ProductID == 1; + Assert.Equal("Nested/ProductID eq 1", filter.AsString(_session)); + } + + [Fact] + public void FilterWithEnum() + { + var x = ODataDynamic.Expression; + var filter = x.Address.Type == AddressType.Corporate; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", filter.AsString(_session)); + } + + [Fact] + public void FilterWithEnum_LocalVar() + { + var x = ODataDynamic.Expression; + var addressType = AddressType.Corporate; + var filter = x.Address.Type == addressType; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", filter.AsString(_session)); + } + + [Fact] + public void FilterWithEnum_Const() + { + var x = ODataDynamic.Expression; + const AddressType addressType = AddressType.Corporate; + var filter = x.Address.Type == addressType; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", filter.AsString(_session)); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/DynamicFilterAsKeyTests.cs b/src/Simple.OData.Client.UnitTests/Core/DynamicFilterAsKeyTests.cs new file mode 100644 index 000000000..f4bac8c30 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/DynamicFilterAsKeyTests.cs @@ -0,0 +1,228 @@ +using System; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class DynamicFilterAsKeyV3Tests : DynamicFilterAsKeyTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); +} + +public class DynamicFilterAsKeyV4Tests : DynamicFilterAsKeyTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); +} + +public abstract class DynamicFilterAsKeyTests : CoreTestBase +{ + [Fact] + public async Task FindAllByFilterAsKeyEqual() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(x.ProductID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products(1)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyNotEqual() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(x.ProductID != 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductID%20ne%201", commandText); + } + + [Fact] + public async Task FindAllByFilterTwoClauses() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Product) + .Filter(x.ProductID != 1) + .Filter(x.ProductID != 2); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductID%20ne%201%20and%20ProductID%20ne%202", commandText); + } + + [Fact] + public async Task FindAllByFilterTwoClausesWithOr() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Product) + .Filter(x.ProductID != 1 || x.ProductID != 2) + .Filter(x.ProductID != 3); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=%28ProductID%20ne%201%20or%20ProductID%20ne%202%29%20and%20ProductID%20ne%203", commandText); + } + + [Fact] + public async Task FindAllByFilterAsNotKeyEqual() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(!(x.ProductID == 1)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Products?$filter=not%20{Uri.EscapeDataString("(")}ProductID%20eq%201{Uri.EscapeDataString(")")}", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualLong() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(x.ProductID == 1L); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Products(1{FormatSettings.LongNumberSuffix})", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualAndExtraClause() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(x.ProductID == 1 && x.ProductName == "abc"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(string.Format("Products?$filter=ProductID%20eq%201%20and%20ProductName%20eq%20{0}abc{0}", + Uri.EscapeDataString("'")), commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualDuplicateClause() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Products) + .Filter(x.ProductID == 1 && x.ProductID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products(1)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsCompleteCompoundKey() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.OrderDetails) + .Filter(x.OrderID == 1 && x.ProductID == 2); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Order_Details(OrderID=1,ProductID=2)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsInCompleteCompoundKey() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.OrderDetails) + .Filter(x.OrderID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Order_Details?$filter=OrderID%20eq%201", commandText); + } + + [Fact] + public async Task FindAllEmployeeSuperiors() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Employees) + .Filter(x.EmployeeID == 1) + .NavigateTo(x.Superior); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(1)/Superior", commandText); + } + + [Fact] + public async Task FindAllCustomerOrders() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Customers) + .Filter(x.CustomerID == "ALFKI") + .NavigateTo(x.Orders); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Customers(%27ALFKI%27)/Orders", commandText); + } + + [Fact] + public async Task FindAllEmployeeSubordinates() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Employees) + .Filter(x.EmployeeID == 2) + .NavigateTo(x.Subordinates); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(2)/Subordinates", commandText); + } + + [Fact] + public async Task FindAllOrderOrderDetails() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Orders) + .Filter(x.OrderID == 10952) + .NavigateTo(x.OrderDetails); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Orders(10952)/Order_Details", commandText); + } + + [Fact] + public async Task FindEmployeeSuperior() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Employees) + .Filter(x.EmployeeID == 1) + .NavigateTo(x.Superior); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(1)/Superior", commandText); + } + + [Fact] + public async Task FindAllFromBaseTableByFilterAsKeyEqual() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Transport) + .Filter(x.TransportID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Transport(1)", commandText); + } + + [Fact] + public async Task FindAllFromDerivedTableByFilterAsKeyEqual() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Transport) + .As(x.Ship) + .Filter(x.TransportID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Transport(1)/NorthwindModel.Ships", commandText); + } + + [Fact] + public async Task FindAllByTypedFilterAndQueryOptions() + { + var x = ODataDynamic.Expression; + var command = _client + .For(x.Product) + .Filter(x.ProductName == "abc") + .QueryOptions(x.IntOption == 42 && x.StringOption == "xyz"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductName%20eq%20%27abc%27&IntOption=42&StringOption='xyz'", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/ExpansionTests.cs b/src/Simple.OData.Client.UnitTests/Core/ExpansionTests.cs new file mode 100644 index 000000000..bac82e877 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/ExpansionTests.cs @@ -0,0 +1,631 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class ExpansionTests : CoreTestBase +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates")] + public async Task ExpandSubordinates(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=*")] + [InlineData("Northwind4.xml", "Employees?$expand=*")] + public async Task ExpandAll(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand("*"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=*&$select=*")] + [InlineData("Northwind4.xml", "Employees?$expand=*&$select=*")] + public async Task ExpandAllSelectAll(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand("*") + .Select("*"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates,Superior")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates,Superior")] + public async Task ExpandSubordinatesAndSuperior(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => new { x.Subordinates, x.Superior }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates,Superior")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates,Superior")] + public async Task ExpandSubordinatesAndSuperiorTwoClauses(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates) + .Expand(x => x.Superior); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates)")] + public async Task ExpandSubordinatesTwoTimes(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/*")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=*)")] + public async Task ExpandAllOfSecondSubordinates(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand($"{nameof(Employee.Subordinates)}/*"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates/Subordinates")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates($expand=Subordinates))")] + public async Task ExpandSubordinatesThreeTimes(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates.Select(z => z.Subordinates))); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates/*")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates($expand=*))")] + public async Task ExpandAllOfThirdSubordinates(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand($"{nameof(Employee.Subordinates)}/{nameof(Employee.Subordinates)}/*"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates&$select=LastName,Subordinates&$orderby=LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates&$select=LastName&$orderby=LastName")] + public async Task ExpandSubordinatesWithSelectAndOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates) + .Select(x => new { x.LastName, x.Subordinates }) + .OrderBy(x => x.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=*&$select=LastName,Subordinates&$orderby=LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=*&$select=LastName&$orderby=LastName")] + public async Task ExpandAllWithSelectAndOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand("*") + .Select(x => new { x.LastName, x.Subordinates }) + .OrderBy(x => x.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates&$select=LastName,Subordinates,Subordinates/LastName,Subordinates/Subordinates")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates;$select=LastName)&$select=LastName")] + public async Task ExpandSubordinatesWithInnerSelect(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates)) + .Select(x => new { x.LastName, x.Subordinates }) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates })); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates&$select=LastName,Subordinates,Subordinates/LastName,Subordinates/Subordinates&$orderby=LastName,Subordinates/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates;$select=LastName;$orderby=LastName)&$select=LastName&$orderby=LastName")] + public async Task ExpandSubordinatesWithSelectAndOrderbyTwoTimes(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates)) + .Select(x => new { x.LastName, x.Subordinates }) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates })) + .OrderBy(x => x.LastName) + .OrderBy(x => x.Subordinates.Select(y => y.LastName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/*&$select=LastName,Subordinates,Subordinates/LastName,Subordinates/Subordinates&$orderby=LastName,Subordinates/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=*;$select=LastName;$orderby=LastName)&$select=LastName&$orderby=LastName")] + public async Task ExpandAllOfSecondSubordinatesWithSelectAndOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand($"{nameof(Employee.Subordinates)}/*") + .Select(x => new { x.LastName, x.Subordinates }) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates })) + .OrderBy(x => x.LastName) + .OrderBy(x => x.Subordinates.Select(y => y.LastName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml")] + [InlineData("Northwind4.xml")] + public void ExpandSubordinatesWithSelectAndInnerOrderby(string metadataFile) + { + var client = CreateClient(metadataFile); + Assert.Throws(() => client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates)) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates }).OrderBy(y => y.LastName))); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates/Subordinates&$select=LastName,Subordinates,Subordinates/LastName,Subordinates/Subordinates,Subordinates/Subordinates/LastName,Subordinates/Subordinates/Subordinates&$orderby=LastName,Subordinates/LastName,Subordinates/Subordinates/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates($expand=Subordinates;$select=LastName;$orderby=LastName);$select=LastName;$orderby=LastName)&$select=LastName&$orderby=LastName")] + public async Task ExpandSubordinatesWithSelectAndOrderbyThreeTimes(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates.Select(y => y.Subordinates.Select(z => z.Subordinates))) + .Select(x => new { x.LastName, x.Subordinates }) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates })) + .Select(x => x.Subordinates.Select(y => y.Subordinates.Select(z => new { z.LastName, z.Subordinates }))) + .OrderBy(x => x.LastName) + .OrderBy(x => x.Subordinates.Select(y => y.LastName)) + .OrderBy(x => x.Subordinates.Select(y => y.Subordinates.Select(z => z.LastName))); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates/Subordinates/*&$select=LastName,Subordinates,Subordinates/LastName,Subordinates/Subordinates,Subordinates/Subordinates/LastName,Subordinates/Subordinates/Subordinates&$orderby=LastName,Subordinates/LastName,Subordinates/Subordinates/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates($expand=Subordinates($expand=*;$select=LastName;$orderby=LastName);$select=LastName;$orderby=LastName)&$select=LastName&$orderby=LastName")] + public async Task ExpandAllOfThirdSubordinatesWithSelectAndOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand($"{nameof(Employee.Subordinates)}/{nameof(Employee.Subordinates)}/*") + .Select(x => new { x.LastName, x.Subordinates }) + .Select(x => x.Subordinates.Select(y => new { y.LastName, y.Subordinates })) + .Select(x => x.Subordinates.Select(y => y.Subordinates.Select(z => new { z.LastName, z.Subordinates }))) + .OrderBy(x => x.LastName) + .OrderBy(x => x.Subordinates.Select(y => y.LastName)) + .OrderBy(x => x.Subordinates.Select(y => y.Subordinates.Select(z => z.LastName))); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Subordinates&$select=LastName,Subordinates&$orderby=Superior/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=Subordinates&$select=LastName&$orderby=Superior/LastName")] + public async Task ExpandSubordinatesWithSelectThenDeepOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Subordinates) + .Select(x => new { x.LastName, x.Subordinates }) + .OrderBy(x => x.Superior.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=*&$select=LastName,Subordinates&$orderby=Superior/LastName")] + [InlineData("Northwind4.xml", "Employees?$expand=*&$select=LastName&$orderby=Superior/LastName")] + public async Task ExpandAllWithSelectThenDeepOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand("*") + .Select(x => new { x.LastName, x.Subordinates }) + .OrderBy(x => x.Superior.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$select=LastName,Subordinates&$orderby=Superior/LastName")] + [InlineData("Northwind4.xml", "Employees?$select=LastName,Subordinates&$orderby=Superior/LastName")] + public async Task SelectAndDeepOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Select(x => new { x.LastName, x.Subordinates }) + .OrderBy(x => x.Superior.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$select=*&$orderby=Superior/LastName")] + [InlineData("Northwind4.xml", "Employees?$select=*&$orderby=Superior/LastName")] + public async Task SelectAllAndDeepOrderby(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Select("*") + .OrderBy(x => x.Superior.LastName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=Category&$select=ProductName,Category/CategoryName")] + [InlineData("Northwind4.xml", "Products?$expand=Category($select=CategoryName)&$select=ProductName")] + public async Task ExpandCategorySelectProductNameCategoryName(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand(p => p.Category) + .Select(p => new { p.ProductName, p.Category.CategoryName }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Superior/Subordinates")] + [InlineData("Northwind4.xml", "Employees?$expand=Superior($expand=Subordinates)")] + public async Task ExpandSuperiorWithSubordinates(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand(x => x.Superior.Subordinates); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Superior,Superior/Subordinates,Superior/Superior")] + [InlineData("Northwind4.xml", "Employees?$expand=Superior($expand=Subordinates,Superior)")] + public async Task ExpandSuperiorWithSubordinatesAndSuperiorInMultipleExpands(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client + .For() + .Expand(x => x.Superior) + .Expand(x => x.Superior.Subordinates) + .Expand(x => x.Superior.Superior); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$expand=Superior/Superior/Superior")] + [InlineData("Northwind4.xml", "Employees?$expand=Superior($expand=Superior($expand=Superior))")] + public async Task ExpandSuperiorThreeTimes(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand(x => x.Superior.Superior.Superior); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=*&$select=ProductName,Category/CategoryName")] + [InlineData("Northwind4.xml", "Products?$expand=*&$select=ProductName")] + public async Task ExpandAllSelectProductNameCategoryName(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand("*") + .Select(p => new { p.ProductName, p.Category.CategoryName }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=Category&$select=ProductName,Category/CategoryName&$orderby=Category/CategoryName")] + [InlineData("Northwind4.xml", "Products?$expand=Category($select=CategoryName)&$select=ProductName&$orderby=Category/CategoryName")] + public async Task ExpandCategorySelectProductNameCategoryNameThenOrderBy(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand(p => p.Category) + .Select(p => new { p.ProductName, p.Category.CategoryName }) + .OrderBy(p => p.Category.CategoryName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=*&$select=ProductName,Category/CategoryName&$orderby=Category/CategoryName")] + [InlineData("Northwind4.xml", "Products?$expand=*&$select=ProductName&$orderby=Category/CategoryName")] + public async Task ExpandAllSelectProductNameCategoryNameThenOrderBy(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand("*") + .Select(p => new { p.ProductName, p.Category.CategoryName }) + .OrderBy(p => p.Category.CategoryName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=Category&$select=ProductName,Category/CategoryName&$orderby=Category/CategoryName,ProductName")] + [InlineData("Northwind4.xml", "Products?$expand=Category($select=CategoryName)&$select=ProductName&$orderby=Category/CategoryName,ProductName")] + public async Task ExpandCategorySelectProductNameCategoryNameThenOrderByCategoryNameThenByProductName(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand(p => p.Category) + .Select(p => new { p.ProductName, p.Category.CategoryName }) + .OrderBy(p => p.Category.CategoryName) + .ThenBy(p => p.ProductName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Products?$expand=*&$select=ProductName,Category/CategoryName&$orderby=Category/CategoryName,ProductName")] + [InlineData("Northwind4.xml", "Products?$expand=*&$select=ProductName&$orderby=Category/CategoryName,ProductName")] + public async Task ExpandAllSelectProductNameCategoryNameThenOrderByCategoryNameThenByProductName(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + var command = client.For() + .Expand("*") + .Select(p => new { p.ProductName, p.Category.CategoryName }) + .OrderBy(p => p.Category.CategoryName) + .ThenBy(p => p.ProductName); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Order_Details?$expand=Order&$select=OrderID,Quantity,rde,Order/OrderDate&$orderby=Order/OrderDate,Quantity")] + [InlineData("Northwind4.xml", "Order_Details?$expand=Order($select=OrderDate)&$select=OrderID,Quantity,rde&$orderby=Order/OrderDate,Quantity")] + public async Task ExpandNavigationPropertyAndPropertyWithContainedName_Issue801(string metadataFile, string expectedCommand) + { + var client = CreateClient(metadataFile); + + var order_detail = new + { + OrderID = default(int), + Quantity = default(int), + Order = default(Order), + //A property whose name is contained in the expandable property Order + rde = default(int), + }; + + var command = client.For(order_detail, "Order_Detail") + .Expand(x => x.Order) + .Select(p => new { p.OrderID, p.Quantity, p.rde, p.Order.OrderDate }) + .OrderBy(p => p.Order.OrderDate) + .ThenBy(p => p.Quantity); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Fact] + public async Task ExpandSubordinates2LevelsByValue() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(ODataExpandOptions.ByValue(2), x => x.Subordinates); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees?$expand=Subordinates($levels=2)", commandText); + } + + [Fact] + public async Task ExpandSubordinates2LevelsByReference() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(ODataExpandOptions.ByReference(2), x => x.Subordinates); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees?$expand=Subordinates/$ref($levels=2)", commandText); + } + + [Fact] + public async Task ExpandFunction() + { + var x = ODataDynamic.Expression; + var client = CreateClient("TripPin.xml"); + var command = client + .For(x.Person) + .Key("scottketchum") + .NavigateTo(x.Trip) + .Key(0) + .Function("GetInvolvedPeople") + .Expand(x.Photos); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("People(%27scottketchum%27)/Trips(0)/Microsoft.OData.SampleService.Models.TripPin.GetInvolvedPeople()?$expand=Photo", commandText); + } + + [Fact] + public async Task ExpandFunctionMultipleLevelsWithSelect() + { + var client = CreateClient("ClientProductSku.xml"); + + string[] CreateUpdateExpandTables = { + "Product/ProductCategory/Category/CategorySalesArea", + "ClientProductSkuPriceList", + "ClientProductSkuSalesArea", + "Product/SupplierProductSkuClient/SupplierProductSku/SupplierProductSkuPriceList/SupplierPriceList", + "Product/SupplierProductSkuClient/SupplierProductSku/SupplierProductSkuOnHand/Warehouse" + }; + + string[] CreateUpdateSelectColumns = { + "PartNo", "ClientId", "ErpName", "EanCode", + "Product/Id","Product/ManufacturerId", + "Product/ProductCategory/IsPrimary", + "Product/ProductCategory/Category/Code", + "ClientProductSkuPriceList/CurrencyId" + }; + + var expectedResult = + @"ClientProductSkus/FunctionService.GetCreateUpdateSkuDelta(clientId=35,offsetInMinutes=2000)?" + + "$expand=Product($expand=ProductCategory($expand=Category($expand=CategorySalesArea;$select=Code);$select=IsPrimary),SupplierProductSkuClient($expand=SupplierProductSku($expand=SupplierProductSkuPriceList($expand=SupplierPriceList),SupplierProductSkuOnHand($expand=Warehouse)));$select=Id,ManufacturerId)," + + "ClientProductSkuPriceList($select=CurrencyId)," + + "ClientProductSkuSalesArea&" + + "$select=PartNo,ClientId,ErpName,EanCode"; + + var clientId = 35; + var offsetInMinutes = 2000; + + var command = client.For("ClientProductSku") + .Function("GetCreateUpdateSkuDelta") + .Set(new { clientId, offsetInMinutes }) + .Expand(CreateUpdateExpandTables) + .Select(CreateUpdateSelectColumns); + + var commandText = await command.GetCommandTextAsync(); + Console.WriteLine(commandText); + + Assert.Equal(expectedResult, commandText); + } + + [Fact] + public async Task ExpandProductsFilterByUnitPrice() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(x => x.Products.Where(p => p.UnitPrice > 18)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories?$expand=Products($filter=UnitPrice%20gt%2018)", commandText); + } + + [Fact] + public async Task ExpandProductsOrderByUnitPriceThenByProductName() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(x => x.Products.OrderBy(p => p.UnitPrice).ThenBy(p => p.ProductName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories?$expand=Products($orderby=UnitPrice,ProductName)", commandText); + } + + [Fact] + public async Task ExpandProductsOrderByCategoryName() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(x => x.Products.OrderBy(p => p.Category.CategoryName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories?$expand=Products($orderby=Category/CategoryName)", commandText); + } + + [Fact] + public async Task ExpandProductsOrderByUnitPriceDescendingThenByProductNameDescending() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(x => x.Products.OrderByDescending(p => p.UnitPrice).ThenByDescending(p => p.ProductName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories?$expand=Products($orderby=UnitPrice desc,ProductName desc)", commandText); + } + + [Fact] + public async Task ExpandSuperiorWithSubordinatesAndTheirSuperiorsAndDeepOrderby() + { + const string expectedCommand = "Employees?$expand=Superior($expand=Subordinates($expand=Superior;$orderby=LastName))"; + var client = CreateClient("Northwind4.xml"); + var command = client.For() + .Expand(x => x.Superior.Subordinates.Select(s => s.Superior)) + .Expand(x => x.Superior.Subordinates.OrderBy(s => s.LastName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + + command = client.For() + .Expand(x => x.Superior.Subordinates.OrderBy(s => s.LastName)) + .Expand(x => x.Superior.Subordinates.Select(s => s.Superior)); + commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + + command = client.For() + .Expand(x => x.Superior.Subordinates.OrderBy(s => s.LastName).Select(s => s.Superior)); + commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Fact] + public async Task ExpandProductsSelectProductNameAndUnitPriceThenOrderByUnitPriceDescendingThenByProductNameDescending() + { + var client = CreateClient("Northwind4.xml"); + var command = client + .For() + .Expand(x => x.Products.Select(p => new { p.ProductName, p.UnitPrice })) + .Expand(x => x.Products.OrderByDescending(p => p.UnitPrice).ThenByDescending(p => p.ProductName)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories?$expand=Products($select=ProductName,UnitPrice;$orderby=UnitPrice desc,ProductName desc)", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/FormatSettings.cs b/src/Simple.OData.Client.UnitTests/Core/FormatSettings.cs new file mode 100644 index 000000000..2ba6d1dd3 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/FormatSettings.cs @@ -0,0 +1,133 @@ +using System; + +namespace Simple.OData.Client.Tests.Core; + +public interface IFormatSettings +{ + int ODataVersion { get; } + string LongNumberSuffix { get; } + string DoubleNumberSuffix { get; } + string DecimalNumberSuffix { get; } + string TimeSpanPrefix { get; } + string GetDateTimeOffsetFormat(string text, bool escapeString = false); + string GetGuidFormat(string text, bool escapeString = false); + string GetEnumFormat(object value, Type enumType, string ns, bool prefixFree = false, bool escapeString = false); + string GetContainsFormat(string item, string text, bool escapeString = false); + string GetContainedInFormat(string item, string text, bool escapeString = false); +} + +internal class ODataV3Format : IFormatSettings +{ + public int ODataVersion => 3; + public string LongNumberSuffix => "L"; + public string DoubleNumberSuffix => "D"; + public string DecimalNumberSuffix => "M"; + public string TimeSpanPrefix => "time"; + + public string GetDateTimeOffsetFormat(string text, bool escapeString = false) + { + var result = $"datetimeoffset'{text}'"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } + + public string GetGuidFormat(string text, bool escapeString = false) + { + var result = $"guid'{text}'"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } + + public string GetEnumFormat(object value, Type enumType, string ns, bool prefixFree = false, bool escapeString = false) + { + return Convert.ToInt32(value).ToString(); + } + + public string GetContainsFormat(string item, string text, bool escapeString = false) + { + var result = $"substringof('{text}',{item})"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } + + public string GetContainedInFormat(string item, string text, bool escapeString = false) + { + var result = $"substringof({item},'{text}')"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } +} + +internal class ODataV4Format : IFormatSettings +{ + public ODataV4Format() + { + } + + public int ODataVersion => 4; + public string LongNumberSuffix => string.Empty; + public string DoubleNumberSuffix => string.Empty; + public string DecimalNumberSuffix => string.Empty; + public string TimeSpanPrefix => "duration"; + + public string GetDateTimeOffsetFormat(string text, bool escapeString = false) + { + return escapeString ? Uri.EscapeDataString(text) : text; + } + + public string GetGuidFormat(string text, bool escapeString = false) + { + return escapeString ? Uri.EscapeDataString(text) : text; + } + + public string GetEnumFormat(object value, Type enumType, string ns, bool prefixFree = false, bool escapeString = false) + { + var result = prefixFree + ? $"'{Enum.ToObject(enumType, value)}'" + : $"{ns}.{enumType.Name}'{Enum.ToObject(enumType, value)}'"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } + + public string GetContainsFormat(string item, string text, bool escapeString = false) + { + var result = $"contains({item},'{text}')"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } + + public string GetContainedInFormat(string item, string text, bool escapeString = false) + { + var result = $"contains('{text}',{item})"; + if (escapeString) + { + result = Uri.EscapeDataString(result); + } + + return result; + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/KeyTests.cs b/src/Simple.OData.Client.UnitTests/Core/KeyTests.cs new file mode 100644 index 000000000..37134a6db --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/KeyTests.cs @@ -0,0 +1,232 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class KeyTests : CoreTestBase +{ + public override string MetadataFile => "Northwind4WithAlternateKeys.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Theory] + [InlineData("Northwind3.xml", "Categories(1)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(1)")] + public async Task PrimaryKey_SingleProperty_NoNames(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories(1)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(1)")] + public async Task PrimaryKey_SingleProperty_Named(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { CategoryID = 1 }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Order_Details(OrderID=1,ProductID=2)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Order_Details(OrderID=1,ProductID=2)")] + public async Task PrimaryKey_MultipleProperty_NoNames(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(1, 2); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Order_Details(OrderID=1,ProductID=2)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Order_Details(OrderID=1,ProductID=2)")] + public async Task PrimaryKey_MultipleProperty_Named(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { ProductID = 2, OrderID = 1 }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Order_Details(OrderID=1,ProductID=2)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Order_Details(OrderID=1,ProductID=2)")] + public async Task PrimaryKey_MultipleProperty_FromEntity(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new OrderDetail { ProductID = 2, OrderID = 1, Quantity = 5 }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories(1)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(1)")] + public async Task PrimaryKey_SingleProperty_FromEntity(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new Category { CategoryID = 1 }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories(1)")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(1)")] + public async Task PrimaryKey_SingleProperty_FromFilter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.CategoryID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories?$filter=CategoryID%20eq%201%20and%20CategoryName%20eq%20%27Test%27")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories?$filter=CategoryID%20eq%201%20and%20CategoryName%20eq%20%27Test%27")] + public async Task PrimaryKey_SingleProperty_NoMatchinhFilter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.CategoryID == 1 && x.CategoryName == "Test"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("KeyDemo.xml", "Activities?$filter=Ticket%2FId%20eq%201")] + public async Task PrimaryKey_SingleProperty_NavigationKeyFilter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Ticket.Id == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("KeyDemo.xml", "Activities?$filter=Option%2FId%20eq%201")] + public async Task PrimaryKey_SingleProperty_ComplexKeyFilter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.Option.Id == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(CategoryName=%27Beverages%27)")] + public async Task AlternateKey_SingleProperty(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { CategoryName = "Beverages" }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Categories?$filter=CategoryName%20eq%20%27Beverages%27")] + [InlineData("Northwind4WithAlternateKeys.xml", "Categories(CategoryName=%27Beverages%27)")] + public async Task AlternateKey_SingleProperty_As_Filter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.CategoryName == "Beverages"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees")] + [InlineData("Northwind4WithAlternateKeys.xml", "Employees(HomePhone=%27123%27,Title=%27Manager%27)")] + public async Task AlternateKey_MultipleProperty(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { HomePhone = "123", Title = "Manager" }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Employees?$filter=HomePhone%20eq%20%27123%27%20and%20Title%20eq%20%27Manager%27")] + [InlineData("Northwind4WithAlternateKeys.xml", "Employees(HomePhone=%27123%27,Title=%27Manager%27)")] + public async Task AlternateKey_MultipleProperty_FromFilter(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Filter(x => x.HomePhone == "123" && x.Title == "Manager"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Orders")] + [InlineData("Northwind4WithAlternateKeys.xml", "Orders(CustomerID=%27ALFKI%27)")] + public async Task AlternateKey_MultipleKeys_Key1(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { CustomerID = "ALFKI" }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } + + [Theory] + [InlineData("Northwind3.xml", "Orders")] + [InlineData("Northwind4WithAlternateKeys.xml", "Orders(ShipName=%27TEST%27)")] + public async Task AlternateKey_MultipleKeys_Key2(string metadataFile, string expectedCommand) + { + ODataExpression.ArgumentCounter = 0; + var client = CreateClient(metadataFile); + var command = client + .For() + .Key(new { ShipName = "TEST" }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(expectedCommand, commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/ODataExpandAssociationTests.cs b/src/Simple.OData.Client.UnitTests/Core/ODataExpandAssociationTests.cs new file mode 100644 index 000000000..ff72951a6 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/ODataExpandAssociationTests.cs @@ -0,0 +1,54 @@ +using System; +using System.Linq; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class ODataExpandAssociationTests +{ + [Fact] + public void CreateExpandAssociationFromString() + { + var association = ODataExpandAssociation.From("Products"); + + Assert.Equal("Products", association.Name); + } + + [Fact] + public void CreateExpandAssociationWithNestedAssociations() + { + var association = ODataExpandAssociation.From("Products/Category/Orders"); + + Assert.Equal("Products", association.Name); + Assert.Single(association.ExpandAssociations); + Assert.Equal("Category", association.ExpandAssociations.First().Name); + Assert.Single(association.ExpandAssociations.First().ExpandAssociations); + Assert.Equal("Orders", association.ExpandAssociations.First().ExpandAssociations.First().Name); + } + + [Fact] + public void CreateExpandAssociationFromNullStringThrowsArgumentException() + { + Assert.Throws(() => ODataExpandAssociation.From(null)); + } + + [Fact] + public void CreateExpandAssociationFromEmptyStringThrowsArgumentException() + { + Assert.Throws(() => ODataExpandAssociation.From(string.Empty)); + } + + [Fact] + public void CloneProducesNewObjects() + { + var association = new ODataExpandAssociation("Products") + { + ExpandAssociations = { new ODataExpandAssociation("Category") } + }; + + var clonedAssociation = association.Clone(); + + Assert.NotSame(association, clonedAssociation); + Assert.NotSame(association.ExpandAssociations.First(), clonedAssociation.ExpandAssociations.First()); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/OpenTypesTests.cs b/src/Simple.OData.Client.UnitTests/Core/OpenTypesTests.cs new file mode 100644 index 000000000..982c0286f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/OpenTypesTests.cs @@ -0,0 +1,43 @@ +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.OData; +using Microsoft.OData.Edm; +using Moq; +using Simple.OData.Client.V4.Adapter; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class OpenTypesTests : CoreTestBase +{ + public override string MetadataFile => "OpenTypes.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public async Task ReadUntypedAsStrings() + { + _session.Settings.ReadUntypedAsString = false; + var response = SetUpResourceMock("OpenTypeV401.json"); + var edmModel = await _client.GetMetadataAsync(); + var responseReader = new ResponseReader(_session, edmModel); + var result = (await responseReader.GetResponseAsync(response)).Feed; + var entry = result.Entries.First(); + Assert.NotNull(entry); + Assert.Equal(42m, entry.Data["Id"]); + Assert.Equal(43m, entry.Data["IntegerProperty"]); + Assert.Null(entry.Data["NullProperty"]); + Assert.Equal("some string", entry.Data["StringProperty"]); + } + + private static new IODataResponseMessageAsync SetUpResourceMock(string resourceName) + { + var document = GetResourceAsString(resourceName); + var mock = new Mock(); + mock.Setup(x => x.GetStreamAsync()).ReturnsAsync(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetHeader("Content-Type")).Returns(() => "application/json; type=feed; charset=utf-8"); + return mock.Object; + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/PluralizerTests.cs b/src/Simple.OData.Client.UnitTests/Core/PluralizerTests.cs new file mode 100644 index 000000000..b67f60d44 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/PluralizerTests.cs @@ -0,0 +1,105 @@ +using System.Threading.Tasks; +using Simple.OData.Client.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class PluralizerTests +{ + private readonly SimplePluralizer _pluralizer = new(); + + [Theory] + [InlineData("Person", "Persons")] + [InlineData("Day", "Days")] + [InlineData("Dummy", "Dummies")] + [InlineData("Access", "Accesses")] + [InlineData("Life", "Lives")] + [InlineData("Codex", "Codices")] + public void PluralizeWord(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Pluralize(word)); + } + + [Theory] + [InlineData("Persons", "Person")] + [InlineData("People", "Person")] + [InlineData("Days", "Day")] + [InlineData("Dummies", "Dummy")] + [InlineData("Accesses", "Access")] + [InlineData("Lives", "Life")] + [InlineData("Codices", "Codex")] + public void SingularizeWord(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Singularize(word)); + } + + [Theory] + [InlineData("Språk", "Språk")] + public void PluralizeWordWithNonEnglishCharacters(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Pluralize(word)); + } + + [Theory] + [InlineData("Gårds", "Gårds")] + public void SingularizeWordWithNonEnglishCharacters(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Singularize(word)); + } + + [Theory] + [InlineData("Catalog_Контрагенты", "Catalog_Контрагенты")] + public void PluralizeWordWithNonLatinCharacters(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Pluralize(word)); + } + + [Theory] + [InlineData("Catalog_Контрагенты", "Catalog_Контрагенты")] + public void SingularizeWordWithNonLatinCharacters(string word, string expectedResult) + { + Assert.Equal(expectedResult, _pluralizer.Singularize(word)); + } + + [Theory] + [InlineData("Person", "person")] + [InlineData("Day", "day")] + [InlineData("Språk", "språk")] + [InlineData("Person_123", "person123")] + [InlineData("Språk_123", "språk123")] + [InlineData("Catalog_Контрагенты_123", "catalogконтрагенты123")] + public void HomogenizeWord(string word, string expectedResult) + { + Assert.Equal(expectedResult, word.Homogenize()); + } +} + +public class NonLatinSchemaPluralizerTests : CoreTestBase +{ + public override string MetadataFile => "Russian.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + [Fact] + public async Task TableWithNonLaticCharacters() + { + var client = CreateClient("Russian.xml"); + var commandText = await client + .For("Catalog_Контрагенты") + .Top(10) + .GetCommandTextAsync(); + + Assert.Equal("Catalog_Контрагенты?$top=10", commandText); + } + + [Fact] + public async Task TableWithNonLaticCharacters_NoPluralizer() + { + var client = CreateClient("Russian.xml", ODataNameMatchResolver.Strict); + var commandText = await client + .For("Catalog_Контрагенты") + .Top(10) + .GetCommandTextAsync(); + + Assert.Equal("Catalog_Контрагенты?$top=10", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/RequestWriterActionTests.cs b/src/Simple.OData.Client.UnitTests/Core/RequestWriterActionTests.cs new file mode 100644 index 000000000..ee5e17f3a --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/RequestWriterActionTests.cs @@ -0,0 +1,46 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class RequestWriterActionTests : CoreTestBase +{ + public override string MetadataFile => "ActionWithDerivedType.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + protected async Task CreateRequestWriter() + { + return new V4.Adapter.RequestWriter(_session, await _client.GetMetadataAsync(), null); + } + + [Fact] + public async Task CreateActionRequestWithDerivedType() + { + var requestWriter = await CreateRequestWriter(); + var request = await requestWriter.CreateActionRequestAsync("CancelSalesOrder", "CancelSalesOrder", null, + new Dictionary + { + ["Status"] = 936140011, + ["OrderClose"] = new Dictionary + { + ["salesorderid"] = new Dictionary { { "salesorderid", new Guid("5AEEC23F-DB4F-E911-A978-000D3A3611E1") } }, + ["subject"] = $"Close sales Order {DateTime.Now}", + ["@odata.type"] = "Microsoft.Dynamics.CRM.orderclose" + } + }, true); + var stringResult = await request.RequestMessage.Content.ReadAsStringAsync(); + var result = JsonConvert.DeserializeObject(stringResult); + + Assert.True(result.ContainsKey("OrderClose")); + + var orderClose = result["OrderClose"]; + + Assert.NotNull(orderClose); + Assert.NotNull(orderClose["@odata.type"]); + Assert.Equal("#Microsoft.Dynamics.CRM.orderclose", ((JValue)orderClose["@odata.type"]).Value as string); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/RequestWriterBatchTests.cs b/src/Simple.OData.Client.UnitTests/Core/RequestWriterBatchTests.cs new file mode 100644 index 000000000..487cd8213 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/RequestWriterBatchTests.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class RequestWriterBatchV3Tests : RequestWriterBatchTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + protected async override Task CreateBatchRequestWriter() + { + return new V3.Adapter.RequestWriter( + _session, + await _client.GetMetadataAsync(), + new Lazy(() => _session.Adapter.GetBatchWriter( + new Dictionary>()))); + } +} + +public class RequestWriterBatchV4Tests : RequestWriterBatchTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + protected async override Task CreateBatchRequestWriter() + { + return new V4.Adapter.RequestWriter( + _session, + await _client.GetMetadataAsync(), + new Lazy(() => base.BatchWriter)); + } +} + +public abstract class RequestWriterBatchTests : CoreTestBase +{ + protected Dictionary> BatchContent { get; } = new(3); + + protected abstract Task CreateBatchRequestWriter(); + + protected IBatchWriter BatchWriter => _session.Adapter.GetBatchWriter( + BatchContent); + + [Fact] + public async Task CreateUpdateRequest_NoPreferredVerb_AllProperties_OperationHeaders_Patch() + { + var requestWriter = await CreateBatchRequestWriter(); + + var result = await requestWriter.CreateUpdateRequestAsync("Products", "", + new Dictionary() { { "ProductID", 1 } }, + new Dictionary() + { + { "ProductID", 1 }, + { "SupplierID", 2 }, + { "CategoryID", 3 }, + { "ProductName", "Chai" }, + { "EnglishName", "Tea" }, + { "QuantityPerUnit", "10" }, + { "UnitPrice", 20m }, + { "UnitsInStock", 100 }, + { "UnitsOnOrder", 1000 }, + { "ReorderLevel", 500 }, + { "Discontinued", false }, + }, + false, + new Dictionary() + { + { "Header1","HeaderValue1"} + }); + + Assert.Equal("PATCH", result.Method); + Assert.True(result.Headers.TryGetValue("Header1", out var value) && value == "HeaderValue1"); + Assert.True(result.RequestMessage.Headers.TryGetValues("Header1", out var values) && values.Contains("HeaderValue1")); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/RequestWriterTests.cs b/src/Simple.OData.Client.UnitTests/Core/RequestWriterTests.cs new file mode 100644 index 000000000..88adeacb2 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/RequestWriterTests.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class RequestWriterV3Tests : RequestWriterTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + protected async override Task CreateRequestWriter() + { + return new V3.Adapter.RequestWriter(_session, await _client.GetMetadataAsync(), null); + } +} + +public class RequestWriterV4Tests : RequestWriterTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + protected async override Task CreateRequestWriter() + { + return new V4.Adapter.RequestWriter(_session, await _client.GetMetadataAsync(), null); + } +} + +public abstract class RequestWriterTests : CoreTestBase +{ + protected abstract Task CreateRequestWriter(); + + [Fact] + public async Task CreateUpdateRequest_NoPreferredVerb_PartialProperties_Patch() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateUpdateRequestAsync("Products", "", + new Dictionary() { { "ProductID", 1 } }, + new Dictionary() { { "ProductName", "Chai" } }, false); + Assert.Equal("PATCH", result.Method); + } + + [Fact] + public async Task CreateUpdateRequest_NoPreferredVerb_AllProperties_Patch() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateUpdateRequestAsync("Products", "", + new Dictionary() { { "ProductID", 1 } }, + new Dictionary() + { + { "ProductID", 1 }, + { "SupplierID", 2 }, + { "CategoryID", 3 }, + { "ProductName", "Chai" }, + { "EnglishName", "Tea" }, + { "QuantityPerUnit", "10" }, + { "UnitPrice", 20m }, + { "UnitsInStock", 100 }, + { "UnitsOnOrder", 1000 }, + { "ReorderLevel", 500 }, + { "Discontinued", false }, + }, false); + Assert.Equal("PATCH", result.Method); + } + + [Fact] + public async Task CreateUpdateRequest_PreferredVerbPut_AllProperties_Put() + { + var preferredUpdateMethod = _session.Settings.PreferredUpdateMethod; + try + { + _session.Settings.PreferredUpdateMethod = ODataUpdateMethod.Put; + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateUpdateRequestAsync("Products", "", + new Dictionary() { { "ProductID", 1 } }, + new Dictionary() + { + { "ProductID", 1 }, + { "SupplierID", 2 }, + { "CategoryID", 3 }, + { "ProductName", "Chai" }, + { "EnglishName", "Tea" }, + { "QuantityPerUnit", "10" }, + { "UnitPrice", 20m }, + { "UnitsInStock", 100 }, + { "UnitsOnOrder", 1000 }, + { "ReorderLevel", 500 }, + { "Discontinued", false }, + }, false); + Assert.Equal("PUT", result.Method); + } + finally + { + _session.Settings.PreferredUpdateMethod = preferredUpdateMethod; + } + } + + [Fact] + public async Task CreateUpdateRequest_PreferredVerbPatch_ChangedKey_Put() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateUpdateRequestAsync("Products", "", + new Dictionary() { { "ProductID", 1 } }, + new Dictionary() + { + { "ProductID", 10 }, + { "SupplierID", 2 }, + { "CategoryID", 3 }, + { "ProductName", "Chai" }, + { "EnglishName", "Tea" }, + { "QuantityPerUnit", "10" }, + { "UnitPrice", 20m }, + { "UnitsInStock", 100 }, + { "UnitsOnOrder", 1000 }, + { "ReorderLevel", 500 }, + { "Discontinued", false }, + }, false); + Assert.Equal("PUT", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_DateTime_Not_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "BirthDate", DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified) }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_DateTime_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "BirthDate", null }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_DateTimeOffset_Not_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "BirthDate", DateTimeOffset.Now }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_DateTimeOffset_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "BirthDate", null }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_Date_Not_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "HireDate", DateTimeOffset.Now }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_Date_Null_Post() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + { "LastName", "Smith" }, + { "HireDate", null }, + }, false); + Assert.Equal("POST", result.Method); + } + + [Fact] + public async Task CreateInsertRequest_With_Headers() + { + var requestWriter = await CreateRequestWriter(); + var result = await requestWriter.CreateInsertRequestAsync("Employees", "", + new Dictionary() + { + { "FirstName", "John" }, + }, false, + new Dictionary + { + { "header1" , "header1Value" }, + { "header2" , "header2Value" } + }); + + Assert.Equal("header1Value", result.Headers["header1"]); + Assert.Equal("header2Value", result.Headers["header2"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV3Tests.cs b/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV3Tests.cs new file mode 100644 index 000000000..e7dd66cca --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV3Tests.cs @@ -0,0 +1,201 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Data.Edm; +using Simple.OData.Client.V3.Adapter; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class ResponseReaderV3Tests : CoreTestBase +{ + private const int productProperties = 10; + private const int categoryProperties = 4; + + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + [Fact] + public async Task GetSingleProduct() + { + var response = SetUpResourceMock("SingleProduct.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties, result.Count); + } + + [Fact] + public async Task GetMultipleProducts() + { + var response = SetUpResourceMock("MultipleProducts.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed.Entries; + Assert.Equal(20, result.Count); + Assert.Equal(productProperties, result.First().Data.Count); + } + + [Fact] + public async Task GetSingleProductWithCategory() + { + var response = SetUpResourceMock("SingleProductWithCategory.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties + 1, result.Count); + Assert.Equal(categoryProperties, (result["Category"] as IDictionary).Count); + } + + [Fact] + public async Task GetMultipleProductsWithCategory() + { + var response = SetUpResourceMock("MultipleProductsWithCategory.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed.Entries; + Assert.Equal(20, result.Count); + Assert.Equal(productProperties + 1, result.First().Data.Count); + Assert.Equal(categoryProperties, (result.First().Data["Category"] as IDictionary).Count); + } + + [Fact] + public async Task GetSingleCategoryWithProducts() + { + var response = SetUpResourceMock("SingleCategoryWithProducts.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(categoryProperties + 1, result.Count); + Assert.Equal(12, (result["Products"] as IEnumerable>).Count()); + Assert.Equal(productProperties, (result["Products"] as IEnumerable>).First().Count); + } + + [Fact] + public async Task GetMultipleCategoriesWithProducts() + { + var response = SetUpResourceMock("MultipleCategoriesWithProducts.xml"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed.Entries; + Assert.Equal(8, result.Count); + Assert.Equal(categoryProperties + 1, result.First().Data.Count); + Assert.Equal(12, (result.First().Data["Products"] as IEnumerable>).Count()); + Assert.Equal(productProperties, (result.First().Data["Products"] as IEnumerable>).First().Count); + } + + [Fact] + public async Task GetSingleProductWithComplexProperty() + { + var response = SetUpResourceMock("SingleProductWithComplexProperty.xml"); + var responseReader = new ResponseReader(_session, null); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties + 1, result.Count); + var quantity = result["Quantity"] as IDictionary; + Assert.NotNull(quantity); + Assert.Equal(10d, quantity["Value"]); + Assert.Equal("bags", quantity["Units"]); + } + + [Fact] + public async Task GetSingleProductWithCollectionOfPrimitiveProperties() + { + var response = SetUpResourceMock("SingleProductWithCollectionOfPrimitiveProperties.xml"); + var responseReader = new ResponseReader(_session, null); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties + 2, result.Count); + var tags = result["Tags"] as IList; + Assert.Equal(2, tags.Count); + Assert.Equal("Bakery", tags[0]); + Assert.Equal("Food", tags[1]); + var ids = result["Ids"] as IList; + Assert.Equal(2, ids.Count); + Assert.Equal(1, ids[0]); + Assert.Equal(2, ids[1]); + } + + [Fact] + public async Task GetSingleProductWithCollectionOfComplexProperties() + { + var response = SetUpResourceMock("SingleProductWithCollectionOfComplexProperties.xml"); + var responseReader = new ResponseReader(_session, null); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties + 1, result.Count); + var tags = result["Tags"] as IList; + Assert.Equal(2, tags.Count); + Assert.Equal("Food", tags[0]["group"]); + Assert.Equal("Bakery", tags[0]["value"]); + Assert.Equal("Food", tags[1]["group"]); + Assert.Equal("Meat", tags[1]["value"]); + } + + [Fact] + public async Task GetSingleProductWithEmptyCollectionOfComplexProperties() + { + var response = SetUpResourceMock("SingleProductWithEmptyCollectionOfComplexProperties.xml"); + var responseReader = new ResponseReader(_session, null); + var result = (await responseReader.GetResponseAsync(response)).AsEntry(false); + Assert.Equal(productProperties + 1, result.Count); + var tags = result["Tags"] as IList; + Assert.Equal(0, tags.Count); + } + + [Fact] + public Task GetColorsSchema() + { + return ParseSchema("Colors"); + } + + [Fact] + public Task GetFacebookSchema() + { + return ParseSchema("Facebook"); + } + + [Fact] + public Task GetFlickrSchema() + { + return ParseSchema("Flickr"); + } + + [Fact] + public Task GetGoogleMapsSchema() + { + return ParseSchema("GoogleMaps"); + } + + [Fact] + public Task GetiPhoneSchema() + { + return ParseSchema("iPhone"); + } + + [Fact] + public Task GetTwitterSchema() + { + return ParseSchema("Twitter"); + } + + [Fact] + public Task GetYouTubeSchema() + { + return ParseSchema("YouTube"); + } + + [Fact] + public Task GetNestedSchema() + { + return ParseSchema("Nested"); + } + + [Fact] + public Task GetArrayOfNestedSchema() + { + return ParseSchema("ArrayOfNested"); + } + + private static Task ParseSchema(string schemaName) + { + var document = GetResourceAsString(schemaName + ".edmx"); + var metadata = ODataClient.ParseMetadataString(document); + var entityType = metadata.SchemaElements + .Single(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && + (x as IEdmType).TypeKind == EdmTypeKind.Entity); + Assert.Equal(schemaName, entityType.Name); + return Task.FromResult(0); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV4Tests.cs b/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV4Tests.cs new file mode 100644 index 000000000..c7d6858b8 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/ResponseReaderV4Tests.cs @@ -0,0 +1,56 @@ +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.OData; +using Microsoft.OData.Edm; +using Moq; +using Simple.OData.Client.V4.Adapter; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class ResponseReaderV4Tests : CoreTestBase +{ + public override string MetadataFile => "DynamicsCRM.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public async Task GetExpandedLinkAnnotationOnlyLink() + { + var response = SetUpResourceMock("AccountTasksOnlyLink.json"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed; + Assert.NotNull(result.Entries.First().LinkAnnotations); + } + + [Fact] + public async Task GetExpandedLinkAnnotationDataAndLink() + { + var response = SetUpResourceMock("AccountTasksAndLink.json"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed; + Assert.NotNull(result.Entries.First().LinkAnnotations); + } + + [Fact] + public async Task ExampleActionReturnsComplexType() + { + var response = SetUpResourceMock("ExampleActionComplexType.json"); + var responseReader = new ResponseReader(_session, await _client.GetMetadataAsync()); + var result = (await responseReader.GetResponseAsync(response)).Feed; + var entry = result.Entries.First(); + Assert.NotNull(entry); + Assert.Equal("MyPropertyValue", entry.Data["SomeProperty"]); + } + + private static new IODataResponseMessageAsync SetUpResourceMock(string resourceName) + { + var document = GetResourceAsString(resourceName); + var mock = new Mock(); + mock.Setup(x => x.GetStreamAsync()).ReturnsAsync(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes(document))); + mock.Setup(x => x.GetHeader("Content-Type")).Returns(() => "application/json; type=feed; charset=utf-8"); + return mock.Object; + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/SettingsRegistrationTests.cs b/src/Simple.OData.Client.UnitTests/Core/SettingsRegistrationTests.cs new file mode 100644 index 000000000..91d2cb4b0 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/SettingsRegistrationTests.cs @@ -0,0 +1,34 @@ +using System; +using Simple.OData.Client.Tests.Entities; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class SettingsRegistrationTests +{ + [Fact] + public void RegisterContainer() + { + var settings = new ODataClientSettings { BaseUri = new Uri("http://localhost") }; + + settings.TypeCache.Register(); + + // NB Stored under AbsoluteUri so need trailing / + var typeCache = TypeCaches.TypeCache("http://localhost/", null); + + Assert.Equal("DynamicProperties", typeCache.DynamicContainerName(typeof(Animal))); + } + + [Fact] + public void RegisterNamedContainer() + { + var settings = new ODataClientSettings { BaseUri = new Uri("http://localhost") }; + + settings.TypeCache.Register("Foo"); + + // NB Stored under AbsoluteUri so need trailing / + var typeCache = TypeCaches.TypeCache("http://localhost/", null); + + Assert.Equal("Foo", typeCache.DynamicContainerName(typeof(Animal))); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/SettingsTests.cs b/src/Simple.OData.Client.UnitTests/Core/SettingsTests.cs new file mode 100644 index 000000000..0ea5eeadf --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/SettingsTests.cs @@ -0,0 +1,117 @@ +using System; +using System.Net.Http; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class SettingsTests +{ + [Fact] + public void ClientWithEmptySettings() + { + Assert.Throws(() => new ODataClient(new ODataClientSettings())); + } + + [Fact] + public void DefaultCtorAndBaseUri() + { + var settings = new ODataClientSettings { BaseUri = new Uri("http://localhost") }; + Assert.Equal("http://localhost/", settings.BaseUri.AbsoluteUri); + } + + [Fact] + public void CtorWithBaseUri() + { + var settings = new ODataClientSettings(new Uri("http://localhost")); + Assert.Equal("http://localhost/", settings.BaseUri.AbsoluteUri); + } + + [Fact] + public void CtorWithBaseUriTypeCache() + { + var settings = new ODataClientSettings(new Uri("http://localhost")); + var settings2 = new ODataClientSettings(new Uri("http://localhost")); + + Assert.Same(settings.TypeCache, settings2.TypeCache); + } + + [Fact] + public void CtorWithHttpClient() + { + var settings = new ODataClientSettings(new HttpClient()); + Assert.Null(settings.BaseUri); + } + + [Fact] + public void CtorWithHttpClientTypeCache() + { + var settings = new ODataClientSettings(new HttpClient()); + Assert.Throws(() => settings.TypeCache); + } + + [Fact] + public void CtorWithHttpClientNoBaseAddressAndBaseUri() + { + var settings = new ODataClientSettings(new HttpClient()) { BaseUri = new Uri("http://localhost") }; + Assert.Equal("http://localhost/", settings.BaseUri.AbsoluteUri); + } + + [Fact] + public void CtorWithHttpClientNoBaseAddressAndBaseUriTypeCache() + { + var settings = new ODataClientSettings(new HttpClient()) { BaseUri = new Uri("http://localhost") }; + var settings2 = new ODataClientSettings(new HttpClient()) { BaseUri = new Uri("http://localhost") }; + + Assert.Same(settings.TypeCache, settings2.TypeCache); + } + + [Fact] + public void CtorWithHttpClientNoBaseAddressAndRelativeUri() + { + Assert.Throws(() => new ODataClientSettings(new HttpClient(), new Uri("api", UriKind.Relative))); + } + + [Fact] + public void CtorWithHttpClientAndBaseAddress() + { + var settings = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }); + Assert.Equal("http://localhost/", settings.BaseUri.AbsoluteUri); + } + + [Fact] + public void CtorWithHttpClientAndBaseAddressTypeCache() + { + var settings = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }); + var settings2 = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }); + + Assert.Same(settings.TypeCache, settings2.TypeCache); + } + + [Fact] + public void CtorWithHttpClientAndRelativeBaseAddress() + { + Assert.Throws(() => new ODataClientSettings(new HttpClient { BaseAddress = new Uri("abc", UriKind.Relative) })); + } + + [Fact] + public void CtorWithHttpClientAndBaseAddressAndRelativeUrl() + { + var settings = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }, new Uri("api", UriKind.Relative)); + Assert.Equal("http://localhost/api", settings.BaseUri.AbsoluteUri); + } + + [Fact] + public void CtorWithHttpClientAndBaseAddressAndRelativeUrlTypeCache() + { + var settings = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }, new Uri("api", UriKind.Relative)); + var settings2 = new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }, new Uri("api", UriKind.Relative)); + + Assert.Same(settings.TypeCache, settings2.TypeCache); + } + + [Fact] + public void CtorWithHttpClientAndBaseAddressAndAbsoluteUrl() + { + Assert.Throws(() => new ODataClientSettings(new HttpClient { BaseAddress = new Uri("http://localhost") }, new Uri("http://localhost/api"))); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/StreamTests.cs b/src/Simple.OData.Client.UnitTests/Core/StreamTests.cs new file mode 100644 index 000000000..eea6f0d9c --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/StreamTests.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class StreamTests : CoreTestBase +{ + public override string MetadataFile => "TripPin.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + private class Photo + { + public long Id { get; set; } + public string Name { get; set; } + public byte[] Media { get; set; } + } + + [Fact] + public async Task GetMediaStream() + { + var command = _client + .For() + .Key(1) + .QueryOptions(new Dictionary() { { "IntOption", 42 }, { "StringOption", "xyz" } }) + .Media(); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Photos(1)/$value?IntOption=42&StringOption='xyz'", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/TypeCacheValueConversionTests.cs b/src/Simple.OData.Client.UnitTests/Core/TypeCacheValueConversionTests.cs new file mode 100644 index 000000000..8b8cfd216 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/TypeCacheValueConversionTests.cs @@ -0,0 +1,181 @@ +using System; +using Microsoft.Spatial; +using Simple.OData.Client.Tests.Entities; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class TypeCacheValueConversionTests +{ + private static ITypeCache TypeCache => TypeCaches.TypeCache("test", null); + + [Theory] + [InlineData(1, typeof(int), typeof(byte))] + [InlineData(1, typeof(int), typeof(byte?))] + [InlineData(1, typeof(int), typeof(short))] + [InlineData(1, typeof(int), typeof(short?))] + [InlineData(1, typeof(int), typeof(long))] + [InlineData(1, typeof(int), typeof(long?))] + [InlineData(1, typeof(int), typeof(decimal))] + [InlineData(1, typeof(int), typeof(decimal?))] + [InlineData(1, typeof(int), typeof(float))] + [InlineData(1, typeof(int), typeof(float?))] + [InlineData(1, typeof(int), typeof(double))] + [InlineData(1, typeof(int), typeof(double?))] + [InlineData(1, typeof(double), typeof(byte))] + [InlineData(1, typeof(double), typeof(byte?))] + [InlineData(1, typeof(double), typeof(short))] + [InlineData(1, typeof(double), typeof(short?))] + [InlineData(1, typeof(double), typeof(long))] + [InlineData(1, typeof(double), typeof(long?))] + [InlineData(1, typeof(double), typeof(decimal))] + [InlineData(1, typeof(double), typeof(decimal?))] + [InlineData(1, typeof(double), typeof(float))] + [InlineData(1, typeof(double), typeof(float?))] + [InlineData("Utc", typeof(string), typeof(DateTimeKind))] + [InlineData("Utc", typeof(string), typeof(DateTimeKind?))] + [InlineData("2014-02-01T12:00:00.123", typeof(DateTimeOffset), typeof(DateTime))] + [InlineData("2014-02-01T12:00:00.123", typeof(DateTimeOffset), typeof(DateTime?))] + [InlineData("2014-02-01T12:00:00.123", typeof(DateTime), typeof(DateTimeOffset))] + [InlineData("2014-02-01T12:00:00.123", typeof(DateTime), typeof(DateTimeOffset?))] + [InlineData("58D6C94D-B18A-43C9-AC1B-0B5A5BF10C35", typeof(string), typeof(Guid))] + [InlineData("58D6C94D-B18A-43C9-AC1B-0B5A5BF10C35", typeof(string), typeof(Guid?))] + [InlineData("0", typeof(string), typeof(TestEnum))] + [InlineData("Something", typeof(string), typeof(TestEnum))] + [InlineData("5", typeof(string), typeof(TestEnum?))] + [InlineData("Nothing", typeof(string), typeof(TestEnum?))] + public void TryConvert(object value, Type sourceType, Type targetType) + { + var sourceValue = ChangeType(value, sourceType); + var result = TypeCache.TryConvert(sourceValue, targetType, out var targetValue); + Assert.True(result); + Assert.Equal(ChangeType(sourceValue, targetType), ChangeType(targetValue, targetType)); + + sourceValue = ChangeType(value, targetType); + result = TypeCache.TryConvert(sourceValue, sourceType, out targetValue); + Assert.True(result); + Assert.Equal(ChangeType(sourceValue, sourceType), ChangeType(targetValue, sourceType)); + } + + [Fact] + public void TryConvert_GeographyPoint() + { + var source = GeographyPoint.Create(10, 10); + var result = TypeCache.TryConvert(source, typeof(GeographyPoint), out _); + Assert.True(result); + } + + [Theory] + [InlineData("2014-02-01", typeof(Microsoft.OData.Edm.Date), typeof(DateTime))] + [InlineData("2014-02-01", typeof(Microsoft.OData.Edm.Date), typeof(DateTime?))] + public void TryConvertODataEdmDate(object value, Type sourceType, Type targetType) + { + var sourceValue = ChangeType(value, sourceType); + var result = TypeCache.TryConvert(sourceValue, targetType, out var targetValue); + Assert.True(result); + Assert.Equal(ChangeType(sourceValue, targetType), ChangeType(targetValue, targetType)); + } + + [Theory] + [InlineData("58D6C94D-B18A-43C9-AC1B-0B5A5BF10C35", typeof(Guid?), typeof(DateTime))] + [InlineData("58D6C94D-B18A-43C9-AC1B-0B5A5BF10C35", typeof(Guid), typeof(DateTime?))] + public void TryConvertValueWithoutImplicitDateConversionFails(object value, Type sourceType, Type targetType) + { + var sourceValue = ChangeType(value, sourceType); + var result = TypeCache.TryConvert(sourceValue, targetType, out _); + Assert.False(result); + } + + [Fact] + public void TryConvert_CustomType_WithTypeConverterLambda() + { + TypeCache.Converter.RegisterTypeConverter( + c => new PrimitiveType(new Guid(c.ToString()))); + + var source = Guid.NewGuid(); + var result = TypeCache.TryConvert(source, typeof(PrimitiveType), out var converted); + Assert.True(result); + Assert.Equal(source, ((PrimitiveType)converted).Value); + } + + [Fact] + public void TryConvert_CustomType_WithTypeConverterLambda_Nullable() + { + TypeCache.Converter.RegisterTypeConverter( + c => new PrimitiveType(new Guid(c.ToString()))); + + var source = (Guid?)Guid.NewGuid(); + var result = TypeCache.TryConvert(source, typeof(PrimitiveType?), out var converted); + Assert.True(result); + Assert.Equal(source, ((PrimitiveType)converted).Value); + } + + [Fact] + public void TryConvert_CustomType_WithTypeConverterComponent() + { + var source = Guid.NewGuid(); + var result = TypeCache.TryConvert(source, typeof(PrimitiveType), out var converted); + Assert.True(result); + Assert.Equal(source, ((PrimitiveType)converted).Value); + } + + [Fact] + public void TryConvert_CustomType_WithTypeConverterComponent_Nullable() + { + var source = (Guid?)Guid.NewGuid(); + var result = TypeCache.TryConvert(source, typeof(PrimitiveType?), out var converted); + Assert.True(result); + Assert.Equal(source, ((PrimitiveType)converted).Value); + } + + private object ChangeType(object value, Type targetType) + { + if (targetType == typeof(string)) + { + return value.ToString(); + } + + if (targetType == typeof(DateTime)) + { + return DateTime.Parse(value.ToString()); + } + + if (targetType == typeof(DateTimeOffset)) + { + return DateTimeOffset.Parse(value.ToString()); + } + + if (targetType.IsEnum) + { + return Enum.Parse(targetType, value.ToString(), true); + } + + if (targetType == typeof(Guid)) + { + return new Guid(value.ToString()); + } + + if (targetType == typeof(PrimitiveType)) + { + return new PrimitiveType(new Guid(value.ToString())); + } + + if (Nullable.GetUnderlyingType(targetType) != null) + { + return ChangeType(value, Nullable.GetUnderlyingType(targetType)); + } + + if (targetType == typeof(Microsoft.OData.Edm.Date)) + { + return Microsoft.OData.Edm.Date.Parse(value.ToString()); + } + + return Convert.ChangeType(value, targetType); + } + + private enum TestEnum + { + Nothing = 0, + Something = 5 + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/TypeConverterCacheTests.cs b/src/Simple.OData.Client.UnitTests/Core/TypeConverterCacheTests.cs new file mode 100644 index 000000000..5a2daa874 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/TypeConverterCacheTests.cs @@ -0,0 +1,33 @@ +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class TypeConverterCacheTests +{ + [Fact] + public void CachePerUri() + { + var c1 = CustomConverters.Converter("foo"); + var c2 = CustomConverters.Converter("bar"); + + Assert.NotSame(c1, c2); + } + + [Fact] + public void SameCacheForUri() + { + var c1 = CustomConverters.Converter("foo"); + var c2 = CustomConverters.Converter("foo"); + + Assert.Same(c1, c2); + } + + [Fact] + public void GlobalConverters() + { + var c1 = CustomConverters.Converter("global"); + var c2 = CustomConverters.Global; + + Assert.Same(c1, c2); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/TypedDataAggregationTests.cs b/src/Simple.OData.Client.UnitTests/Core/TypedDataAggregationTests.cs new file mode 100644 index 000000000..449c57cf6 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/TypedDataAggregationTests.cs @@ -0,0 +1,310 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Simple.OData.Client.Tests.Core; +using Simple.OData.Client.V4.Adapter.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class TypedDataAggregationTests : CoreTestBase +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public async Task Filter() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Filter(x => x.ProductName.Contains("ai")).Filter(x => x.ProductName.StartsWith("Ch"))); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28ProductName%2C%27ai%27%29%20and%20startswith%28ProductName%2C%27Ch%27%29%29", commandText); + } + + [Fact] + public async Task AggregateWithAverage() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { AverageUnitPrice = a.Average(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithAverageAsConcreteDestinationType() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new ProductGroupedByCategoryNameWithAggregatedProperties + { + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithSum() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { Total = a.Sum(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20sum%20as%20Total%29", commandText); + } + + [Fact] + public async Task AggregateWithMin() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { MinPrice = a.Min(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20min%20as%20MinPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithMax() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { MaxPrice = a.Max(x.UnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28UnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task AggregateWithDistinctCount() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { Count = a.CountDistinct(x.ProductName) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28ProductName%20with%20countdistinct%20as%20Count%29", commandText); + } + + [Fact] + public async Task AggregateWithCount() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Aggregate((x, a) => new { Count = a.Count() })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=aggregate%28%24count%20as%20Count%29", commandText); + } + + [Fact] + public async Task SimpleGroupBy() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, _) => x.Category.CategoryName)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%29", commandText); + } + + [Fact] + public async Task SimpleGroupByWithMultipleProperties() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, _) => new + { + x.Category.CategoryName, + x.ProductName + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%2CProductName%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregation() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationAndNestedAssignments() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, a) => new + { + x.ProductName, + Category = new Category + { + CategoryName = x.Category.CategoryName + }, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28ProductName%2CCategory%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationOfMultipleProperties() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice), + Count = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%2C%24count%20as%20Count%29%29", commandText); + } + + [Fact] + public async Task FilterThenGroupByWithAggregationAsConcreteDestinationType() + { + var categories = new List { "Beverage", "Food" }; + var command = _client + .WithExtensions() + .For() + .Apply(b => b + .Filter(x => categories.Contains(x.Category.CategoryName)) + .GroupBy((x, a) => new ProductGroupedByCategoryNameWithAggregatedProperties + { + Category = new Category { CategoryName = x.Category.CategoryName }, + AverageUnitPrice = a.Average(x.UnitPrice) + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28%28Category%2FCategoryName%20in%20%28%27Beverage%27%2C%27Food%27%29%29%29%2Fgroupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenFilter() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b + .GroupBy((x, a) => new + { + x.Category.CategoryName, + MaxUnitPrice = a.Max(x.UnitPrice) + }) + .Filter(x => x.MaxUnitPrice > 100)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20max%20as%20MaxUnitPrice%29%29%2Ffilter%28MaxUnitPrice%20gt%20100%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenAggregate() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b + .GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .Aggregate((x, a) => new { MaxPrice = a.Max(x.AverageUnitPrice) })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Faggregate%28AverageUnitPrice%20with%20max%20as%20MaxPrice%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenGroupByWithAggregation() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b + .GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + }) + .GroupBy((x, a) => new + { + x.AverageUnitPrice, + CategoriesCount = a.Count() + })); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Fgroupby%28%28AverageUnitPrice%29%2Caggregate%28%24count%20as%20CategoriesCount%29%29", commandText); + } + + [Fact] + public async Task GroupByWithAggregationThenOrderBy() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })) + .OrderBy(x => x.AverageUnitPrice); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=groupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29&$orderby=AverageUnitPrice", commandText); + } + + [Fact] + public async Task MultipleApplies() + { + var command = _client + .WithExtensions() + .For() + .Apply(b => b.Filter(x => x.Category.CategoryName.Contains("ab"))) + .Apply(b => b.GroupBy((x, a) => new + { + x.Category.CategoryName, + AverageUnitPrice = a.Average(x.UnitPrice) + })) + .Apply(b => b.Filter(x => x.AverageUnitPrice > 100)); + + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$apply=filter%28contains%28Category%2FCategoryName%2C%27ab%27%29%29%2Fgroupby%28%28Category%2FCategoryName%29%2Caggregate%28UnitPrice%20with%20average%20as%20AverageUnitPrice%29%29%2Ffilter%28AverageUnitPrice%20gt%20100%29", commandText); + } +} + +internal class ProductGroupedByCategoryNameWithAggregatedProperties : Product +{ + public decimal AverageUnitPrice { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/TypedExpressionsTests.cs b/src/Simple.OData.Client.UnitTests/Core/TypedExpressionsTests.cs new file mode 100644 index 000000000..b709ef917 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/TypedExpressionsTests.cs @@ -0,0 +1,706 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json.Serialization; +using Newtonsoft.Json; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class TypedExpressionV3Tests : TypedExpressionTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); +} + +public class TypedExpressionV4Tests : TypedExpressionTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public void FilterEntitiesWithContains() + { + var ids = new List { 1, 2, 3 }; + Expression> filter = x => ids.Contains(x.ProductID); + Assert.Equal("(ProductID in (1,2,3))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterEntitiesByStringPropertyWithContains() + { + var names = new List { "Chai", "Milk", "Water" }; + Expression> filter = x => names.Contains(x.ProductName); + Assert.Equal("(ProductName in ('Chai','Milk','Water'))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterEntitiesByNestedPropertyWithContains() + { + var categories = new List { "Chai", "Milk", "Water" }; + Expression> filter = x => categories.Contains(x.Nested.ProductName); + Assert.Equal("(Nested/ProductName in ('Chai','Milk','Water'))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterEntitiesByComplexConditionWithContains() + { + var categories = new List { "chai", "milk", "water" }; + Expression> filter = x => categories.Contains(x.ProductName.ToLower()); + Assert.Equal("(tolower(ProductName) in ('chai','milk','water'))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterEntitiesWithNotContains() + { + var ids = new List { 1, 2, 3 }; + Expression> filter = x => !ids.Contains(x.ProductID); + Assert.Equal("not (ProductID in (1,2,3))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterEntitiesWithContainsAndNotContains() + { + var ids = new List { 1, 2, 3 }; + var names = new List { "Chai", "Milk", "Water" }; + Expression> filter = x => ids.Contains(x.ProductID) && !names.Contains(x.ProductName); + Assert.Equal("(ProductID in (1,2,3)) and not (ProductName in ('Chai','Milk','Water'))", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } +} + +public abstract class TypedExpressionTests : CoreTestBase +{ + [AttributeUsage(AttributeTargets.Property)] + private class DataAttribute : Attribute + { + public string Name { get; set; } + public string PropertyName { get; set; } + } + + [AttributeUsage(AttributeTargets.Property)] + private class DataMemberAttribute : Attribute + { + public string Name { get; set; } + public string PropertyName { get; set; } + } + + [AttributeUsage(AttributeTargets.Property)] + private class OtherAttribute : Attribute + { + public string Name { get; set; } + public string PropertyName { get; set; } + } + + internal class TestEntity + { + public int ProductID { get; set; } + + public string ProductName { get; set; } + + public Guid LinkID { get; set; } + + public decimal Price { get; set; } + + public Address Address { get; set; } + + public DateTime CreationTime { get; set; } + + public DateTimeOffset Updated { get; set; } + + public TimeSpan Period { get; set; } + + public TestEntity Nested { get; set; } + + public TestEntity[] Collection { get; set; } + + [Column(Name = "Name")] + public string MappedNameUsingColumnAttribute { get; set; } + + [Data(Name = "Name", PropertyName = "OtherName")] + public string MappedNameUsingDataAttribute { get; set; } + + [DataMember(Name = "Name", PropertyName = "OtherName")] + public string MappedNameUsingDataMemberAttribute { get; set; } + + [Other(Name = "Name", PropertyName = "OtherName")] + public string MappedNameUsingOtherAttribute { get; set; } + + [DataMember(Name = "Name", PropertyName = "OtherName")] + [Other(Name = "OtherName", PropertyName = "OtherName")] + public string MappedNameUsingDataMemberAndOtherAttribute { get; set; } + + [JsonProperty("Name")] + public string MappedNameUsingJsonPropertyAttribute { get; set; } + + [JsonPropertyName("Name")] + public string MappedNameUsingJsonPropertyNameAttribute { get; set; } + } + + [Fact] + public void And() + { + Expression> filter = x => x.ProductID == 1 && x.ProductName == "Chai"; + Assert.Equal("ProductID eq 1 and ProductName eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void Or() + { + Expression> filter = x => x.ProductName == "Chai" || x.ProductID == 1; + Assert.Equal("ProductName eq 'Chai' or ProductID eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void Not() + { + Expression> filter = x => !(x.ProductName == "Chai"); + Assert.Equal("not (ProductName eq 'Chai')", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void Precedence() + { + Expression> filter = x => (x.ProductID == 1 || x.ProductID == 2) && x.ProductName == "Chai"; + Assert.Equal("(ProductID eq 1 or ProductID eq 2) and ProductName eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualString() + { + Expression> filter = x => x.ProductName == "Chai"; + Assert.Equal("ProductName eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualFieldToString() + { + Expression> filter = x => x.ProductName.ToString() == "Chai"; + Assert.Equal("ProductName eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualValueToString() + { + var name = "Chai"; + Expression> filter = x => x.ProductName.ToString() == name.ToString(); + Assert.Equal("ProductName eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualNumeric() + { + Expression> filter = x => x.ProductID == 1; + Assert.Equal("ProductID eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void NotEqualNumeric() + { + Expression> filter = x => x.ProductID != 1; + Assert.Equal("ProductID ne 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void GreaterNumeric() + { + Expression> filter = x => x.ProductID > 1; + Assert.Equal("ProductID gt 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void GreaterOrEqualNumeric() + { + Expression> filter = x => x.ProductID >= 1.5; + Assert.Equal($"ProductID ge 1.5{FormatSettings.DoubleNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void LessNumeric() + { + Expression> filter = x => x.ProductID < 1; + Assert.Equal("ProductID lt 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void LessOrEqualNumeric() + { + Expression> filter = x => x.ProductID <= 1; + Assert.Equal("ProductID le 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void AddEqualNumeric() + { + Expression> filter = x => x.ProductID + 1 == 2; + Assert.Equal("ProductID add 1 eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void SubEqualNumeric() + { + Expression> filter = x => x.ProductID - 1 == 2; + Assert.Equal("ProductID sub 1 eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void MulEqualNumeric() + { + Expression> filter = x => x.ProductID * 1 == 2; + Assert.Equal("ProductID mul 1 eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void DivEqualNumeric() + { + Expression> filter = x => x.ProductID / 1 == 2; + Assert.Equal("ProductID div 1 eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void ModEqualNumeric() + { + Expression> filter = x => x.ProductID % 1 == 2; + Assert.Equal("ProductID mod 1 eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualLong() + { + Expression> filter = x => x.ProductID == 1L; + Assert.Equal($"ProductID eq 1{FormatSettings.LongNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualDecimal() + { + Expression> filter = x => x.Price == 1M; + Assert.Equal($"Price eq 1{FormatSettings.DecimalNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualDecimalWithFractionalPart() + { + Expression> filter = x => x.Price == 1.23M; + Assert.Equal($"Price eq 1.23{FormatSettings.DecimalNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualGuid() + { + Expression> filter = x => x.LinkID == Guid.Empty; + Assert.Equal($"LinkID eq {FormatSettings.GetGuidFormat("00000000-0000-0000-0000-000000000000")}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualDateTime() + { + if (FormatSettings.ODataVersion < 4) + { + Expression> filter = x => x.CreationTime == new DateTime(2013, 1, 1); + Assert.Equal("CreationTime eq datetime'2013-01-01T00:00:00'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + } + + [Fact] + public void EqualDateTimeOffset() + { + Expression> filter = x => x.Updated == new DateTimeOffset(new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc)); + Assert.Equal($"Updated eq {FormatSettings.GetDateTimeOffsetFormat("2013-01-01T00:00:00Z")}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualTimeSpan() + { + Expression> filter = x => x.Period == new TimeSpan(1, 2, 3); + Assert.Equal($"Period eq {FormatSettings.TimeSpanPrefix}'PT1H2M3S'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void LengthOfStringEqual() + { + Expression> filter = x => x.ProductName.Length == 4; + Assert.Equal("length(ProductName) eq 4", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringToLowerEqual() + { + Expression> filter = x => x.ProductName.ToLower() == "chai"; + Assert.Equal("tolower(ProductName) eq 'chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringToUpperEqual() + { + Expression> filter = x => x.ProductName.ToUpper() == "CHAI"; + Assert.Equal("toupper(ProductName) eq 'CHAI'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringStartsWithEqual() + { + Expression> filter = x => x.ProductName.StartsWith("Ch") == true; + Assert.Equal("startswith(ProductName,'Ch') eq true", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringEndsWithEqual() + { + Expression> filter = x => x.ProductName.EndsWith("Ch") == true; + Assert.Equal("endswith(ProductName,'Ch') eq true", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringContainsEqualTrue() + { + Expression> filter = x => x.ProductName.Contains("ai") == true; + Assert.Equal($"{FormatSettings.GetContainsFormat("ProductName", "ai")} eq true", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringContainsEqualFalse() + { + Expression> filter = x => x.ProductName.Contains("ai") == false; + Assert.Equal($"{FormatSettings.GetContainsFormat("ProductName", "ai")} eq false", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringContains() + { + Expression> filter = x => x.ProductName.Contains("ai"); + Assert.Equal(FormatSettings.GetContainsFormat("ProductName", "ai"), ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringContainedIn() + { + Expression> filter = x => "Chai".Contains(x.ProductName); + Assert.Equal(FormatSettings.GetContainedInFormat("ProductName", "Chai"), ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringNotContains() + { + Expression> filter = x => !x.ProductName.Contains("ai"); + Assert.Equal($"not {FormatSettings.GetContainsFormat("ProductName", "ai")}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void StringToLowerAndContains() + { + Expression> filter = x => x.ProductName.ToLower().Contains("Chai"); + Assert.Equal(FormatSettings.GetContainsFormat("tolower(ProductName)", "Chai"), ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void IndexOfStringEqual() + { + Expression> filter = x => x.ProductName.IndexOf("ai") == 1; + Assert.Equal("indexof(ProductName,'ai') eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void SubstringWithPositionEqual() + { + Expression> filter = x => x.ProductName.Substring(1) == "hai"; + Assert.Equal("substring(ProductName,1) eq 'hai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void SubstringWithPositionAndLengthEqual() + { + Expression> filter = x => x.ProductName.Substring(1, 2) == "ha"; + Assert.Equal("substring(ProductName,1,2) eq 'ha'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void ReplaceStringEqual() + { + Expression> filter = x => x.ProductName.Replace("a", "o") == "Choi"; + Assert.Equal("replace(ProductName,'a','o') eq 'Choi'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void TrimEqual() + { + Expression> filter = x => x.ProductName.Trim() == "Chai"; + Assert.Equal("trim(ProductName) eq 'Chai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void ConcatEqual() + { + Expression> filter = x => string.Concat(x.ProductName, "Chai") == "ChaiChai"; + Assert.Equal("concat(ProductName,'Chai') eq 'ChaiChai'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void DayEqual() + { + Expression> filter = x => x.CreationTime.Day == 1; + Assert.Equal("day(CreationTime) eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void MonthEqual() + { + Expression> filter = x => x.CreationTime.Month == 2; + Assert.Equal("month(CreationTime) eq 2", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void YearEqual() + { + Expression> filter = x => x.CreationTime.Year == 3; + Assert.Equal("year(CreationTime) eq 3", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void HourEqual() + { + Expression> filter = x => x.CreationTime.Hour == 4; + Assert.Equal("hour(CreationTime) eq 4", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void MinuteEqual() + { + Expression> filter = x => x.CreationTime.Minute == 5; + Assert.Equal("minute(CreationTime) eq 5", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void SecondEqual() + { + Expression> filter = x => x.CreationTime.Second == 6; + Assert.Equal("second(CreationTime) eq 6", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void RoundEqual() + { + Expression> filter = x => decimal.Round(x.Price) == 1; + Assert.Equal($"round(Price) eq 1{FormatSettings.DecimalNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FloorEqual() + { + Expression> filter = x => decimal.Floor(x.Price) == 1; + Assert.Equal($"floor(Price) eq 1{FormatSettings.DecimalNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void CeilingEqual() + { + Expression> filter = x => decimal.Ceiling(x.Price) == 2; + Assert.Equal($"ceiling(Price) eq 2{FormatSettings.DecimalNumberSuffix}", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualNestedProperty() + { + Expression> filter = x => x.Nested.ProductID == 1; + Assert.Equal("Nested/ProductID eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void EqualNestedPropertyLengthOfStringEqual() + { + Expression> filter = x => x.Nested.ProductName.Length == 4; + Assert.Equal("length(Nested/ProductName) eq 4", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void ConvertEqual() + { + var id = "1"; + Expression> filter = x => x.Nested.ProductID == Convert.ToInt32(id); + Assert.Equal("Nested/ProductID eq 1", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingColumnAttribute() + { + Expression> filter = x => x.MappedNameUsingColumnAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingDataAttribute() + { + Expression> filter = x => x.MappedNameUsingDataAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingDataMemberAttribute() + { + Expression> filter = x => x.MappedNameUsingDataMemberAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingOtherAttribute() + { + Expression> filter = x => x.MappedNameUsingOtherAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingDataMemberAndOtherAttribute() + { + Expression> filter = x => x.MappedNameUsingDataMemberAndOtherAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingJsonPropertyAttribute() + { + Expression> filter = x => x.MappedNameUsingJsonPropertyAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithMappedPropertiesUsingJsonPropertyNameAttribute() + { + Expression> filter = x => x.MappedNameUsingJsonPropertyNameAttribute == "Milk"; + Assert.Equal("Name eq 'Milk'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithEnum() + { + Expression> filter = x => x.Address.Type == AddressType.Corporate; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithEnum_LocalVar() + { + var addressType = AddressType.Corporate; + Expression> filter = x => x.Address.Type == addressType; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + private readonly AddressType addressType = AddressType.Corporate; + + [Fact] + public void FilterWithEnum_MemberVar() + { + Expression> filter = x => x.Address.Type == addressType; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithEnum_Const() + { + const AddressType addressType = AddressType.Corporate; + Expression> filter = x => x.Address.Type == addressType; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithEnum_PrefixFree() + { + var enumPrefixFree = _session.Settings.EnumPrefixFree; + _session.Settings.EnumPrefixFree = true; + try + { + Expression> filter = x => x.Address.Type == AddressType.Corporate; + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel", true)}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + finally + { + _session.Settings.EnumPrefixFree = enumPrefixFree; + } + } + + [Fact] + public void FilterWithEnum_HasFlag() + { + Expression> filter = x => x.Address.Type.HasFlag(AddressType.Corporate); + Assert.Equal($"Address/Type has {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterWithEnum_ToString() + { + Expression> filter = x => x.Address.Type.ToString() == AddressType.Corporate.ToString(); + Assert.Equal($"Address/Type eq {FormatSettings.GetEnumFormat(AddressType.Corporate, typeof(AddressType), "NorthwindModel")}", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + + [Fact] + public void FilterDateTimeRange() + { + var beforeDT = new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc); + var afterDT = new DateTime(2014, 2, 2, 0, 0, 0, DateTimeKind.Utc); + Expression> filter = x => (x.CreationTime >= beforeDT) && (x.CreationTime < afterDT); + if (FormatSettings.ODataVersion < 4) + { + Assert.Equal("CreationTime ge datetime'2013-01-01T00:00:00Z' and CreationTime lt datetime'2014-02-02T00:00:00Z'", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + else + { + Assert.Equal("CreationTime ge 2013-01-01T00:00:00Z and CreationTime lt 2014-02-02T00:00:00Z", + ODataExpression.FromLinqExpression(filter).AsString(_session)); + } + } + + [Fact] + public void ExpressionBuilder() + { + Expression> condition1 = x => x.ProductName == "Chai"; + Expression> condition2 = x => x.ProductID == 1; + var filter = new ODataExpression(condition1); + filter = filter || new ODataExpression(condition2); + Assert.Equal("ProductName eq 'Chai' or ProductID eq 1", filter.AsString(_session)); + } + + [Fact] + public void ExpressionBuilderGeneric() + { + var filter = new ODataExpression(x => x.ProductName == "Chai"); + filter = filter || new ODataExpression(x => x.ProductID == 1); + Assert.Equal("ProductName eq 'Chai' or ProductID eq 1", filter.AsString(_session)); + } + + [Fact] + public void ExpressionBuilderGrouping() + { + Expression> condition1 = x => x.ProductName == "Chai"; + Expression> condition2 = x => x.ProductID == 1; + Expression> condition3 = x => x.ProductName == "Kaffe"; + Expression> condition4 = x => x.ProductID == 2; + var filter1 = new ODataExpression(condition1) || new ODataExpression(condition2); + var filter2 = new ODataExpression(condition3) || new ODataExpression(condition4); + var filter = filter1 && filter2; + Assert.Equal("(ProductName eq 'Chai' or ProductID eq 1) and (ProductName eq 'Kaffe' or ProductID eq 2)", filter.AsString(_session)); + } + + [Fact] + public void FilterEqualityToMappedPropertyOfOtherEntity() + { + var otherEntity = new TestEntity + { + MappedNameUsingDataMemberAttribute = "Other Name" + }; + Expression> filter = x => x.MappedNameUsingDataMemberAttribute == otherEntity.MappedNameUsingDataMemberAttribute; + Assert.Equal("Name eq 'Other Name'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + + otherEntity = new TestEntity + { + MappedNameUsingJsonPropertyAttribute = "Other Name" + }; + filter = x => x.MappedNameUsingJsonPropertyAttribute == otherEntity.MappedNameUsingJsonPropertyAttribute; + Assert.Equal("Name eq 'Other Name'", ODataExpression.FromLinqExpression(filter).AsString(_session)); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/TypedFilterAsKeyTests.cs b/src/Simple.OData.Client.UnitTests/Core/TypedFilterAsKeyTests.cs new file mode 100644 index 000000000..ad81d2653 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/TypedFilterAsKeyTests.cs @@ -0,0 +1,376 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Data.OData; +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class TypedFilterAsKeyV3Tests : TypedFilterAsKeyTests +{ + public override string MetadataFile => "Northwind3.xml"; + public override IFormatSettings FormatSettings => new ODataV3Format(); + + [Fact] + public async Task FindAllByFilterWithContainsThrowsExceptions() + { + var list = new List { 1 }; + var command = _client + .For() + .Filter(x => list.Contains(x.ProductID)); + await Assert.ThrowsAsync(() => command.GetCommandTextAsync()); + } +} + +public class TypedFilterAsKeyV4Tests : TypedFilterAsKeyTests +{ + public override string MetadataFile => "Northwind4.xml"; + public override IFormatSettings FormatSettings => new ODataV4Format(); + + [Fact] + public async Task FunctionWithCollectionAsParameter() + { + var command = _client + .Unbound() + .Function("PassThroughIntCollection") + .Set(new Dictionary() { { "numbers", new[] { 1, 2, 3 } } }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("PassThroughIntCollection(numbers=@p1)?@p1=[1,2,3]", commandText); + } + + [Fact] + public async Task FindAllByFilterWithContains() + { + var ids = new List { 1, 2, 3 }; + var command = _client + .For() + .Filter(x => ids.Contains(x.ProductID)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=%28ProductID%20in%20%281%2C2%2C3%29%29", commandText); + } +} + +public abstract class TypedFilterAsKeyTests : CoreTestBase +{ + [Fact] + public async Task FindAllByTypedFilterAsKeyEqual() + { + var command = _client + .For() + .Filter(x => x.ProductID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products(1)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyNotEqual() + { + var command = _client + .For() + .Filter(x => x.ProductID != 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductID%20ne%201", commandText); + } + + [Fact] + public async Task FindAllByFilterTwoClauses() + { + var command = _client + .For() + .Filter(x => x.ProductID != 1) + .Filter(x => x.ProductID != 2); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductID%20ne%201%20and%20ProductID%20ne%202", commandText); + } + + [Fact] + public async Task FindAllByFilterTwoClausesWithOr() + { + var command = _client + .For() + .Filter(x => x.ProductID != 1 || x.ProductID != 2) + .Filter(x => x.ProductID != 3); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=%28ProductID%20ne%201%20or%20ProductID%20ne%202%29%20and%20ProductID%20ne%203", commandText); + } + + [Fact] + public async Task FindAllByFilterAsNotKeyEqual() + { + var command = _client + .For() + .Filter(x => !(x.ProductID == 1)); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Products?$filter=not%20{Uri.EscapeDataString("(")}ProductID%20eq%201{Uri.EscapeDataString(")")}", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualLong() + { + var command = _client + .For() + .Filter(x => x.ProductID == 1L); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Products(1{FormatSettings.LongNumberSuffix})", commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualAndExtraClause() + { + var command = _client + .For() + .Filter(x => x.ProductID == 1 && x.ProductName == "abc"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal(string.Format("Products?$filter=ProductID%20eq%201%20and%20ProductName%20eq%20{0}abc{0}", + Uri.EscapeDataString("'")), commandText); + } + + [Fact] + public async Task FindAllByFilterAsFirstPartOfCompoundKeyEqualAndExtraClause() + { + var command = _client + .For() + .Filter(x => x.OrderID == 1 && x.Quantity == 1); + var commandText = await command.GetCommandTextAsync(); + + var expected = "Order_Details?$filter=OrderID%20eq%201%20and%20Quantity%20eq%201"; + Assert.Equal(expected, commandText); + } + + [Fact] + public async Task FindAllByFilterAsSecondPartOfCompoundKeyEqualAndExtraClause() + { + var command = _client + .For() + .Filter(x => x.ProductID == 1 && x.Quantity == 1); + var commandText = await command.GetCommandTextAsync(); + + var expected = "Order_Details?$filter=ProductID%20eq%201%20and%20Quantity%20eq%201"; + Assert.Equal(expected, commandText); + } + + [Fact] + public async Task FindAllByFilterAsKeyEqualDuplicateClause() + { + var command = _client + .For() + .Filter(x => x.ProductID == 1 && x.ProductID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products(1)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsCompleteCompoundKey() + { + var command = _client + .For() + .Filter(x => x.OrderID == 1 && x.ProductID == 2); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Order_Details(OrderID=1,ProductID=2)", commandText); + } + + [Fact] + public async Task FindAllByFilterAsInCompleteCompoundKey() + { + var command = _client + .For() + .Filter(x => x.OrderID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Order_Details?$filter=OrderID%20eq%201", commandText); + } + + [Fact] + public async Task FindAllByFilterWithDateTimeOffset() + { + var created = new DateTimeOffset(2010, 12, 1, 12, 11, 10, TimeSpan.FromHours(0)); + var command = _client + .For() + .Filter(x => x.ShippedDateTimeOffset > created); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Orders?$filter=ShippedDateTimeOffset%20gt%20{FormatSettings.GetDateTimeOffsetFormat("2010-12-01T12:11:10Z", true)}", commandText); + } + + [Fact] + public async Task FindAllByFilterWithDateTimeOffsetCastFromDateTime() + { + var created = new DateTime(2010, 12, 1, 12, 11, 10, DateTimeKind.Utc); + var command = _client + .For() + .Filter(x => x.ShippedDateTimeOffset > created); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Orders?$filter=ShippedDateTimeOffset%20gt%20{FormatSettings.GetDateTimeOffsetFormat("2010-12-01T12:11:10Z", true)}", commandText); + } + + [Fact] + public async Task FindAllByFilterWithDateTimeOffsetCastFromDateTimeOffset() + { + var created = new DateTimeOffset(2010, 12, 1, 12, 11, 10, TimeSpan.FromHours(0)); + var command = _client + .For() + .Filter(x => x.ShippedDateTimeOffset > created); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"Orders?$filter=ShippedDateTimeOffset%20gt%20{FormatSettings.GetDateTimeOffsetFormat("2010-12-01T12:11:10Z", true)}", commandText); + } + + [Fact] + public async Task FindAllEmployeeSuperiors() + { + var command = _client + .For() + .Filter(x => x.EmployeeID == 1) + .NavigateTo("Superior"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(1)/Superior", commandText); + } + + [Fact] + public async Task FindAllCustomerOrders() + { + var command = _client + .For() + .Filter(x => x.CustomerID == "ALFKI") + .NavigateTo(); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Customers(%27ALFKI%27)/Orders", commandText); + } + + [Fact] + public async Task FindAllEmployeeSubordinates() + { + var command = _client + .For() + .Filter(x => x.EmployeeID == 2) + .NavigateTo("Subordinates"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(2)/Subordinates", commandText); + } + + [Fact] + public async Task FindAllOrderOrderDetails() + { + var command = _client + .For() + .Filter(x => x.OrderID == 10952) + .NavigateTo(); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Orders(10952)/Order_Details", commandText); + } + + [Fact] + public async Task FindEmployeeSuperior() + { + var command = _client + .For() + .Filter(x => x.EmployeeID == 1) + .NavigateTo("Superior"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Employees(1)/Superior", commandText); + } + + [Fact] + public async Task FindAllFromBaseTableByFilterAsKeyEqual() + { + var command = _client + .For() + .Filter(x => x.TransportID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Transport(1)", commandText); + } + + [Fact] + public async Task FindAllFromDerivedTableByFilterAsKeyEqual() + { + var command = _client + .For() + .As() + .Filter(x => x.TransportID == 1); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Transport(1)/NorthwindModel.Ships", commandText); + } + + [Fact] + public async Task FindAllByTypedFilterAndTypedQueryOptions() + { + var command = _client + .For() + .Filter(x => x.ProductName == "abc") + .QueryOptions(y => y.IntOption == 42 && y.StringOption == "xyz"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductName%20eq%20%27abc%27&IntOption=42&StringOption='xyz'", commandText); + } + + [Fact] + public async Task FindAllByTypedFilterAndUntypedQueryOptions() + { + var command = _client + .For() + .Filter(x => x.ProductName == "abc") + .QueryOptions(new Dictionary() { { "IntOption", 42 }, { "StringOption", "xyz" } }); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Products?$filter=ProductName%20eq%20%27abc%27&IntOption=42&StringOption='xyz'", commandText); + } + + [Fact(Skip = "Revise URL escape method")] + public async Task FindByStringKeyWithSpaceAndPunctuation() + { + var command = _client + .For() + .Key("CRONUS USA, Inc."); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("'CRONUS%20USA%2C%20Inc.'", commandText); + } + + [Fact] + public async Task FindByGuidFilterEqual() + { + var key = new Guid("D8F3F70F-C185-49AB-9A92-0C86C344AB1B"); + var command = _client + .For() + .Filter(x => x.Key == key); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"TypeWithGuidKey({Uri.EscapeDataString(FormatSettings.GetGuidFormat(key.ToString()))})", commandText); + } + + [Fact] + public async Task FindByGuidKey() + { + var key = new Guid("BEC6C966-8016-46D0-A3D1-99D69DF69D74"); + var command = _client + .For() + .Key(key); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal($"TypeWithGuidKey({Uri.EscapeDataString(FormatSettings.GetGuidFormat(key.ToString()))})", commandText); + } + + [Fact] + public async Task FindAllEntityLowerCaseNoPrefix() + { + var command = _client + .For("project1") + .Key("abc"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("project1(%27abc%27)", commandText); + } + + [Fact(Skip = "Entity set names with multiple segments are not supported")] + public async Task FindAllEntityLowerCaseWithPrefix() + { + var client = CreateClient(MetadataFile, ODataNameMatchResolver.Strict); + var command = client + .For("project2") + .Key("abc"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("project2(%27abc%27)", commandText); + } + + [Fact] + public async Task FindAllByFilterAndKey() + { + var command = _client + .For() + .Key(1) + .Filter(x => x.CategoryName == "Beverages"); + var commandText = await command.GetCommandTextAsync(); + Assert.Equal("Categories(1)?$filter=CategoryName%20eq%20%27Beverages%27", commandText); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Core/UtilsTests.cs b/src/Simple.OData.Client.UnitTests/Core/UtilsTests.cs new file mode 100644 index 000000000..6712b1d8b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Core/UtilsTests.cs @@ -0,0 +1,28 @@ +using Xunit; + +namespace Simple.OData.Client.Tests.Core; + +public class UtilsTests +{ + [Theory] + [InlineData("http://company.com", "", "http://company.com/")] + [InlineData("http://company.com", null, "http://company.com/")] + [InlineData("http://company.com", "$metadata", "http://company.com/$metadata")] + [InlineData("http://company.com/", "$metadata", "http://company.com/$metadata")] + [InlineData("https://company.com", "$metadata", "https://company.com/$metadata")] + [InlineData("http://company.com?client=100", "$metadata", "http://company.com/$metadata?client=100")] + [InlineData("http://company.com/feed?client=100", "$metadata", "http://company.com/feed/$metadata?client=100")] + [InlineData("http://company.com", "Products", "http://company.com/Products")] + [InlineData("http://company.com/", "Products", "http://company.com/Products")] + [InlineData("http://company.com/feed", "Products", "http://company.com/feed/Products")] + [InlineData("http://company.com", "Products?$filter=Id%20eq%201", "http://company.com/Products?$filter=Id%20eq%201")] + [InlineData("http://company.com/feed", "Products?$filter=Id%20eq%201", "http://company.com/feed/Products?$filter=Id%20eq%201")] + [InlineData("http://company.com?client=100", "Products?$filter=Id%20eq%201", "http://company.com/Products?$filter=Id%20eq%201&client=100")] + [InlineData("http://company.com/feed?client=100", "Products?$filter=Id%20eq%201", "http://company.com/feed/Products?$filter=Id%20eq%201&client=100")] + public void CreateAbsoluteUri(string baseUri, string relativePath, string expected) + { + var actual = Utils.CreateAbsoluteUri(baseUri, relativePath); + + Assert.Equal(expected, actual.AbsoluteUri); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Activity.cs b/src/Simple.OData.Client.UnitTests/Entities/Activity.cs new file mode 100644 index 000000000..19ffb2a6f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Activity.cs @@ -0,0 +1,30 @@ +namespace Simple.OData.Client.Tests; + +public class Activity +{ + public long Id { get; set; } + + public string Number { get; set; } + + public string Title { get; set; } + + public Option Option { get; set; } + + public Ticket Ticket { get; set; } +} + +public class Ticket +{ + public long Id { get; set; } + + public string Number { get; set; } + + public string Title { get; set; } +} + +public class Option +{ + public long Id { get; set; } + + public string Description { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Address.cs b/src/Simple.OData.Client.UnitTests/Entities/Address.cs new file mode 100644 index 000000000..1ace921db --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Address.cs @@ -0,0 +1,20 @@ +namespace Simple.OData.Client.Tests; + +public class Address : IAddress +{ + public AddressType Type { get; set; } + + AddressType IAddress.Type + { + get => Type; + set => Type = value; + } + + public string City { get; set; } + + public string Region { get; set; } + + public string PostalCode { get; set; } + + public string Country { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/AddressType.cs b/src/Simple.OData.Client.UnitTests/Entities/AddressType.cs new file mode 100644 index 000000000..d3cbb5502 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/AddressType.cs @@ -0,0 +1,9 @@ +namespace Simple.OData.Client.Tests; + +public enum AddressType +{ + Unknown, + Private, + Corporate, + Delivery +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Animal.cs b/src/Simple.OData.Client.UnitTests/Entities/Animal.cs new file mode 100644 index 000000000..658f3364a --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Animal.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client.Tests.Entities; + +public class Animal +{ + public Animal() + { + DynamicProperties = new Dictionary(); + } + + public int Id { get; set; } + + public string Name { get; set; } + + public IDictionary DynamicProperties { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Category.cs b/src/Simple.OData.Client.UnitTests/Entities/Category.cs new file mode 100644 index 000000000..18d221f7a --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Category.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client.Tests; + +public class Category +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + public byte[] Picture { get; set; } + + public Product[] Products { get; set; } +} + +public class CategoryWithList +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + + public List Products { get; set; } +} + +public class CategoryWithIList +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + + public IList Products { get; set; } +} + +public class CategoryWithICollection +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + + public ICollection Products { get; set; } +} + +public class CategoryWithHashSet +{ + public int CategoryID { get; set; } + public string CategoryName { get; set; } + + public HashSet Products { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/CustomAttributes.cs b/src/Simple.OData.Client.UnitTests/Entities/CustomAttributes.cs new file mode 100644 index 000000000..6c94249a7 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/CustomAttributes.cs @@ -0,0 +1,18 @@ +using System; + +namespace Simple.OData.Client.Tests; + +[AttributeUsage(AttributeTargets.Property)] +public class NotMappedAttribute : Attribute +{ +} + +[AttributeUsage(AttributeTargets.Property)] +public class DataAttribute : Attribute +{ + public string Name { get; set; } +} + +public class ColumnAttribute : DataAttribute +{ +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Customer.cs b/src/Simple.OData.Client.UnitTests/Entities/Customer.cs new file mode 100644 index 000000000..5cf0e1ed9 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Customer.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client.Tests; + +public class Customer +{ + public string CustomerID { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Employee.cs b/src/Simple.OData.Client.UnitTests/Entities/Employee.cs new file mode 100644 index 000000000..9b3230005 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Employee.cs @@ -0,0 +1,41 @@ +using System; + +namespace Simple.OData.Client.Tests; + +public class Employee +{ + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Title { get; set; } + public DateTime BirthDate { get; set; } + public DateTime HireDate { get; set; } + public string Address { get; set; } + public string HomePhone { get; set; } + public string Extension { get; set; } + public byte[] Photo { get; set; } + public string Notes { get; set; } + public int? ReportsTo { get; set; } + + public Employee Superior { get; set; } + public Employee[] Subordinates { get; set; } +} + +public class EmployeeWithComplexAddress +{ + public int EmployeeID { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Title { get; set; } + public DateTime BirthDate { get; set; } + public DateTime HireDate { get; set; } + public Address Address { get; set; } + public string HomePhone { get; set; } + public string Extension { get; set; } + public byte[] Photo { get; set; } + public string Notes { get; set; } + public int? ReportsTo { get; set; } + + public EmployeeWithComplexAddress Superior { get; set; } + public EmployeeWithComplexAddress[] Subordinates { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/IAddress.cs b/src/Simple.OData.Client.UnitTests/Entities/IAddress.cs new file mode 100644 index 000000000..fc4b0d40d --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/IAddress.cs @@ -0,0 +1,14 @@ +namespace Simple.OData.Client.Tests; + +public interface IAddress +{ + AddressType Type { get; set; } + + string City { get; set; } + + string Region { get; set; } + + string PostalCode { get; set; } + + string Country { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Mammal.cs b/src/Simple.OData.Client.UnitTests/Entities/Mammal.cs new file mode 100644 index 000000000..362743515 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Mammal.cs @@ -0,0 +1,5 @@ +namespace Simple.OData.Client.Tests.Entities; + +public class Mammal : Animal +{ +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Order.cs b/src/Simple.OData.Client.UnitTests/Entities/Order.cs new file mode 100644 index 000000000..b02acd309 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Order.cs @@ -0,0 +1,14 @@ +using System; + +namespace Simple.OData.Client.Tests; + +public class Order +{ + public int OrderID { get; set; } + public DateTime OrderDate { get; set; } + public DateTime RequiredDate { get; set; } + public DateTime ShippedDate { get; set; } + public DateTimeOffset ShippedDateTimeOffset { get; set; } + + public OrderDetail[] OrderDetails { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/OrderDetail.cs b/src/Simple.OData.Client.UnitTests/Entities/OrderDetail.cs new file mode 100644 index 000000000..87c2e5c46 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/OrderDetail.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client.Tests; + +public class OrderDetail +{ + public int OrderID { get; set; } + public int ProductID { get; set; } + public int Quantity { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/PrimitiveType.cs b/src/Simple.OData.Client.UnitTests/Entities/PrimitiveType.cs new file mode 100644 index 000000000..eda8eff24 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/PrimitiveType.cs @@ -0,0 +1,42 @@ +using System; +using System.ComponentModel; +using System.Globalization; + +namespace Simple.OData.Client.Tests.Entities +{ + [TypeConverter(typeof(PrimitiveTypeConverter))] + internal readonly struct PrimitiveType + { + public PrimitiveType(Guid value) + { + Value = value; + } + + public Guid Value { get; } + } + + internal class PrimitiveTypeConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) + { + return destinationType == typeof(PrimitiveType) || + destinationType == typeof(PrimitiveType?) || + base.CanConvertTo(context, destinationType); + } + + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) + { + if (destinationType == typeof(PrimitiveType)) + { + return new PrimitiveType(Guid.Parse(value.ToString())); + } + + if (destinationType == typeof(PrimitiveType)) + { + return (PrimitiveType?)new PrimitiveType(Guid.Parse(value.ToString())); + } + + return base.ConvertTo(context, culture, value, destinationType); + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Entities/Product.cs b/src/Simple.OData.Client.UnitTests/Entities/Product.cs new file mode 100644 index 000000000..f24c75865 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Product.cs @@ -0,0 +1,72 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Simple.OData.Client.Tests; + +public class Product +{ + public int ProductID { get; set; } + + public string ProductName { get; set; } + + public decimal UnitPrice { get; set; } + + public int? CategoryID { get; set; } + + [NotMapped] + public int NotMappedProperty { get; set; } + + [Column(Name = "EnglishName")] + public string MappedEnglishName { get; set; } + + public Category Category { get; set; } + + public Product() + { + NotMappedProperty = 42; + } +} + +public class ExtendedProduct : Product +{ +} + +public class ProductWithUnmappedProperty : Product +{ + public string UnmappedName { get; set; } +} + +public class ProductWithNoCategoryLink +{ + public int ProductID { get; set; } + + public string ProductName { get; set; } + + public decimal UnitPrice { get; set; } + + public int? CategoryID { get; set; } +} + +[Table("Product")] +public class ProductWithRemappedColumn +{ + public int ProductID { get; set; } + + public string ProductName { get; set; } + + public decimal UnitPrice { get; set; } + + public int? CategoryID { get; set; } + + [NotMapped] + public int EnglishName { get; set; } + + [Column(Name = "EnglishName")] + public string MappedEnglishName { get; set; } + + public Category Category { get; set; } + + public ProductWithRemappedColumn() + { + EnglishName = 42; + } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/QueryOptions.cs b/src/Simple.OData.Client.UnitTests/Entities/QueryOptions.cs new file mode 100644 index 000000000..04bb40ae4 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/QueryOptions.cs @@ -0,0 +1,7 @@ +namespace Simple.OData.Client.Tests; + +public class QueryOptions +{ + public int IntOption { get; set; } + public string StringOption { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Ship.cs b/src/Simple.OData.Client.UnitTests/Entities/Ship.cs new file mode 100644 index 000000000..14ee74fd7 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Ship.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client.Tests; + +public class Ship : Transport +{ + public string ShipName { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/Transport.cs b/src/Simple.OData.Client.UnitTests/Entities/Transport.cs new file mode 100644 index 000000000..e09e6e4e3 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/Transport.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client.Tests; + +public class Transport +{ + public static readonly string TransportPropertyKey = @"Test Value"; + + public int TransportID { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/TypeWithGuidKey.cs b/src/Simple.OData.Client.UnitTests/Entities/TypeWithGuidKey.cs new file mode 100644 index 000000000..84d8d45e4 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/TypeWithGuidKey.cs @@ -0,0 +1,9 @@ +using System; + +namespace Simple.OData.Client.Tests; + +public class TypeWithGuidKey +{ + public Guid Key { get; set; } + public string Name { get; set; } +} diff --git a/src/Simple.OData.Client.UnitTests/Entities/TypeWithIndexer.cs b/src/Simple.OData.Client.UnitTests/Entities/TypeWithIndexer.cs new file mode 100644 index 000000000..4544ba9e1 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Entities/TypeWithIndexer.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client.Tests; + +public class TypeWithIndexer +{ + public string Name { get; set; } + + public char this[int index] => Name[index]; +} diff --git a/src/Simple.OData.Client.UnitTests/Extensions/DictionaryExtensionsTests.cs b/src/Simple.OData.Client.UnitTests/Extensions/DictionaryExtensionsTests.cs new file mode 100644 index 000000000..95b403b97 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Extensions/DictionaryExtensionsTests.cs @@ -0,0 +1,414 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using Simple.OData.Client.Extensions; +using Xunit; +using SpatialV3 = System.Spatial; +using SpatialV4 = Microsoft.Spatial; + +namespace Simple.OData.Client.Tests.Extensions; + +public class DictionaryExtensionsTests +{ + [Flags] + private enum EnumType + { + Zero, + One, + Two, + Three, + } + + private class ClassType + { +#pragma warning disable CS0649 // Unused private types or members should be removed { + public string StringField; + public string[] StringCollectionField; +#pragma warning restore CS0649 // Unused private types or members should be removed { + + + public string StringProperty { get; set; } + public string StringPropertyPrivateSetter { get; private set; } + public int IntProperty { get; set; } + public EnumType EnumProperty { get; set; } + public string[] StringArrayProperty { get; set; } + public int[] IntArrayProperty { get; set; } + public Collection IntCollectionProperty { get; set; } + public SubclassType CompoundProperty { get; set; } + public SubclassType[] CompoundCollectionProperty { get; set; } + public SpatialV3.GeographyPoint PointV3 { get; set; } + public SpatialV4.GeographyPoint PointV4 { get; set; } + } + + private class SubclassType + { + public string StringProperty { get; set; } + public int IntProperty { get; set; } + } + + private static ITypeCache TypeCache => TypeCaches.TypeCache("test", null); + + [Fact] + public void ToObjectPrimitiveProperties() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + } + + [Fact] + public void ToObjectEnumPropertyFromInt() + { + var dict = new Dictionary + { + { "EnumProperty", EnumType.One }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(EnumType.One, value.EnumProperty); + } + + [Fact] + public void ToObjectEnumPropertyFromString() + { + var dict = new Dictionary + { + { "EnumProperty", "One" }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(EnumType.One, value.EnumProperty); + } + + [Fact] + public void ToObjectCombinedEnumPropertyFromInt() + { + var dict = new Dictionary + { + { "EnumProperty", EnumType.One | EnumType.Two }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(EnumType.Three, value.EnumProperty); + } + + [Fact] + public void ToObjectCombinedEnumPropertyFromString() + { + var dict = new Dictionary + { + { "EnumProperty", "One,Two" }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(EnumType.Three, value.EnumProperty); + } + + [Fact] + public void ToObjectUnknownProperty() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "UnknownProperty", "u" } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + } + + [Fact] + public void ToObjectPrivateSetter() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "StringPropertyPrivateSetter", "p" } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + Assert.Equal("p", value.StringPropertyPrivateSetter); + } + + [Fact] + public void ToObjectField() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "StringField", "f" } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + Assert.Null(value.StringField); + } + + [Fact] + public void ToObjectStringArray() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "StringArrayProperty", new [] {"x", "y", "z"} } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + for (var index = 0; index < 3; index++) + { + Assert.Equal((dict["StringArrayProperty"] as IList)[index], value.StringArrayProperty[index]); + } + } + + [Fact] + public void ToObjectIntArray() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "IntArrayProperty", new [] {1, 2, 3} } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + for (var index = 0; index < 3; index++) + { + Assert.Equal((dict["IntArrayProperty"] as IList)[index], value.IntArrayProperty[index]); + } + } + + [Fact] + public void ToObjectIntCollection() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "IntCollectionProperty", new Collection {1, 2, 3} } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + for (var index = 0; index < 3; index++) + { + Assert.Equal((dict["IntCollectionProperty"] as IList)[index], value.IntCollectionProperty[index]); + } + } + + [Fact] + public void ToObjectCompoundProperty() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "CompoundProperty", new Dictionary { { "StringProperty", "z" }, { "IntProperty", 0 } } } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + Assert.Equal("z", value.CompoundProperty.StringProperty); + Assert.Equal(0, value.CompoundProperty.IntProperty); + } + + [Fact] + public void ToObjectCompoundCollectionProperty() + { + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + { "CompoundCollectionProperty", new[] + { + new Dictionary { { "StringProperty", "x" }, { "IntProperty", 1 } }, + new Dictionary { { "StringProperty", "y" }, { "IntProperty", 2 } }, + new Dictionary { { "StringProperty", "z" }, { "IntProperty", 3 } }, + } + } + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + for (var index = 0; index < 3; index++) + { + var kv = (dict["CompoundCollectionProperty"] as IList>)[index]; + Assert.Equal(kv["StringProperty"], value.CompoundCollectionProperty[index].StringProperty); + Assert.Equal(kv["IntProperty"], value.CompoundCollectionProperty[index].IntProperty); + } + } + + [Fact] + public void ToObjectODataEntry() + { + var dict = new Dictionary() + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal("a", value["StringProperty"]); + Assert.Equal(1, value["IntProperty"]); + } + + [Fact] + public void ToObjectDynamicODataEntry() + { + var _ = ODataDynamic.Expression; + var dict = new Dictionary + { + { "StringProperty", "a" }, + { "IntProperty", 1 }, + }; + + TypeCache.Register(); + + dynamic value = dict.ToObject(TypeCache, true); + Assert.Equal("a", value.StringProperty); + Assert.Equal(1, value.IntProperty); + } + + [Fact] + public void ToObjectCollectionDynamicODataEntry() + { + var _ = ODataDynamic.Expression; + var dict = new[] + { + new Dictionary {{"StringProperty", "a"}, {"IntProperty", 1}}, + new Dictionary {{"StringProperty", "b"}, {"IntProperty", 2}}, + }; + + var values = (dict.Select(x => x.ToObject(TypeCache, true)) as IEnumerable).ToArray(); + for (var index = 0; index < values.Length; index++) + { + Assert.Equal(dict[index]["StringProperty"], values[index].StringProperty); + Assert.Equal(dict[index]["IntProperty"], values[index].IntProperty); + } + } + + [Fact] + public void ToObjectSpatialV3() + { + var dict = new Dictionary + { + { "PointV3", SpatialV3.GeographyPoint.Create(SpatialV3.CoordinateSystem.Geography(100), 1, 2, null, null) }, + }; + + TypeCache.Converter.RegisterTypeConverter(typeof(SpatialV3.GeographyPoint), V3.Adapter.TypeConverters.CreateGeographyPoint); + + var value = dict.ToObject(TypeCache); + Assert.Equal(100, value.PointV3.CoordinateSystem.EpsgId); + Assert.Equal(1d, value.PointV3.Latitude); + Assert.Equal(2d, value.PointV3.Longitude); + } + + [Fact] + public void ToObjectSpatialV4() + { + var dict = new Dictionary + { + { "PointV4", SpatialV4.GeographyPoint.Create(SpatialV4.CoordinateSystem.Geography(100), 1, 2, null, null) }, + }; + + TypeCache.Converter.RegisterTypeConverter(typeof(SpatialV4.GeographyPoint), V4.Adapter.TypeConverters.CreateGeographyPoint); + + var value = dict.ToObject(TypeCache); + Assert.Equal(100, value.PointV4.CoordinateSystem.EpsgId); + Assert.Equal(1d, value.PointV4.Latitude); + Assert.Equal(2d, value.PointV4.Longitude); + } + + [Fact] + public void ToObjectBaseType_NoType() + { + var dict = new Dictionary + { + { "TransportID", 1 }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(1, value.TransportID); + } + + [Fact] + public void ToObjectBaseType_Type() + { + var dict = new Dictionary + { + { FluentCommand.AnnotationsLiteral, new ODataEntryAnnotations { TypeName = "Northwind.Transport" }} , + { "TransportID", 1 }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(1, value.TransportID); + } + + [Fact] + public void ToObjectBaseType_SubType() + { + var dict = new Dictionary + { + { FluentCommand.AnnotationsLiteral, new ODataEntryAnnotations { TypeName = "Northwind.Ship" } }, + { "TransportID", 1 }, + { "ShipName", "Sloop John B" }, + }; + + var value = dict.ToObject(TypeCache); + var ship = value as Ship; + Assert.NotNull(ship); + Assert.Equal(1, ship.TransportID); + Assert.Equal("Sloop John B", ship.ShipName); + } + + [Fact] + public void ToObjectBaseType_MissingSubType() + { + var dict = new Dictionary + { + { FluentCommand.AnnotationsLiteral, new ODataEntryAnnotations { TypeName = "Northwind.Plane" } }, + { "TransportID", 1 }, + { "PlaneName", "Concorde" }, + }; + + var value = dict.ToObject(TypeCache); + Assert.Equal(1, value.TransportID); + } + + private class ClassNoDefaultConstructor + { + public ClassNoDefaultConstructor(string arg) { } + } + + [Fact] + public void ToObjectClassWithoutDefaultCtor() + { + var dict = new Dictionary + { + { "Data", new ClassNoDefaultConstructor("test") }, + }; + + Assert.Throws(() => dict.ToObject(TypeCache)); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Extensions/StringExtensionTests.cs b/src/Simple.OData.Client.UnitTests/Extensions/StringExtensionTests.cs new file mode 100644 index 000000000..4ce28c975 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Extensions/StringExtensionTests.cs @@ -0,0 +1,23 @@ +using Simple.OData.Client.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests.Extensions; + +public class StringExtensionTests +{ + [Fact] + public void EnsureStartsWith_should_prefix_string() + { + var actual = "bar".EnsureStartsWith("foo"); + + Assert.Equal("foobar", actual); + } + + [Fact] + public void EnsureStartsWith_should_not_prefix_string() + { + var actual = "foobar".EnsureStartsWith("foo"); + + Assert.Equal("foobar", actual); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Extensions/TypeCacheTests.cs b/src/Simple.OData.Client.UnitTests/Extensions/TypeCacheTests.cs new file mode 100644 index 000000000..4e12a8455 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Extensions/TypeCacheTests.cs @@ -0,0 +1,71 @@ +using System.Linq; +using Xunit; + +namespace Simple.OData.Client.Tests.Extensions; + +public class TypeCacheTests +{ + private static ITypeCache TypeCache => TypeCaches.TypeCache("test", null); + + [Fact] + public void GetDerivedTypes_BaseType() + { + Assert.Single(TypeCache.GetDerivedTypes(typeof(Transport))); + } + + [Fact] + public void GetAllProperties_BaseType() + { + Assert.Single(TypeCache.GetAllProperties(typeof(Transport))); + } + + [Fact] + public void GetAllProperties_DerivedType() + { + Assert.Equal(2, TypeCache.GetAllProperties(typeof(Ship)).Count()); + } + + [Fact] + public void GetDeclaredProperties_ExcludeExplicitInterface() + { + Assert.Equal(5, TypeCache.GetAllProperties(typeof(Address)).Count()); + } + + [Fact] + public void GetDeclaredProperties_BaseType() + { + Assert.Single(TypeCache.GetDeclaredProperties(typeof(Transport))); + } + + [Fact] + public void GetDeclaredProperties_DerivedType() + { + Assert.Single(TypeCache.GetDeclaredProperties(typeof(Ship))); + } + + [Fact] + public void GetNamedProperty_BaseType() + { + Assert.NotNull(TypeCache.GetNamedProperty(typeof(Transport), "TransportID")); + } + + [Fact] + public void GetNamedProperty_DerivedType() + { + Assert.NotNull(TypeCache.GetNamedProperty(typeof(Ship), "TransportID")); + Assert.NotNull(TypeCache.GetNamedProperty(typeof(Ship), "ShipName")); + } + + [Fact] + public void GetDeclaredProperty_BaseType() + { + Assert.NotNull(TypeCache.GetDeclaredProperty(typeof(Transport), "TransportID")); + } + + [Fact] + public void GetDeclaredProperty_DerivedType() + { + Assert.Null(TypeCache.GetDeclaredProperty(typeof(Ship), "TransportID")); + Assert.NotNull(TypeCache.GetDeclaredProperty(typeof(Ship), "ShipName")); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Extensions/TypeExtensionTests.cs b/src/Simple.OData.Client.UnitTests/Extensions/TypeExtensionTests.cs new file mode 100644 index 000000000..2e4013c54 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Extensions/TypeExtensionTests.cs @@ -0,0 +1,70 @@ +using System.Linq; +using Simple.OData.Client.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests; + +public class TypeExtensionTests +{ + [Fact] + public void GetAllProperties_BaseType() + { + Assert.Single(typeof(Transport).GetAllProperties()); + } + + [Fact] + public void GetAllProperties_DerivedType() + { + Assert.Equal(2, typeof(Ship).GetAllProperties().Count()); + } + + [Fact] + public void GetAllProperties_SkipIndexer() + { + Assert.Single(typeof(TypeWithIndexer).GetAllProperties()); + } + + [Fact] + public void GetDeclaredProperties_ExcludeExplicitInterface() + { + Assert.Equal(5, typeof(Address).GetAllProperties().Count()); + } + + [Fact] + public void GetDeclaredProperties_BaseType() + { + Assert.Single(typeof(Transport).GetDeclaredProperties()); + } + + [Fact] + public void GetDeclaredProperties_DerivedType() + { + Assert.Single(typeof(Ship).GetDeclaredProperties()); + } + + [Fact] + public void GetNamedProperty_BaseType() + { + Assert.NotNull(typeof(Transport).GetNamedProperty("TransportID")); + } + + [Fact] + public void GetNamedProperty_DerivedType() + { + Assert.NotNull(typeof(Ship).GetNamedProperty("TransportID")); + Assert.NotNull(typeof(Ship).GetNamedProperty("ShipName")); + } + + [Fact] + public void GetDeclaredProperty_BaseType() + { + Assert.NotNull(typeof(Transport).GetDeclaredProperty("TransportID")); + } + + [Fact] + public void GetDeclaredProperty_DerivedType() + { + Assert.Null(typeof(Ship).GetDeclaredProperty("TransportID")); + Assert.NotNull(typeof(Ship).GetDeclaredProperty("ShipName")); + } +} diff --git a/src/Simple.OData.Client.UnitTests/Extensions/XElementExtensionsTests.cs b/src/Simple.OData.Client.UnitTests/Extensions/XElementExtensionsTests.cs new file mode 100644 index 000000000..5e75c6d8c --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Extensions/XElementExtensionsTests.cs @@ -0,0 +1,42 @@ +using System.Linq; +using System.Xml.Linq; +using Simple.OData.Client.Extensions; +using Xunit; + +namespace Simple.OData.Client.Tests.Extensions; + +public class XElementExtensionsTests +{ + [Fact] + public void TestXElementWithDefaultNamespace() + { + var content = Properties.XmlSamples.XmlWithDefaultNamespace; + var element = XElement.Parse(content); + var list = element.Elements(null, "child").ToList(); + Assert.Equal(2, list.Count); + Assert.Equal("Foo", list[0].Element(null, "sub").Value); + Assert.Equal("Bar", list[1].Element(null, "sub").Value); + } + + [Fact] + public void TestXElementWithNoNamespace() + { + var content = Properties.XmlSamples.XmlWithNoNamespace; + var element = XElement.Parse(content); + var list = element.Elements(null, "child").ToList(); + Assert.Equal(2, list.Count); + Assert.Equal("Foo", list[0].Element(null, "sub").Value); + Assert.Equal("Bar", list[1].Element(null, "sub").Value); + } + + [Fact] + public void TestXElementWithPrefixedNamespace() + { + var content = Properties.XmlSamples.XmlWithPrefixedNamespace; + var element = XElement.Parse(content); + var list = element.Elements("c", "child").ToList(); + Assert.Equal(2, list.Count); + Assert.Equal("Foo", list[0].Element("c", "sub").Value); + Assert.Equal("Bar", list[1].Element("c", "sub").Value); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/BatchDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/BatchDynamicTests.cs new file mode 100644 index 000000000..d3f9538f4 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/BatchDynamicTests.cs @@ -0,0 +1,324 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class BatchDynamicTests : TestBase +{ + [Fact] + public async Task Success() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + var batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 10m) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(x.ProductName = "Test2", x.UnitPrice = 20m) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + Assert.NotNull(product); + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test2") + .FindEntryAsync(); + Assert.NotNull(product); + } + + [Fact] + public async Task SuccessWithResults() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + dynamic product1 = null; + dynamic product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product1 = await c + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 10m) + .InsertEntryAsync(); + batch += async c => product2 = await c + .For(x.Products) + .Set(x.ProductName = "Test2", x.UnitPrice = 20m) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + Assert.NotEqual(0, product1.ProductID); + Assert.NotEqual(0, product2.ProductID); + + var client = new ODataClient(settings); + product1 = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + Assert.NotNull(product1); + product2 = await client + .For(x.Products) + .Filter(x.ProductName == "Test2") + .FindEntryAsync(); + Assert.NotNull(product2); + } + + [Fact] + public async Task PartialFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + var batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 10m) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(x.ProductName = "Test2", x.UnitPrice = 20m, x.SupplierID = 0xFFFF) + .InsertEntryAsync(false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task AllFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + var batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Set(x.UnitPrice = 10m) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(x.UnitPrice = 20m) + .InsertEntryAsync(false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task MultipleUpdatesSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + dynamic product = null; + dynamic product1 = null; + dynamic product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c + .For(x.Products) + .Set(x.ProductName = "Test11", x.UnitPrice = 21m) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Key(product.ProductID) + .Set(x.UnitPrice = 22m) + .UpdateEntryAsync(false); + batch += async c => product1 = await c + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + batch += c => c + .For(x.Products) + .Key(product.ProductID) + .Set(x.UnitPrice = 23m) + .UpdateEntryAsync(false); + batch += async c => product2 = await c + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1.UnitPrice); + Assert.Equal(23m, product2.UnitPrice); + + var client = new ODataClient(settings); + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + Assert.Equal(23m, product.UnitPrice); + } + + [Fact] + public async Task UpdateDeleteSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + dynamic product = null; + dynamic product1 = null; + dynamic product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c + .For(x.Products) + .Set(x.ProductName = "Test11", x.UnitPrice = 21m) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Filter(x.ProductName == "Test11") + .Set(new { UnitPrice = 22m }) + .UpdateEntryAsync(false); + batch += async c => product1 = await c + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + batch += c => c + .For(x.Products) + .Key(product.ProductID) + .DeleteEntryAsync(); + batch += async c => product2 = await c + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1.UnitPrice); + Assert.Null(product2); + + var client = new ODataClient(settings); + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test11") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task InsertUpdateDeleteSeparateBatches() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + var batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Set(new { ProductName = "Test12", UnitPrice = 21m }) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Equal(21m, product.UnitPrice); + var productID = product.ProductID; + + batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Key(productID) + .Set(x.UnitPrice = 22m) + .UpdateEntryAsync(false); + await batch.ExecuteAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Equal(22m, product.UnitPrice); + + batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Key(productID) + .DeleteEntryAsync(); + await batch.ExecuteAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task InsertSingleEntityWithSingleAssociationSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + var category = new Category() { CategoryName = "Test13" }; + var batch = new ODataBatch(settings); + batch += async c => await c + .For(x.Categories) + .Set(category) + .InsertEntryAsync(); + batch += c => c + .For(x.Products) + .Set(x.ProductName = "Test14", x.UnitPrice = 21m, x.Category = category) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For(x.Products) + .Expand(x.Category) + .Filter(x.ProductName == "Test14") + .FindEntryAsync(); + Assert.Equal("Test13", product.Category.CategoryName); + } + + [Fact] + public async Task InsertSingleEntityWithMultipleAssociationsSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var x = ODataDynamic.Expression; + dynamic product1 = new { ProductName = "Test15", UnitPrice = 21m }; + dynamic product2 = new { ProductName = "Test16", UnitPrice = 22m }; + + var batch = new ODataBatch(settings); + batch += c => c + .For(x.Products) + .Set(product1) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(product2) + .InsertEntryAsync(false); + batch += async c => await c + .For(x.Categories) + .Set(x.CategoryName = "Test17", x.Products = new[] { product1, product2 }) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var category = await client + .For(x.Categories) + .Expand(x.Products) + .Filter(x.CategoryName == "Test17") + .FindEntryAsync(); + Assert.Equal(2, (category.Products as IEnumerable).Count()); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/BatchTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/BatchTests.cs new file mode 100644 index 000000000..7aec95ea5 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/BatchTests.cs @@ -0,0 +1,443 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +using Entry = System.Collections.Generic.Dictionary; + +public class BatchTests : TestBase +{ + [Fact] + public async Task Success() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 20m } }, false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test1'"); + Assert.NotNull(product); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test2'"); + Assert.NotNull(product); + } + + [Fact] + public async Task EmptyBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + await batch.ExecuteAsync(); + } + + [Fact] + public async Task ReadOnlyBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + var batch = new ODataBatch(settings); + batch += async c => product = await c.FindEntryAsync("Products"); + await batch.ExecuteAsync(); + + Assert.NotNull(product); + } + + [Fact] + public async Task NestedBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch1 = new ODataBatch(settings); + batch1 += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); + batch1 += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 20m } }, false); + + var batch2 = new ODataBatch(settings); + batch2 += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test3" }, { "UnitPrice", 30m } }, false); + batch2 += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test4" }, { "UnitPrice", 40m } }, false); + await batch2.ExecuteAsync(); + + await batch1.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test1'"); + Assert.NotNull(product); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test2'"); + Assert.NotNull(product); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test3'"); + Assert.NotNull(product); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test4'"); + Assert.NotNull(product); + } + + [Fact] + public async Task SuccessWithResults() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product1 = null; + IDictionary product2 = null; + + var batch = new ODataBatch(settings); + batch += async x => { product1 = await x.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }); }; + batch += async x => { product2 = await x.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 20m } }); }; + await batch.ExecuteAsync(); + + Assert.NotNull(product1["ProductID"]); + Assert.NotNull(product2["ProductID"]); + + var client = new ODataClient(settings); + product1 = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test1'"); + Assert.NotNull(product1); + product2 = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test2'"); + Assert.NotNull(product2); + } + + [Fact] + public async Task PartialFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 10m }, { "SupplierID", 0xFFFF } }, false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task AllFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "UnitPrice", 10m } }, false); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "UnitPrice", 20m } }, false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task MultipleUpdateEntrySingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + IDictionary product1 = null; + IDictionary product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test11" }, { "UnitPrice", 21m } }); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c.UpdateEntryAsync("Products", product, new Entry() { { "UnitPrice", 22m } }); + batch += async x => product1 = await x.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + batch += c => c.UpdateEntryAsync("Products", product, new Entry() { { "UnitPrice", 23m } }); + batch += async x => product2 = await x.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1["UnitPrice"]); + Assert.Equal(23m, product2["UnitPrice"]); + + var client = new ODataClient(settings); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + Assert.Equal(23m, product["UnitPrice"]); + } + + [Fact] + public async Task MultipleUpdatesEntriesSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test11" }, { "UnitPrice", 121m } }); + batch += async c => product = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test12" }, { "UnitPrice", 121m } }); + batch += async c => product = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test13" }, { "UnitPrice", 121m } }); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c.For("Products").Filter("UnitPrice eq 121").Set(new Entry() { { "UnitPrice", 122m } }).UpdateEntriesAsync(); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + product = await client.FindEntryAsync("Products?$filter=UnitPrice eq 121"); + Assert.Null(product); + var products = await client.FindEntriesAsync("Products?$filter=UnitPrice eq 122"); + Assert.Equal(3, products.Count()); + } + + [Fact] + public async Task UpdateDeleteSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + IDictionary product1 = null; + IDictionary product2 = null; + + var batch = new ODataBatch(settings); + batch += async x => product = await x.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test11" }, { "UnitPrice", 21m } }); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c.UpdateEntryAsync("Products", product, new Entry() { { "UnitPrice", 22m } }); + batch += async c => product1 = await c.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + batch += c => c.DeleteEntryAsync("Products", product); + batch += async c => product2 = await c.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1["UnitPrice"]); + Assert.Null(product2); + + var client = new ODataClient(settings); + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test11'"); + Assert.Null(product); + } + + [Fact] + public async Task InsertUpdateDeleteSeparateBatches() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test12" }, { "UnitPrice", 21m } }, false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test12'"); + Assert.Equal(21m, product["UnitPrice"]); + var key = new Entry() { { "ProductID", product["ProductID"] } }; + + batch = new ODataBatch(settings); + batch += c => c.UpdateEntryAsync("Products", key, new Entry() { { "UnitPrice", 22m } }); + await batch.ExecuteAsync(); + + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test12'"); + Assert.Equal(22m, product["UnitPrice"]); + + batch = new ODataBatch(settings); + batch += c => c.DeleteEntryAsync("Products", key); + await batch.ExecuteAsync(); + + product = await client.FindEntryAsync("Products?$filter=ProductName eq 'Test12'"); + Assert.Null(product); + } + + [Fact] + public async Task InsertSingleEntityWithSingleAssociationSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary category = null; + var batch = new ODataBatch(settings); + batch += async x => category = await x.InsertEntryAsync("Categories", new Entry() { { "CategoryName", "Test13" } }); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test14" }, { "UnitPrice", 21m }, { "Category", category } }, false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For("Products") + .Expand("Category") + .Filter("ProductName eq 'Test14'") + .FindEntryAsync(); + Assert.Equal("Test13", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task InsertSingleEntityWithMultipleAssociationsSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product1 = null; + IDictionary product2 = null; + var batch = new ODataBatch(settings); + batch += async c => product1 = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test15" }, { "UnitPrice", 21m } }); + batch += async c => product2 = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test16" }, { "UnitPrice", 22m } }); + batch += c => c.InsertEntryAsync("Categories", new Entry() { { "CategoryName", "Test17" }, { "Products", new[] { product1, product2 } } }, false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var category = await client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Test17'") + .FindEntryAsync(); + Assert.Equal(2, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task DeleteEntryNonExisting() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.DeleteEntryAsync("Products", new Entry { { "ProductID", 0xFFFF } }); + await AssertThrowsAsync(async () => await batch.ExecuteAsync()); + } + + [Fact] + public async Task DeleteEntriesExisting() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += async c => await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test19" }, { "UnitPrice", 21m } }); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c.DeleteEntriesAsync("Products", "Products?$filter=ProductName eq 'Test19'"); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For("Products") + .Filter("ProductName eq 'Test19'") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task DeleteEntriesNonExisting() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c.DeleteEntriesAsync("Products", "Products?$filter=ProductName eq 'Test99'"); + await batch.ExecuteAsync(); + } + + [Fact] + public async Task DeleteEntriesMultiple() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += async c => await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test21" }, { "UnitPrice", 111m } }); + batch += async c => await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test22" }, { "UnitPrice", 111m } }); + batch += async c => await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test23" }, { "UnitPrice", 111m } }); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c.DeleteEntriesAsync("Products", "Products?$filter=UnitPrice eq 111"); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For("Products") + .Filter("UnitPrice eq 111") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task DeleteEntriesNonExistingThenInsert() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + var batch = new ODataBatch(settings); + batch += c => c.DeleteEntriesAsync("Products", "Products?$filter=ProductName eq 'Test99'"); + batch += async c => product = await c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test15" }, { "UnitPrice", 21m } }); + batch += c => c.InsertEntryAsync("Categories", new Entry() { { "CategoryName", "Test17" }, { "Products", new[] { product } } }, false); + await batch.ExecuteAsync(); + } + + [Fact] + public async Task UpdateWithResultRequired() + { + var settings = CreateDefaultSettings().WithHttpMock(); + IDictionary product = null; + IDictionary product1 = null; + + var batch = new ODataBatch(settings); + batch += async x => product = await x.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test11" }, { "UnitPrice", 21m } }, true); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += async c => product1 = await c.UpdateEntryAsync("Products", product, new Entry() { { "UnitPrice", 22m } }, true); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1["UnitPrice"]); + } + + [Fact] + public async Task Function() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + var result = 0; + batch += async c => result = await c.Unbound().Function("ParseInt").Set(new Entry() { { "number", "1" } }).ExecuteAsScalarAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(1, result); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task LinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test4" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test5" }) + .InsertEntryAsync(); + + var batch = new ODataBatch(settings); + batch += async c => await c + .For("Products") + .Key(product) + .LinkEntryAsync("Category", category); + await batch.ExecuteAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test5'") + .FindEntryAsync(); + Assert.NotNull(product["CategoryID"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + } + + [Fact] + public async Task Count() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + var count = 0; + batch += async c => count = await c + .For("Products") + .Count() + .FindScalarAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(ExpectedCountOfProducts, count); + } + + [Fact] + public async Task WithHttpHeaders() + { + IDictionary headers = null; + var settings = CreateDefaultSettings().WithHttpMock(); + settings.BeforeRequest = r => headers = r.Headers.ToDictionary(x => x.Key, x => x.Value.First()); + + var batch = new ODataBatch(settings) + .WithHeader("batchHeader", "batchHeaderValue"); + + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 10m } }, false); + batch += c => c.InsertEntryAsync("Products", new Entry() { { "ProductName", "Test2" }, { "UnitPrice", 20m } }, false); + + await batch.ExecuteAsync(); + + Assert.True(headers.TryGetValue("batchHeader", out var value) && value == "batchHeaderValue"); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/BatchTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/BatchTypedTests.cs new file mode 100644 index 000000000..aea03bc37 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/BatchTypedTests.cs @@ -0,0 +1,313 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class BatchTypedTests : TestBase +{ + [Fact] + public async Task Success() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c + .For() + .Set(new Product() { ProductName = "Test1", UnitPrice = 10m }) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(new Product() { ProductName = "Test2", UnitPrice = 20m }) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + Assert.NotNull(product); + product = await client + .For() + .Filter(x => x.ProductName == "Test2") + .FindEntryAsync(); + Assert.NotNull(product); + } + + [Fact] + public async Task SuccessWithResults() + { + var settings = CreateDefaultSettings().WithHttpMock(); + Product product1 = null; + Product product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product1 = await c + .For() + .Set(new Product() { ProductName = "Test1", UnitPrice = 10m }) + .InsertEntryAsync(); + batch += async c => product2 = await c + .For() + .Set(new Product() { ProductName = "Test2", UnitPrice = 20m }) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + Assert.NotEqual(0, product1.ProductID); + Assert.NotEqual(0, product2.ProductID); + + var client = new ODataClient(settings); + product1 = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + Assert.NotNull(product1); + product2 = await client + .For() + .Filter(x => x.ProductName == "Test2") + .FindEntryAsync(); + Assert.NotNull(product2); + } + + [Fact] + public async Task PartialFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c + .For() + .Set(new { ProductName = "Test1", UnitPrice = 10m }) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(new { ProductName = "Test2", UnitPrice = 20m, SupplierID = 0xFFFF }) + .InsertEntryAsync(false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task AllFailures() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c + .For() + .Set(new { UnitPrice = 10m }) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(new { UnitPrice = 20m }) + .InsertEntryAsync(false); + + try + { + await batch.ExecuteAsync(); + } + catch (WebRequestException exception) + { + Assert.NotNull(exception.Response); + } + } + + [Fact] + public async Task MultipleUpdatesSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + Product product = null; + Product product1 = null; + Product product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c + .For() + .Set(new { ProductName = "Test11", UnitPrice = 21m }) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c + .For() + .Key(product.ProductID) + .Set(new { UnitPrice = 22m }) + .UpdateEntryAsync(false); + batch += async c => product1 = await c + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + batch += c => c + .For() + .Key(product.ProductID) + .Set(new { UnitPrice = 23m }) + .UpdateEntryAsync(false); + batch += async c => product2 = await c + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1.UnitPrice); + Assert.Equal(23m, product2.UnitPrice); + + var client = new ODataClient(settings); + product = await client + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + Assert.Equal(23m, product.UnitPrice); + } + + [Fact] + public async Task UpdateDeleteSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + Product product = null; + Product product1 = null; + Product product2 = null; + + var batch = new ODataBatch(settings); + batch += async c => product = await c + .For() + .Set(new { ProductName = "Test11", UnitPrice = 21m }) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + batch = new ODataBatch(settings); + batch += c => c + .For() + .Filter(x => x.ProductName == "Test11") + .Set(new { UnitPrice = 22m }) + .UpdateEntryAsync(false); + batch += async c => product1 = await c + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + batch += c => c + .For() + .Key(product.ProductID) + .DeleteEntryAsync(); + batch += async c => product2 = await c + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + await batch.ExecuteAsync(); + + Assert.Equal(22m, product1.UnitPrice); + Assert.Null(product2); + + var client = new ODataClient(settings); + product = await client + .For() + .Filter(x => x.ProductName == "Test11") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task InsertUpdateDeleteSeparateBatches() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var batch = new ODataBatch(settings); + batch += c => c + .For() + .Set(new { ProductName = "Test12", UnitPrice = 21m }) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For() + .Filter(x => x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Equal(21m, product.UnitPrice); + var productID = product.ProductID; + + batch = new ODataBatch(settings); + batch += c => c + .For() + .Key(productID) + .Set(new { UnitPrice = 22m }) + .UpdateEntryAsync(false); + await batch.ExecuteAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Equal(22m, product.UnitPrice); + + batch = new ODataBatch(settings); + batch += c => c + .For() + .Key(productID) + .DeleteEntryAsync(); + await batch.ExecuteAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test12") + .FindEntryAsync(); + Assert.Null(product); + } + + [Fact] + public async Task InsertSingleEntityWithSingleAssociationSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var category = new Category() { CategoryName = "Test13" }; + var batch = new ODataBatch(settings); + batch += async c => await c + .For() + .Set(category) + .InsertEntryAsync(); + batch += c => c + .For() + .Set(new { ProductName = "Test14", UnitPrice = 21m, Category = category }) + .InsertEntryAsync(); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var product = await client + .For() + .Expand(x => x.Category) + .Filter(x => x.ProductName == "Test14") + .FindEntryAsync(); + Assert.Equal("Test13", product.Category.CategoryName); + } + + [Fact] + public async Task InsertSingleEntityWithMultipleAssociationsSingleBatch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var product1 = new Product() { ProductName = "Test15", UnitPrice = 21m }; + var product2 = new Product() { ProductName = "Test16", UnitPrice = 22m }; + + var batch = new ODataBatch(settings); + batch += c => c + .For() + .Set(product1) + .InsertEntryAsync(false); + batch += c => c + .For() + .Set(product2) + .InsertEntryAsync(false); + batch += async c => await c + .For() + .Set(new { CategoryName = "Test17", Products = new[] { product1, product2 } }) + .InsertEntryAsync(false); + await batch.ExecuteAsync(); + + var client = new ODataClient(settings); + var category = await client + .For() + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Test17") + .FindEntryAsync(); + Assert.Equal(2, category.Products.Length); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/DeleteDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteDynamicTests.cs new file mode 100644 index 000000000..f8649da1b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteDynamicTests.cs @@ -0,0 +1,102 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class DeleteDynamicTests : TestBase +{ + [Fact] + public async Task DeleteByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product.ProductID) + .DeleteEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + _ = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .DeleteEntryAsync(); + + dynamic product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product) + .DeleteEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var ship = await client + .For(x.Transport) + .As(x.Ship) + .Set(x.ShipName = "Test1") + .InsertEntryAsync(); + + await client + .For(x.Transport) + .As(x.Ship) + .Key(ship.TransportID) + .DeleteEntryAsync(); + + ship = await client + .For(x.Transport) + .As(x.Ship) + .Filter(x.ShipName == "Test1") + .FindEntryAsync(); + + Assert.Null(ship); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTests.cs new file mode 100644 index 000000000..a53bf2c08 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTests.cs @@ -0,0 +1,146 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class DeleteTests : TestBase +{ + [Fact] + public async Task DeleteByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product["ProductID"]) + .DeleteEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact(Skip = "Cannot be mocked")] + public async Task DeleteByKeyClearMetadataCache() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + client.Session.ClearMetadataCache(); + await client + .For("Products") + .Key(product["ProductID"]) + .DeleteEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .DeleteEntriesAsync(); + + var product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByFilterFromCommand() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + var commandText = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .GetCommandTextAsync(); + + await client + .DeleteEntriesAsync("Products", commandText); + + var product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product) + .DeleteEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For("Transport") + .As("Ship") + .Set(new { ShipName = "Test1" }) + .InsertEntryAsync(); + + await client + .For("Transport") + .As("Ship") + .Key(ship["TransportID"]) + .DeleteEntryAsync(); + + ship = await client + .For("Transport") + .As("Ship") + .Filter("ShipName eq 'Test1'") + .FindEntryAsync(); + + Assert.Null(ship); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTypedTests.cs new file mode 100644 index 000000000..58b0ce3d9 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/DeleteTypedTests.cs @@ -0,0 +1,98 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class DeleteTypedTests : TestBase +{ + [Fact] + public async Task DeleteByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Key(product.ProductID) + .DeleteEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Filter(x => x.ProductName == "Test1") + .DeleteEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Key(product) + .DeleteEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Null(product); + } + + [Fact] + public async Task DeleteDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For() + .As() + .Set(new Ship { ShipName = "Test1" }) + .InsertEntryAsync(); + + await client + .For() + .As() + .Key(ship.TransportID) + .DeleteEntryAsync(); + + ship = await client + .For() + .As() + .Filter(x => x.ShipName == "Test1") + .FindEntryAsync(); + + Assert.Null(ship); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/FindDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/FindDynamicTests.cs new file mode 100644 index 000000000..c59086662 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/FindDynamicTests.cs @@ -0,0 +1,629 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class FindDynamicTests : TestBase +{ + public FindDynamicTests() + : base(true) + { + } + + [Fact] + public async Task SingleCondition() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task SingleConditionWithVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var productName = "Chai"; + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == productName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task CombinedConditions() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Employees) + .Filter(x.FirstName == "Nancy" && x.HireDate < DateTime.Now) + .FindEntryAsync(); + Assert.Equal("Davolio", product.LastName); + } + + [Fact] + public async Task CombinedConditionsWithMultipleFilters() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Employees) + .Filter(x.FirstName == "Nancy") + .Filter(x.HireDate < DateTime.Now) + .FindEntryAsync(); + Assert.Equal("Davolio", product.LastName); + } + + [Fact] + public async Task CombineAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .OrderBy(x.ProductName) + .ThenByDescending(x.UnitPrice) + .Skip(2) + .Top(1) + .Expand(x.Category) + .Select(x.Category) + .FindEntriesAsync(); + Assert.Equal("Seafood", products.Single().Category.CategoryName); + } + + [Fact] + public async Task CombineAllReverse() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Select(x.Category) + .Expand(x.Category) + .Top(1) + .Skip(2) + .OrderBy(x.ProductName) + .ThenByDescending(x.UnitPrice) + .FindEntriesAsync(); + Assert.Equal("Seafood", products.Single().Category.CategoryName); + } + + [Fact] + public async Task StringContains() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.Contains("ai")) + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single().ProductName); + } + + [Fact] + public async Task StringContainsWithLocalVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var text = "ai"; + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.Contains(text)) + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single().ProductName); + } + + [Fact] + public async Task StringNotContains() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(!x.ProductName.Contains("ai")) + .FindEntriesAsync(); + Assert.NotEqual("Chai", products.First().ProductName); + } + + [Fact] + public async Task StringStartsWith() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.StartsWith("Ch")) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task LengthOfStringEqual() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.Length == 4) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task SubstringWithPositionAndLengthEqual() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.Substring(1, 2) == "ha") + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task SubstringWithPositionAndLengthEqualWithLocalVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var text = "ha"; + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName.Substring(1, 2) == text) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task TopOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task Count() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var count = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .Count() + .FindScalarAsync(); + Assert.Equal(1, count); + } + + [Fact] + public async Task Get() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, category.CategoryID); + } + + [Fact] + public async Task GetNonExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + await AssertThrowsAsync(async () => await client + .For(x.Categories) + .Key(-1) + .FindEntryAsync()); + } + + [Fact] + public async Task SelectSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .Select(x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task SelectMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .Select(x.ProductID, x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task ExpandOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = (await client + .For(x.Products) + .OrderBy(x.ProductID) + .Expand(x.Category) + .FindEntriesAsync() as IEnumerable).Last(); + Assert.Equal("Condiments", (product.Category.CategoryName)); + } + + [Fact] + public async Task ExpandMany() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Category) + .Expand(x.Products) + .Filter(x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, (category.Products as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandSecondLevel() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = (await client + .For(x.Product) + .OrderBy(x.ProductID) + .Expand(x.Category.Products) + .FindEntriesAsync() as IEnumerable).Last(); + Assert.Equal(ExpectedCountOfCondimentsProducts, (product.Category.Products as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandMultipleLevelsWithCollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = (await client + .For(x.Product) + .OrderBy(x.ProductID) + .Expand(x.Category.Products.Category) + .FindEntriesAsync() as IEnumerable).Last(); + Assert.Equal("Condiments", (product.Category.Products as IEnumerable).First().Category.CategoryName); + } + + [Fact] + public async Task ExpandWithSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = (await client + .For(x.Product) + .OrderBy(x.ProductID) + .Expand(x.Category.Products) + .Select(x.ProductName, x.Category.CategoryName) + .FindEntriesAsync() as IEnumerable).Last(); + Assert.Equal("Condiments", product.Category.CategoryName); + } + + [Fact] + public async Task OrderBySingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .OrderBy(x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task OrderByMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .OrderBy(x.ProductID, x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task OrderByExpanded() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = (await client + .For(x.Products) + .Expand(x.Category) + .OrderBy(x.Category.CategoryName) + .FindEntriesAsync() as IEnumerable).Last(); + Assert.Equal("Seafood", product.Category.CategoryName); + } + + [Fact] + public async Task NavigateToSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Products) + .Key(2) + .NavigateTo(x.Category) + .FindEntryAsync(); + Assert.Equal("Beverages", category.CategoryName); + } + + [Fact] + public async Task NavigateToMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable products = await client + .For(x.Categories) + .Key(2) + .NavigateTo(x.Products) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfCondimentsProducts, products.Count()); + } + + [Fact] + public async Task NavigateToRecursive() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var employee = await client + .For(x.Employees) + .Key(14) + .NavigateTo(x.Superior) + .NavigateTo(x.Superior) + .NavigateTo(x.Subordinates) + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee.FirstName); + } + + [Fact] + public async Task NavigateToRecursiveSingleClause() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var employee = await client + .For(x.Employees) + .Key(14) + .NavigateTo(x.Superior.Superior.Subordinates) + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee.FirstName); + } + + [Fact] + public async Task BaseClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable transport = await client + .For(x.Transport) + .FindEntriesAsync(); + Assert.Equal(2, transport.Count()); + Assert.DoesNotContain(transport, y => y.AsDictionary().ContainsKey(FluentCommand.AnnotationsLiteral)); + } + + [Fact] + public async Task BaseClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable transport = await client + .For(x.Transport) + .FindEntriesAsync(); + Assert.Equal(2, transport.Count()); + Assert.True(transport.All(y => y.AsDictionary().ContainsKey(FluentCommand.AnnotationsLiteral))); + } + + [Fact] + public async Task AllDerivedClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + IEnumerable transport = await client + .For(x.Transport) + .As(x.Ships) + .FindEntriesAsync(); + Assert.Equal("Titanic", transport.Single().ShipName); + } + + [Fact] + public async Task AllDerivedClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .As(x.Ships) + .FindEntriesAsync(); + Assert.Equal("Titanic", (transport as IEnumerable).Single().ShipName); + Assert.Equal("NorthwindModel.Ship", ((transport as IEnumerable).Single()[FluentCommand.AnnotationsLiteral] as ODataEntryAnnotations).TypeName); + } + + [Fact] + public async Task DerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .As(x.Ships) + .Filter(x.ShipName == "Titanic") + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task BaseClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, transport.TransportID); + } + + [Fact] + public async Task DerivedClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .As(x.Ships) + .Key(1) + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task DerivedClassEntryBaseAndDerivedFields() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .As(x.Ships) + .Filter(x.TransportID == 1 && x.ShipName == "Titanic") + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task IsOfDerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var transport = await client + .For(x.Transport) + .Filter(x.Is(typeof(Ship))) + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task IsOfAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var employee = await client + .For(x.Employee) + .Filter(x.Superior.Is(typeof(Employee))) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastToPrimitiveType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Product) + .Filter(x.CategoryID == (int)1L) + .FindEntryAsync(); + Assert.NotNull(product); + } + + [Fact] + public async Task CastInstanceToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var employee = await client + .For(x.Employee) + .Filter(x.As(typeof(Employee)) != null) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastPropertyToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var employee = await client + .For(x.Employee) + .Filter(x.Superior.As(typeof(Employee)) != null) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task FilterAny() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var products = await client + .For(x.Orders) + .Filter(x.OrderDetails.Any(x.Quantity > 50)) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAnyDetail, (products as IEnumerable).Count()); + } + + [Fact] + public async Task FilterAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var products = await client + .For(x.Orders) + .Filter(x.OrderDetails.All(x.Quantity > 50)) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAllDetails, (products as IEnumerable).Count()); + } + + [Fact] + public async Task ImplicitCastToType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + Product product = await client + .For(x.Products) + .Filter(x.ProductName == "Chai") + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task ImplicitCastToTypeNullResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + Product product = await client + .For(x.Products) + .Filter(x.ProductName == "XYZ") + .FindEntryAsync(); + Assert.Null(product); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/FindTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/FindTests.cs new file mode 100644 index 000000000..3c92de692 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/FindTests.cs @@ -0,0 +1,547 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class FindTests : TestBase +{ + public FindTests() + : base(true) + { + } + + [Fact] + public async Task Filter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Products") + .Filter("ProductName eq 'Chai'") + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single()["ProductName"]); + } + + [Fact] + public async Task FilterStringExpression() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Products") + .Filter("substringof('ai',ProductName)") + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single()["ProductName"]); + } + + [Fact] + public async Task Get() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, category["CategoryID"]); + } + + [Fact] + public async Task GetNonExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await AssertThrowsAsync(async () => await client + .For("Categories") + .Key(-1) + .FindEntryAsync()); + } + + [Fact] + public async Task SkipOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Products") + .Skip(1) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfProducts - 1, products.Count()); + } + + [Fact] + public async Task TopOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Products") + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task SkipOneTopOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Products") + .Skip(1) + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task OrderBy() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductName") + .FindEntriesAsync()).First(); + Assert.Equal("Alice Mutton", product["ProductName"]); + } + + [Fact] + public async Task OrderByDescending() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderByDescending("ProductName") + .FindEntriesAsync()).First(); + Assert.Equal("Zaanse koeken", product["ProductName"]); + } + + [Fact] + public async Task OrderByExpanded() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .Expand("Category") + .OrderBy("Category/CategoryName") + .FindEntriesAsync()).Last(); + Assert.Equal("Seafood", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task SelectSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Select("ProductName") + .FindEntryAsync(); + Assert.Contains("ProductName", product.Keys); + Assert.DoesNotContain("ProductID", product.Keys); + } + + [Fact] + public async Task SelectSingleHomogenize() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Select("Product_Name") + .FindEntryAsync(); + Assert.Contains("ProductName", product.Keys); + Assert.DoesNotContain("ProductID", product.Keys); + } + + [Fact] + public async Task SelectMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Select("ProductID", "ProductName") + .FindEntryAsync(); + Assert.Contains("ProductName", product.Keys); + Assert.Contains("ProductID", product.Keys); + } + + [Fact] + public async Task SelectMultipleSingleString() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Select("ProductID, ProductName") + .FindEntryAsync(); + Assert.Equal(2, product.Count); + Assert.Contains("ProductName", product.Keys); + Assert.Contains("ProductID", product.Keys); + } + + [Fact] + public async Task ExpandOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductID") + .Expand("Category") + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task ExpandMany() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Beverages'") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandSecondLevel() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductID") + .Expand("Category/Products") + .FindEntriesAsync()).Last(); + Assert.Equal(ExpectedCountOfCondimentsProducts, ((product["Category"] as IDictionary)["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task ExpandMultipleLevelsWithCollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductID") + .Expand("Category/Products/Category") + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", ((((product["Category"] as IDictionary)["Products"] as IEnumerable) + .First() as IDictionary)["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task ExpandMultipleLevelsWithCollectionAndSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductID") + .Expand("Category/Products/Category") + .Select(new[] { "Category/Products/Category/CategoryName" }) + .FindEntriesAsync()).Last(); + Assert.Equal(1, product.Count); + Assert.Equal(1, (product["Category"] as IDictionary).Count); + Assert.Equal(1, (((product["Category"] as IDictionary)["Products"] as IEnumerable) + .First() as IDictionary).Count); + Assert.Equal(1, ((((product["Category"] as IDictionary)["Products"] as IEnumerable) + .First() as IDictionary)["Category"] as IDictionary).Count); + Assert.Equal("Condiments", ((((product["Category"] as IDictionary)["Products"] as IEnumerable) + .First() as IDictionary)["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task ExpandWithSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductID") + .Expand("Category/Products") + .Select(new[] { "ProductName", "Category/CategoryName" }) + .FindEntriesAsync()).Last(); + Assert.Equal(2, product.Count); + Assert.Equal(1, (product["Category"] as IDictionary).Count); + Assert.Equal("Condiments", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task Count() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var count = await client + .For("Products") + .Count() + .FindScalarAsync(); + Assert.Equal(ExpectedCountOfProducts, count); + } + + [Fact] + public async Task FilterCount() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var count = await client + .For("Products") + .Filter("ProductName eq 'Chai'") + .Count() + .FindScalarAsync(); + Assert.Equal(1, count); + } + + [Fact] + public async Task TotalCount() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var annotations = new ODataFeedAnnotations(); + var products = await client + .For("Products") + .FindEntriesAsync(annotations); + Assert.Equal(ExpectedCountOfProducts, annotations.Count); + Assert.Equal(ExpectedCountOfProducts, products.Count()); + } + + [Fact] + public async Task CombineAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .OrderBy("ProductName") + .Skip(2) + .Top(1) + .Expand("Category") + .Select("Category") + .FindEntriesAsync()).Single(); + Assert.Equal("Seafood", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task CombineAllReverse() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For("Products") + .Select("Category") + .Expand("Category") + .Top(1) + .Skip(2) + .OrderBy("ProductName") + .FindEntriesAsync()).Single(); + Assert.Equal("Seafood", (product["Category"] as IDictionary)["CategoryName"]); + } + + [Fact] + public async Task NavigateToSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Products") + .Key(new Entry() { { "ProductID", 2 } }) + .NavigateTo("Category") + .FindEntryAsync(); + Assert.Equal("Beverages", category["CategoryName"]); + } + + [Fact] + public async Task NavigateToMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Categories") + .Key(2) + .NavigateTo("Products") + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfCondimentsProducts, products.Count()); + } + + [Fact] + public async Task NavigateToRecursive() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For("Employees") + .Key(14) + .NavigateTo("Superior") + .NavigateTo("Superior") + .NavigateTo("Subordinates") + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee["FirstName"]); + } + + [Fact] + public async Task NavigateToRecursiveSingleClause() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For("Employees") + .Key(14) + .NavigateTo("Superior/Superior/Subordinates") + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee["FirstName"]); + } + + [Fact] + public async Task BaseClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .FindEntriesAsync(); + Assert.Equal(2, transport.Count()); + Assert.DoesNotContain(transport, x => x.ContainsKey(FluentCommand.AnnotationsLiteral)); + } + + [Fact] + public async Task BaseClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var transport = await client + .For("Transport") + .FindEntriesAsync(); + Assert.Equal(2, transport.Count()); + Assert.True(transport.All(x => x.ContainsKey(FluentCommand.AnnotationsLiteral))); + } + + [Fact] + public async Task AllDerivedClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .As("Ships") + .FindEntriesAsync(); + Assert.Equal("Titanic", transport.Single()["ShipName"]); + } + + [Fact] + public async Task AllDerivedClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var transport = await client + .For("Transport") + .As("Ships") + .FindEntriesAsync(); + + var ship = transport.Single(); + Assert.Equal("Titanic", ship["ShipName"]); + Assert.Equal("NorthwindModel.Ship", (ship[FluentCommand.AnnotationsLiteral] as ODataEntryAnnotations).TypeName); + } + + [Fact] + public async Task DerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .As("Ships") + .Filter("ShipName eq 'Titanic'") + .FindEntryAsync(); + Assert.Equal("Titanic", transport["ShipName"]); + } + + [Fact] + public async Task BaseClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .Key(1) + .FindEntryAsync(); + Assert.Equal("Titanic", transport["ShipName"]); + } + + [Fact] + public async Task DerivedClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .As("Ships") + .Key(1) + .FindEntryAsync(); + Assert.Equal("Titanic", transport["ShipName"]); + } + + [Fact] + public async Task DerivedClassEntryBaseAndDerivedFields() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .As("Ships") + .Filter("TransportID eq 1 and ShipName eq 'Titanic'") + .FindEntryAsync(); + Assert.Equal("Titanic", transport["ShipName"]); + } + + [Fact] + public async Task IsOfDerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For("Transport") + .Filter("isof('NorthwindModel.Ship')") + .FindEntryAsync(); + Assert.Equal("Titanic", transport["ShipName"]); + } + + [Fact] + public async Task IsOfAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For("Employees") + .Filter("isof(Superior, 'NorthwindModel.Employee')") + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastToPrimitiveType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Filter("ProductID eq cast(1L, 'Edm.Int32')") + .FindEntryAsync(); + Assert.NotNull(product); + } + + [Fact] + public async Task CastInstanceToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For("Employees") + .Filter("cast('NorthwindModel.Employee') ne null") + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastPropertyToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For("Employees") + .Filter("cast(Superior, 'NorthwindModel.Employee') ne null") + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task FilterAny() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Orders") + .Filter("Order_Details/any(d:d/Quantity gt 50)") + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAnyDetail, products.Count()); + } + + [Fact] + public async Task FilterAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For("Orders") + .Filter("Order_Details/all(d:d/Quantity gt 50)") + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAllDetails, products.Count()); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/FindTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/FindTypedTests.cs new file mode 100644 index 000000000..15720790b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/FindTypedTests.cs @@ -0,0 +1,798 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class FindTypedTests : TestBase +{ + [Fact] + public async Task SingleCondition() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task SingleConditionWithLocalVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task CombinedConditions() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Filter(x => x.FirstName == "Nancy" && x.HireDate < DateTime.Now) + .FindEntryAsync(); + Assert.Equal("Davolio", employee.LastName); + } + + [Fact] + public async Task CombinedConditionsWithMultipleFilters() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Filter(x => x.FirstName == "Nancy") + .Filter(x => x.HireDate < DateTime.Now) + .FindEntryAsync(); + Assert.Equal("Davolio", employee.LastName); + } + + [Fact] + public async Task CombineAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .OrderBy(x => x.ProductName) + .ThenByDescending(x => x.UnitPrice) + .Skip(2) + .Top(1) + .Expand(x => x.Category) + .Select(x => x.Category) + .FindEntriesAsync()).Single(); + Assert.Equal("Seafood", product.Category.CategoryName); + } + + [Fact] + public async Task CombineAllReverse() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .Select(x => x.Category) + .Expand(x => x.Category) + .Top(1) + .Skip(2) + .OrderBy(x => x.ProductName) + .ThenByDescending(x => x.UnitPrice) + .FindEntriesAsync()).Single(); + Assert.Equal("Seafood", product.Category.CategoryName); + } + + [Fact] + public async Task MappedColumn() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await client + .For() + .Set(new Product { ProductName = "Test1", UnitPrice = 18m, MappedEnglishName = "EnglishTest" }) + .InsertEntryAsync(false); + + var product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .Select(x => new { x.ProductID, x.ProductName, x.MappedEnglishName }) + .FindEntryAsync(); + Assert.Equal("EnglishTest", product.MappedEnglishName); + } + + [Fact] + public async Task UnmappedColumn() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await AssertThrowsAsync(async () => await client + .For("Products") + .Set(new ProductWithUnmappedProperty { ProductName = "Test1" }) + .InsertEntryAsync()); + } + + [Fact] + public async Task IgnoredUnmappedColumn() + { + var client = new ODataClient(CreateDefaultSettings().WithIgnoredUnmappedProperties().WithHttpMock()); + var product = await client + .For("Products") + .Set(new ProductWithUnmappedProperty { ProductName = "Test1" }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product.ProductID) + .Set(new ProductWithUnmappedProperty { ProductName = "Test2" }) + .UpdateEntryAsync(false); + + product = await client + .For("Products") + .Key(product.ProductID) + .FindEntryAsync(); + Assert.Equal("Test2", product.ProductName); + } + + [Fact] + public async Task RemappedColumn() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await client + .For() + .Set(new ProductWithRemappedColumn { ProductName = "Test1", UnitPrice = 18m, MappedEnglishName = "EnglishTest" }) + .InsertEntryAsync(false); + + var product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .Select(x => new { x.ProductID, x.ProductName, x.MappedEnglishName }) + .FindEntryAsync(); + Assert.Equal("EnglishTest", product.MappedEnglishName); + } + + [Fact] + public async Task Subclass() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Filter(x => x.ProductName == "Chai") + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task StringContains() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.ProductName.Contains("ai")) + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single().ProductName); + } + + [Fact] + public async Task StringContainsWithLocalVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var text = "ai"; + var products = await client + .For() + .Filter(x => x.ProductName.Contains(text)) + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single().ProductName); + } + + [Fact] + public async Task StringContainsWithArrayVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var text = new[] { "ai" }; + var products = await client + .For() + .Filter(x => x.ProductName.Contains(text[0])) + .FindEntriesAsync(); + Assert.Equal("Chai", products.Single().ProductName); + } + + [Fact] + public async Task StringNotContains() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => !x.ProductName.Contains("ai")) + .FindEntriesAsync(); + Assert.NotEqual("Chai", products.First().ProductName); + } + + [Fact] + public async Task StringStartsWith() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.ProductName.StartsWith("Ch")) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task LengthOfStringEqual() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.ProductName.Length == 4) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task SubstringWithPositionAndLengthEqual() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.ProductName.Substring(1, 2) == "ha") + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task SubstringWithPositionAndLengthEqualWithLocalVariable() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var text = "ha"; + var products = await client + .For() + .Filter(x => x.ProductName.Substring(1, 2) == text) + .FindEntriesAsync(); + Assert.Equal("Chai", products.First().ProductName); + } + + [Fact] + public async Task TopOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.ProductName == "Chai") + .Top(1) + .FindEntriesAsync(); + Assert.Single(products); + } + + [Fact] + public async Task Count() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var count = await client + .For() + .Filter(x => x.ProductName == "Chai") + .Count() + .FindScalarAsync(); + Assert.Equal(1, count); + } + + [Fact] + public async Task Get() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, category.CategoryID); + } + + [Fact] + public async Task GetNonExisting() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + await AssertThrowsAsync(async () => await client + .For() + .Key(-1) + .FindEntryAsync()); + } + + [Fact] + public async Task SelectSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .Select(x => x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task SelectMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .Select(x => new { x.ProductID, x.ProductName }) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact(Skip = "NewExpression property names are not supported")] + public async Task SelectMultipleRename() + { + var settings = new ODataClientSettings + { + BaseUri = _serviceUri, + IgnoreUnmappedProperties = true, + }; + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + //var client = new ODataClient(settings); + + var product = await client + .For("Products") + .Filter(x => x.ProductName == "Chai") + .Select(x => new { x.ProductID, UnmappedName = x.ProductName }) + .FindEntryAsync(); + Assert.Equal("Chai", product.UnmappedName); + Assert.Null(product.ProductName); + } + + [Fact] + public async Task ExpandOne() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .OrderBy(x => x.ProductID) + .Expand(x => x.Category) + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", product.Category.CategoryName); + } + + [Fact] + public async Task ExpandManyAsArray() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, category.Products.Length); + } + + [Fact] + public async Task ExpandManyAsList() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, category.Products.Count); + } + + [Fact] + public async Task ExpandManyAsIList() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, category.Products.Count); + } + + [Fact] + public async Task ExpandManyAsHashSet() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, category.Products.Count); + } + + [Fact] + public async Task ExpandManyAsICollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Expand(x => x.Products) + .Filter(x => x.CategoryName == "Beverages") + .FindEntryAsync(); + Assert.Equal(ExpectedCountOfBeveragesProducts, category.Products.Count); + } + + [Fact] + public async Task ExpandSecondLevel() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .OrderBy(x => x.ProductID) + .Expand(x => x.Category.Products) + .FindEntriesAsync()).Last(); + Assert.Equal(ExpectedCountOfCondimentsProducts, product.Category.Products.Length); + } + + [Fact] + public async Task ExpandMultipleLevelsWithCollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .OrderBy(x => x.ProductID) + .Expand(x => x.Category.Products.Select(y => y.Category)) + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", product.Category.Products.First().Category.CategoryName); + } + + [Fact] + public async Task ExpandWithSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .OrderBy(x => x.ProductID) + .Expand(x => x.Category) + .Select(x => new { x.ProductName, x.Category.CategoryName }) + .FindEntriesAsync()).Last(); + Assert.Equal("Condiments", product.Category.CategoryName); + } + + [Fact] + public async Task OrderBySingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .OrderBy(x => x.ProductName) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task OrderByMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.ProductName == "Chai") + .OrderBy(x => new { x.ProductID, x.ProductName }) + .FindEntryAsync(); + Assert.Equal("Chai", product.ProductName); + } + + [Fact] + public async Task OrderByExpanded() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = (await client + .For() + .Expand(x => x.Category) + .OrderBy(x => new { x.Category.CategoryName }) + .FindEntriesAsync()).Last(); + Assert.Equal("Seafood", product.Category.CategoryName); + } + + [Fact] + public async Task NavigateToSingle() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Key(new { ProductID = 2 }) + .NavigateTo() + .FindEntryAsync(); + Assert.Equal("Beverages", category.CategoryName); + } + + [Fact] + public async Task NavigateToSingleByExpression() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Key(new { ProductID = 2 }) + .NavigateTo(x => x.Category) + .FindEntryAsync(); + Assert.Equal("Beverages", category.CategoryName); + } + + [Fact] + public async Task NavigateToMultiple() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Key(2) + .NavigateTo() + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfCondimentsProducts, products.Count()); + } + + [Fact] + public async Task NavigateToRecursive() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Key(14) + .NavigateTo("Superior") + .NavigateTo("Superior") + .NavigateTo("Subordinates") + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee.FirstName); + } + + [Fact] + public async Task NavigateToRecursiveByExpression() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Key(14) + .NavigateTo(x => x.Superior) + .NavigateTo(x => x.Superior) + .NavigateTo(x => x.Subordinates) + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee.FirstName); + } + + [Fact] + public async Task NavigateToRecursiveSingleClause() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Key(14) + .NavigateTo(x => x.Superior.Superior.Subordinates) + .Key(3) + .FindEntryAsync(); + Assert.Equal("Janet", employee.FirstName); + } + + [Fact] + public async Task BaseClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var query = await client + .For() + .FindEntriesAsync(); + var transport = query.ToList(); + Assert.Equal(2, transport.Count); + } + + [Fact] + public async Task BaseClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var query = await client + .For() + .FindEntriesAsync(); + var transport = query.ToList(); + Assert.Equal(2, transport.Count); + } + + [Fact] + public async Task AllDerivedClassEntries() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .As() + .FindEntriesAsync(); + Assert.Equal("Titanic", transport.Single().ShipName); + } + + [Fact] + public async Task AllDerivedClassEntriesWithAnnotations() + { + var client = new ODataClient(CreateDefaultSettings().WithAnnotations().WithHttpMock()); + var transport = await client + .For() + .As() + .FindEntriesAsync(); + Assert.Equal("Titanic", transport.Single().ShipName); + } + + [Fact] + public async Task DerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .As() + .Filter(x => x.ShipName == "Titanic") + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task BaseClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .Key(1) + .FindEntryAsync(); + Assert.Equal(1, transport.TransportID); + } + + [Fact] + public async Task DerivedClassEntryByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .As() + .Key(1) + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task DerivedClassEntryBaseAndDerivedFields() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .As() + .Filter(x => x.TransportID == 1 && x.ShipName == "Titanic") + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task IsOfDerivedClassEntry() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var transport = await client + .For() + .Filter(x => x is Ship) + .As() + .FindEntryAsync(); + Assert.Equal("Titanic", transport.ShipName); + } + + [Fact] + public async Task IsOfAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Filter(x => x.Superior is Employee) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastToPrimitiveType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Filter(x => x.CategoryID == (int)1L) + .FindEntryAsync(); + Assert.NotNull(product); + } + + [Fact] + public async Task CastInstanceToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Filter(x => x != null) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task CastPropertyToEntityType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var employee = await client + .For() + .Filter(x => x.Superior != null) + .FindEntryAsync(); + Assert.NotNull(employee); + } + + [Fact] + public async Task FilterAny() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.OrderDetails.Any(y => y.Quantity > 50)) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAnyDetail, products.Count()); + } + + [Fact] + public async Task FilterAll() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var products = await client + .For() + .Filter(x => x.OrderDetails.All(y => y.Quantity > 50)) + .FindEntriesAsync(); + Assert.Equal(ExpectedCountOfOrdersHavingAllDetails, products.Count()); + } + + private class Order_Details : OrderDetail { } + + private class OrderDetails + { + public int Order_ID { get; set; } + public int product_id { get; set; } + public int quantity { get; set; } + } + + private class orderDetails + { + public int orderID { get; set; } + public int productID { get; set; } + public int quantity { get; set; } + } + + [Fact] + public async Task NameMatchResolverStrict() + { + var client = new ODataClient(CreateDefaultSettings() + .WithNameResolver(ODataNameMatchResolver.Strict) + .WithHttpMock()); + var orderDetails1 = await client + .For() + .FindEntriesAsync(); + Assert.NotEmpty(orderDetails1); + await AssertThrowsAsync(async () => + await client.For() + .FindEntriesAsync()); + } + + [Fact] + public async Task NameMatchResolverNotStrict() + { + var client = new ODataClient(CreateDefaultSettings() + .WithNameResolver(ODataNameMatchResolver.NotStrict) + .WithHttpMock()); + var orderDetails1 = await client + .For() + .FindEntriesAsync(); + Assert.NotEmpty(orderDetails1); + Assert.True(orderDetails1.First().OrderID > 0); + var orderDetails2 = await client + .For() + .FindEntriesAsync(); + Assert.NotEmpty(orderDetails2); + Assert.True(orderDetails2.First().Order_ID > 0); + } + + [Fact] + public async Task NameMatchResolverCaseInsensitive() + { + var client = new ODataClient(CreateDefaultSettings() + .WithNameResolver(ODataNameMatchResolver.AlpahumericCaseInsensitive) + .WithHttpMock()); + var orderDetails = await client + .For() + .FindEntriesAsync(); + Assert.NotEmpty(orderDetails); + Assert.True(orderDetails.First().orderID > 0); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/FunctionTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/FunctionTests.cs new file mode 100644 index 000000000..b85f96a63 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/FunctionTests.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +using Entry = System.Collections.Generic.Dictionary; + +public class FunctionTests : TestBase +{ + public FunctionTests() + : base(true) + { + } + + [Fact] + public async Task FunctionWithStringToInt() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("ParseInt") + .Set(new Entry() { { "number", "1" } }) + .ExecuteAsScalarAsync(); + + Assert.Equal(1, result); + } + + [Fact] + public async Task FunctionWithString() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("ReturnString") + .Set(new Entry() { { "text", "abc" } }) + .ExecuteAsScalarAsync(); + + Assert.Equal("abc", result); + } + + [Fact] + public async Task FunctionWithStringAsCollection() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("ReturnString") + .Set(new Entry() { { "text", "abc" } }) + .ExecuteAsSingleAsync(); + + Assert.Equal("abc", result); + } + + [Fact] + public async Task FunctionWithIntCollectionSingleElement() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("ReturnIntCollection") + .Set(new Entry() { { "count", 1 } }) + .ExecuteAsArrayAsync(); + + Assert.Equal(new[] { 1 }, result); + } + + [Fact] + public async Task FunctionWithIntCollectionMultipleElements() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("ReturnIntCollection") + .Set(new Entry() { { "count", 3 } }) + .ExecuteAsArrayAsync(); + + Assert.Equal(new[] { 1, 2, 3 }, result); + } + + [Fact] + public async Task FunctionWithLong() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = await client + .Unbound() + .Function("PassThroughLong") + .Set(new Entry() { { "number", 1L } }) + .ExecuteAsScalarAsync(); + + Assert.Equal(1L, result); + } + + [Fact] + public async Task FunctionWithDateTime() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var dateTime = new DateTime(2013, 1, 1, 12, 13, 14); + var result = await client + .Unbound() + .Function("PassThroughDateTime") + .Set(new Entry() { { "dateTime", dateTime } }) + .ExecuteAsScalarAsync(); + + Assert.Equal(dateTime, result); + } + + [Fact] + public async Task FunctionWithLocalDateTime() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var dateTime = DateTime.Parse("2018-05-20T20:30:40.6779345+02:00"); + var result = await client + .Unbound() + .Function("PassThroughDateTime") + .Set(new Entry() { { "dateTime", dateTime } }) + .ExecuteAsScalarAsync(); + + Assert.Equal(dateTime, result); + } + + [Fact] + public async Task FunctionWithGuid() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var guid = new Guid("8DA69EAD-C2DC-4E1E-A588-BA9EB6AA7294"); + var result = await client + .Unbound() + .Function("PassThroughGuid") + .Set(new Entry() { { "guid", guid } }) + .ExecuteAsScalarAsync(); + + Assert.Equal(guid, result); + } + + [Fact] + public async Task FunctionWithComplexType() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var address = new Address { City = "Oslo", Country = "Norway", Region = "Oslo", PostalCode = "1234" }; + var result = await client + .Unbound>() + .Action("PassThroughAddress") + .Set(new Entry() { { "address", address } }) + .ExecuteAsSingleAsync(); + + result = result["PassThroughAddress"] as IDictionary; + Assert.Equal("Oslo", result["City"]); + Assert.Equal("Norway", result["Country"]); + } + + [Fact] + public async Task FunctionWithComplexTypeCollectionSingleElement() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = (await client + .Unbound>() + .Function("ReturnAddressCollection") + .Set(new Entry() { { "count", 1 } }) + .ExecuteAsSingleAsync()); + + Assert.Equal("Oslo", result["City"]); + Assert.Equal("Norway", result["Country"]); + } + + [Fact] + public async Task FunctionWithComplexTypeCollectionMultipleElements() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = (await client + .Unbound>() + .Function("ReturnAddressCollection") + .Set(new Entry() { { "count", 3 } }) + .ExecuteAsEnumerableAsync()).ToArray(); + + Assert.Equal("Oslo", result[0]["City"]); + Assert.Equal("Norway", result[0]["Country"]); + Assert.Equal("Oslo", result[1]["City"]); + Assert.Equal("Oslo", result[2]["City"]); + } + + [Fact] + public async Task FunctionWithComplexTypeCollectionEmpty() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var result = (await client + .Unbound>() + .Function("ReturnAddressCollection") + .Set(new Entry() { { "count", 0 } }) + .ExecuteAsEnumerableAsync()).ToArray(); + + Assert.Empty(result); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/InsertDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/InsertDynamicTests.cs new file mode 100644 index 000000000..03253ff25 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/InsertDynamicTests.cs @@ -0,0 +1,116 @@ +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class InsertDynamicTests : TestBase +{ + [Fact] + public async Task Insert() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + Assert.Equal("Test1", product.ProductName); + } + + [Fact] + public async Task InsertAutogeneratedID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + Assert.True((int)product.ProductID > 0); + Assert.Equal("Test1", product.ProductName); + } + + [Fact] + public async Task InsertExpando() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + dynamic expando = new ExpandoObject(); + expando.ProductName = "Test9"; + expando.UnitPrice = 18m; + + var product = await client + .For(x.Products) + .Set(expando) + .InsertEntryAsync(); + + Assert.True((int)product["ProductID"] > 0); + } + + [Fact] + public async Task InsertProductWithCategoryByID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test3") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test4", x.UnitPrice = 18m, x.CategoryID = category.CategoryID) + .InsertEntryAsync(); + + Assert.Equal("Test4", product.ProductName); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For(x.Categories) + .Expand(x.Products) + .Filter(x.CategoryName == "Test3") + .FindEntryAsync(); + Assert.True((category.Products as IEnumerable).Count() == 1); + } + + [Fact] + public async Task InsertProductWithCategoryByAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test5") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test6", x.UnitPrice = 18m, x.Category = category) + .InsertEntryAsync(); + + Assert.Equal("Test6", product.ProductName); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For(x.Categories) + .Expand(x.Products) + .Filter(x.CategoryName == "Test5") + .FindEntryAsync(); + Assert.True((category.Products as IEnumerable).Count() == 1); + } + + [Fact] + public async Task InsertShip() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var ship = await client + .For(x.Transport) + .As(x.Ship) + .Set(x.ShipName = "Test1") + .InsertEntryAsync(); + + Assert.Equal("Test1", ship.ShipName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/InsertTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/InsertTests.cs new file mode 100644 index 000000000..69c9eeb26 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/InsertTests.cs @@ -0,0 +1,147 @@ +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class InsertTests : TestBase +{ + [Fact] + public async Task Insert() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 18m } }) + .InsertEntryAsync(); + + Assert.Equal("Test1", product["ProductName"]); + } + + [Fact] + public async Task InsertWithValueConversion() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 18.0d } }) + .InsertEntryAsync(); + + Assert.Equal("Test1", product["ProductName"]); + } + + [Fact] + public async Task InsertAutogeneratedID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + Assert.True((int)product["ProductID"] > 0); + Assert.Equal("Test1", product["ProductName"]); + } + + [Fact] + public async Task InsertExpando() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + dynamic expando = new ExpandoObject(); + expando.ProductName = "Test9"; + expando.UnitPrice = 18m; + + var product = await (Task>)client + .For("Products") + .Set(expando) + .InsertEntryAsync(); + + Assert.True((int)product["ProductID"] > 0); + } + + [Fact] + public async Task InsertProductWithCategoryByID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test3" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test4", UnitPrice = 18m, CategoryID = category["CategoryID"] }) + .InsertEntryAsync(); + + Assert.Equal("Test4", product["ProductName"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + category = await client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Test3'") + .FindEntryAsync(); + Assert.True((category["Products"] as IEnumerable).Count() == 1); + } + + [Fact(Skip = "Cannot be mocked")] + public async Task InsertProductRenewHttpConnection() + { + //var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var client = new ODataClient(new ODataClientSettings { BaseUri = _serviceUri, RenewHttpConnection = true }); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test3" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test4", UnitPrice = 18m, CategoryID = category["CategoryID"] }) + .InsertEntryAsync(); + + Assert.Equal("Test4", product["ProductName"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + category = await client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Test3'") + .FindEntryAsync(); + Assert.True((category["Products"] as IEnumerable).Count() == 1); + } + + [Fact] + public async Task InsertProductWithCategoryByAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test5" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test6", UnitPrice = 18m, Category = category }) + .InsertEntryAsync(); + + Assert.Equal("Test6", product["ProductName"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + category = await client + .For("Categories") + .Expand("Products") + .Filter("CategoryName eq 'Test5'") + .FindEntryAsync(); + Assert.True((category["Products"] as IEnumerable).Count() == 1); + } + + [Fact] + public async Task InsertShip() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For("Transport") + .As("Ship") + .Set(new { ShipName = "Test1" }) + .InsertEntryAsync(); + + Assert.Equal("Test1", ship["ShipName"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/InsertTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/InsertTypedTests.cs new file mode 100644 index 000000000..f00400eb8 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/InsertTypedTests.cs @@ -0,0 +1,157 @@ +using System; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class InsertTypedTests : TestBase +{ + [Fact] + public async Task Insert() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + Assert.Equal("Test1", product.ProductName); + } + + [Fact] + public async Task InsertAutogeneratedID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + Assert.True(product.ProductID > 0); + Assert.Equal("Test1", product.ProductName); + } + + [Fact] + public async Task InsertWithSelect() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .Select(x => new + { + x.ProductID + }) + .InsertEntryAsync(); + + Assert.NotEqual(default, product.ProductID); + Assert.Equal(default, product.ProductName); + Assert.Equal(default, product.UnitPrice); + } + + [Fact] + public async Task InsertWithMappedColumn() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new Product { ProductName = "Test1", UnitPrice = 18m, MappedEnglishName = "EnglishTest" }) + .InsertEntryAsync(); + + Assert.Equal("Test1", product.ProductName); + Assert.Equal("EnglishTest", product.MappedEnglishName); + } + + [Fact] + public async Task InsertProductWithCategoryByID() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test3" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test4", UnitPrice = 18m, CategoryID = category.CategoryID }) + .InsertEntryAsync(); + + Assert.Equal("Test4", product.ProductName); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For() + .Expand(x => new { x.Products }) + .Filter(x => x.CategoryName == "Test3") + .FindEntryAsync(); + Assert.True(category.Products.Length == 1); + } + + [Fact] + public async Task InsertProductWithCategoryByAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test5" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test6", UnitPrice = 18m, Category = category }) + .InsertEntryAsync(); + + Assert.Equal("Test6", product.ProductName); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For() + .Expand(x => new { x.Products }) + .Filter(x => x.CategoryName == "Test5") + .FindEntryAsync(); + Assert.True(category.Products.Length == 1); + } + + [Fact] + public async Task InsertCategoryWithPictureAsBytes() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test7", Picture = new byte[] { 1, 2, 3, 4, 5 } }) + .InsertEntryAsync(); + + category = await client + .For() + .Expand(x => new { x.Products }) + .Filter(x => x.CategoryName == "Test7") + .FindEntryAsync(); + Assert.True(category.Picture.Length > 0); + } + + [Fact] + public async Task InsertCategoryWithPictureAsString() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test7", Picture = Convert.ToBase64String(new byte[] { 1, 2, 3, 4, 5 }) }) + .InsertEntryAsync(); + + category = await client + .For() + .Expand(x => new { x.Products }) + .Filter(x => x.CategoryName == "Test7") + .FindEntryAsync(); + Assert.True(category.Picture.Length > 0); + } + + [Fact] + public async Task InsertShip() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For() + .As() + .Set(new Ship { ShipName = "Test1" }) + .InsertEntryAsync(); + + Assert.Equal("Test1", ship.ShipName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/LinkDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/LinkDynamicTests.cs new file mode 100644 index 000000000..e01137969 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/LinkDynamicTests.cs @@ -0,0 +1,68 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class LinkDynamicTests : TestBase +{ + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task LinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test4") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test5") + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product) + .LinkEntryAsync(x.Category, category); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test5") + .FindEntryAsync(); + Assert.NotNull(product.CategoryID); + Assert.Equal(category.CategoryID, product.CategoryID); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task UnlinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test4") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test5", x.CategoryID = category.CategoryID) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product) + .UnlinkEntryAsync(x.Category); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test5") + .FindEntryAsync(); + Assert.Null(product.CategoryID); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/LinkTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/LinkTests.cs new file mode 100644 index 000000000..a1a1b0aff --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/LinkTests.cs @@ -0,0 +1,66 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class LinkTests : TestBase +{ + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task LinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test4" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test5" }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product) + .LinkEntryAsync("Category", category); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test5'") + .FindEntryAsync(); + Assert.NotNull(product["CategoryID"]); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task UnlinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test4" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test5", CategoryID = category["CategoryID"] }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product) + .UnlinkEntryAsync("Category"); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test5'") + .FindEntryAsync(); + Assert.Null(product["CategoryID"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/LinkTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/LinkTypedTests.cs new file mode 100644 index 000000000..b52f6fcc5 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/LinkTypedTests.cs @@ -0,0 +1,66 @@ +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class LinkTypedTests : TestBase +{ + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task LinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client + .For() + .Set(new { CategoryName = "Test4" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test5" }) + .InsertEntryAsync(); + + await client + .For() + .Key(product) + .LinkEntryAsync(category); + + product = await client + .For() + .Filter(x => x.ProductName == "Test5") + .FindEntryAsync(); + Assert.NotNull(product.CategoryID); + Assert.Equal(category.CategoryID, product.CategoryID); + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task UnlinkEntry(bool useAbsoluteReferenceUris) + { + var settings = CreateDefaultSettings().WithHttpMock(); + settings.UseAbsoluteReferenceUris = useAbsoluteReferenceUris; + var client = new ODataClient(settings); + var category = await client + .For() + .Set(new { CategoryName = "Test4" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test5", CategoryID = category.CategoryID }) + .InsertEntryAsync(); + + await client + .For() + .Key(product) + .UnlinkEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test5") + .FindEntryAsync(); + Assert.Null(product.CategoryID); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/UpdateDynamicTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateDynamicTests.cs new file mode 100644 index 000000000..5e16fd660 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateDynamicTests.cs @@ -0,0 +1,299 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class UpdateDynamicTests : TestBase +{ + [Fact] + public async Task UpdateByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product.ProductID) + .Set(x.UnitPrice = 123m) + .UpdateEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + _ = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .Set(x.UnitPrice = 123m) + .UpdateEntryAsync(); + + dynamic product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateMultipleWithResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + _ = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + dynamic product = (await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .Set(x.UnitPrice = 123m) + .UpdateEntriesAsync() as IEnumerable).Single(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateMultipleNoResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + _ = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + dynamic product = (await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .Set(x.UnitPrice = 123m) + .UpdateEntriesAsync(false) as IEnumerable).Single(); + Assert.Null(product); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test1", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product) + .Set(x.UnitPrice = 456m) + .UpdateEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(456m, product.UnitPrice); + } + + [Fact] + public async Task UpdateDate() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var today = DateTime.Parse("2018-05-20T20:30:40.6770000"); + var tomorrow = today.AddDays(1); + + var employee = await client + .For(x.Employees) + .Set(x.FirstName = "Test1", x.LastName = "Test1", x.HireDate = today) + .InsertEntryAsync(); + + await client + .For(x.Employees) + .Key(employee.EmployeeID) + .Set(x.HireDate = tomorrow) + .UpdateEntryAsync(); + + employee = await client + .For(x.Employees) + .Key(employee.EmployeeID) + .FindEntryAsync(); + + Assert.Equal(tomorrow, employee.HireDate); + } + + [Fact] + public async Task AddSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test1") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test2", x.UnitPrice = 18m) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product.ProductID) + .Set(x.Category = category) + .UpdateEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For(x.Categories) + .Filter(x.CategoryID == category.CategoryID) + .Expand(x.Products) + .FindEntryAsync(); + Assert.Single((category.Products as IEnumerable)); + } + + [Fact] + public async Task UpdateSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test1") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test2", x.UnitPrice = 18m, x.CategoryID = 1) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product.ProductID) + .Set(x.Category = category) + .UpdateEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For(x.Categories) + .Filter(x.CategoryID == category.CategoryID) + .Expand(x.Products) + .FindEntryAsync(); + Assert.Single((category.Products as IEnumerable)); + } + + [Fact] + public async Task RemoveSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test6") + .InsertEntryAsync(); + var product = await client + .For(x.Products) + .Set(x.ProductName = "Test7", x.UnitPrice = 18m, x.Category = category) + .InsertEntryAsync(); + + await client + .For(x.Products) + .Key(product.ProductID) + .Set(x.Category = null) + .UpdateEntryAsync(); + + product = await client + .For(x.Products) + .Filter(x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Null(product.CategoryID); + } + + [Fact] + public async Task UpdateMultipleAssociations() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var category = await client + .For(x.Categories) + .Set(x.CategoryName = "Test3") + .InsertEntryAsync(); + var product1 = await client + .For(x.Products) + .Set(x.ProductName = "Test4", x.UnitPrice = 18m, x.CategoryID = 1) + .InsertEntryAsync(); + var product2 = await client + .For(x.Products) + .Set(x.ProductName = "Test5", x.UnitPrice = 18m, x.CategoryID = 1) + .InsertEntryAsync(); + + await client + .For(x.Categories) + .Key(category.CategoryID) + .Set(x.Products = new[] { product1, product2 }) + .UpdateEntryAsync(); + + category = await client + .For(x.Categories) + .Filter(x.CategoryID == category.CategoryID) + .Expand(x.Products) + .FindEntryAsync(); + Assert.Equal(2, (category.Products as IEnumerable).Count()); + } + + [Fact] + public async Task UpdateDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var x = ODataDynamic.Expression; + var ship = await client + .For(x.Transport) + .As(x.Ship) + .Set(x.ShipName = "Test1") + .InsertEntryAsync(); + + ship = await client + .For(x.Transport) + .As(x.Ship) + .Key(ship.TransportID) + .Set(x.ShipName = "Test2") + .UpdateEntryAsync(); + + Assert.Equal("Test2", ship.ShipName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTests.cs new file mode 100644 index 000000000..22f3e1b2f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTests.cs @@ -0,0 +1,312 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class UpdateTests : TestBase +{ + [Fact] + public async Task UpdateByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product["ProductID"]) + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact(Skip = "Cannot mock")] + public async Task UpdateByKeyClearMetadataCache() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + client.Session.ClearMetadataCache(); + await client + .For("Products") + .Key(product["ProductID"]) + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + var product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateMultipleWithResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + var product = (await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .Set(new { UnitPrice = 123m }) + .UpdateEntriesAsync()).Single(); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateMultipleNoResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + _ = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + var product = (await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .Set(new { UnitPrice = 123m }) + .UpdateEntriesAsync(false)).Single(); + Assert.Null(product); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Equal(123m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For("Products") + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product) + .Set(new { UnitPrice = 456m }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductName eq 'Test1'") + .FindEntryAsync(); + + Assert.Equal(456m, product["UnitPrice"]); + } + + [Fact] + public async Task UpdateDate() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var today = DateTime.Parse("2018-05-20T20:30:40.6770000"); + var tomorrow = today.AddDays(1); + + var employee = await client + .For("Employees") + .Set(new { FirstName = "Test1", LastName = "Test1", HireDate = today }) + .InsertEntryAsync(); + + await client + .For("Employees") + .Key(employee["EmployeeID"]) + .Set(new { HireDate = tomorrow }) + .UpdateEntryAsync(); + + employee = await client + .For("Employees") + .Key(employee["EmployeeID"]) + .FindEntryAsync(); + + Assert.Equal(tomorrow, employee["HireDate"]); + } + + [Fact] + public async Task AddSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test1" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test2", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product["ProductID"]) + .Set(new { Category = category }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductID eq " + product["ProductID"]) + .FindEntryAsync(); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + category = await client + .For("Categories") + .Filter("CategoryID eq " + category["CategoryID"]) + .Expand("Products") + .FindEntryAsync(); + Assert.Single((category["Products"] as IEnumerable)); + } + + [Fact] + public async Task UpdateSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test1" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test2", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product["ProductID"]) + .Set(new { Category = category }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductID eq " + product["ProductID"]) + .FindEntryAsync(); + Assert.Equal(category["CategoryID"], product["CategoryID"]); + category = await client + .For("Categories") + .Filter("CategoryID eq " + category["CategoryID"]) + .Expand("Products") + .FindEntryAsync(); + Assert.Single((category["Products"] as IEnumerable)); + } + + [Fact] + public async Task RemoveSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test6" }) + .InsertEntryAsync(); + var product = await client + .For("Products") + .Set(new { ProductName = "Test7", UnitPrice = 18m, Category = category }) + .InsertEntryAsync(); + + await client + .For("Products") + .Key(product["ProductID"]) + .Set(new { Category = (int?)null }) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Filter("ProductID eq " + product["ProductID"]) + .FindEntryAsync(); + Assert.Null(product["CategoryID"]); + } + + [Fact] + public async Task UpdateMultipleAssociations() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For("Categories") + .Set(new { CategoryName = "Test3" }) + .InsertEntryAsync(); + var product1 = await client + .For("Products") + .Set(new { ProductName = "Test4", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + var product2 = await client + .For("Products") + .Set(new { ProductName = "Test5", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + + await client + .For("Categories") + .Key(category["CategoryID"]) + .Set(new { Products = new[] { product1, product2 } }) + .UpdateEntryAsync(); + + category = await client + .For("Categories") + .Filter("CategoryID eq " + category["CategoryID"]) + .Expand("Products") + .FindEntryAsync(); + Assert.Equal(2, (category["Products"] as IEnumerable).Count()); + } + + [Fact] + public async Task UpdateDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For("Transport") + .As("Ship") + .Set(new { ShipName = "Test1" }) + .InsertEntryAsync(); + + ship = await client + .For("Transport") + .As("Ship") + .Key(ship["TransportID"]) + .Set(new { ShipName = "Test2" }) + .UpdateEntryAsync(); + + Assert.Equal("Test2", ship["ShipName"]); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTypedTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTypedTests.cs new file mode 100644 index 000000000..47d880f0f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/UpdateTypedTests.cs @@ -0,0 +1,345 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class UpdateTypedTests : TestBase +{ + [Fact] + public async Task UpdateByKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Key(product.ProductID) + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateByFilter() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Filter(x => x.ProductName == "Test1") + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateMultipleWithResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + product = (await client + .For() + .Filter(x => x.ProductName == "Test1") + .Set(new { UnitPrice = 123m }) + .UpdateEntriesAsync()).Single(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateMultipleNoResult() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + product = (await client + .For() + .Filter(x => x.ProductName == "Test1") + .Set(new { UnitPrice = 123m }) + .UpdateEntriesAsync(false)).Single(); + Assert.Null(product); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(123m, product.UnitPrice); + } + + [Fact] + public async Task UpdateByObjectAsKey() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Key(product) + .Set(new { UnitPrice = 456m }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(456m, product.UnitPrice); + } + + [Fact] + public async Task UpdateObjectValue() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var product = await client + .For() + .Set(new { ProductName = "Test1", UnitPrice = 18m }) + .InsertEntryAsync(); + + product.UnitPrice = 456m; + await client + .For() + .Key(product) + .Set(product) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductName == "Test1") + .FindEntryAsync(); + + Assert.Equal(456m, product.UnitPrice); + } + + [Fact] + public async Task UpdateDate() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var today = DateTime.Parse("2018-05-20T20:30:40.6770000"); + var tomorrow = today.AddDays(1); + + var employee = await client + .For() + .Set(new { FirstName = "Test1", LastName = "Test1", HireDate = today }) + .InsertEntryAsync(); + + await client + .For() + .Key(employee.EmployeeID) + .Set(new { HireDate = tomorrow }) + .UpdateEntryAsync(); + + employee = await client + .For() + .Key(employee.EmployeeID) + .FindEntryAsync(); + + Assert.Equal(tomorrow, employee.HireDate); + } + + [Fact] + public async Task AddSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test1" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test2", UnitPrice = 18m }) + .InsertEntryAsync(); + + await client + .For() + .Key(product.ProductID) + .Set(new { Category = category }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For() + .Filter(x => x.CategoryID == category.CategoryID) + .Expand(x => x.Products) + .FindEntryAsync(); + Assert.Single(category.Products); + } + + [Fact] + public async Task UpdateSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test1" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test2", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + + await client + .For() + .Key(product.ProductID) + .Set(new { Category = category }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Equal(category.CategoryID, product.CategoryID); + category = await client + .For() + .Filter(x => x.CategoryID == category.CategoryID) + .Expand(x => x.Products) + .FindEntryAsync(); + Assert.Single(category.Products); + } + + [Fact] + public async Task RemoveSingleAssociation() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test6" }) + .InsertEntryAsync(); + var product = await client + .For() + .Set(new { ProductName = "Test7", UnitPrice = 18m, Category = category }) + .InsertEntryAsync(); + + await client + .For() + .Key(product.ProductID) + .Set(new { Category = (int?)null }) + .UpdateEntryAsync(); + + product = await client + .For() + .Filter(x => x.ProductID == product.ProductID) + .FindEntryAsync(); + Assert.Null(product.CategoryID); + } + + [Fact] + public async Task UpdateMultipleAssociations() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test3" }) + .InsertEntryAsync(); + var product1 = await client + .For() + .Set(new { ProductName = "Test4", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + var product2 = await client + .For() + .Set(new { ProductName = "Test5", UnitPrice = 18m, CategoryID = 1 }) + .InsertEntryAsync(); + + await client + .For() + .Key(category.CategoryID) + .Set(new { Products = new[] { product1, product2 } }) + .UpdateEntryAsync(); + + category = await client + .For() + .Filter(x => x.CategoryID == category.CategoryID) + .Expand(x => x.Products) + .FindEntryAsync(); + Assert.Equal(2, category.Products.Length); + } + + [Fact] + public async Task UpdateProducttWithoutExpandingCategory() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var category = await client + .For() + .Set(new { CategoryName = "Test5" }) + .InsertEntryAsync(); + await client + .For() + .Set(new { ProductName = "Test6", UnitPrice = 18m, CategoryID = category.CategoryID }) + .InsertEntryAsync(); + + var product = await client + .For("Products") + .Filter(x => x.ProductName == "Test6") + .FindEntryAsync(); + + product.ProductName = "Test7"; + + await client + .For("Products") + .Key(product.ProductID) + .Set(product) + .UpdateEntryAsync(); + + product = await client + .For("Products") + .Key(product.ProductID) + .FindEntryAsync(); + Assert.Equal("Test7", product.ProductName); + Assert.NotNull(product.CategoryID); + } + + [Fact] + public async Task UpdateDerived() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + var ship = await client + .For() + .As() + .Set(new Ship { ShipName = "Test1" }) + .InsertEntryAsync(); + + ship = await client + .For() + .As() + .Key(ship.TransportID) + .Set(new { ShipName = "Test2" }) + .UpdateEntryAsync(); + + Assert.Equal("Test2", ship.ShipName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/FluentApi/WithHeaderTests.cs b/src/Simple.OData.Client.UnitTests/FluentApi/WithHeaderTests.cs new file mode 100644 index 000000000..236dad146 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/FluentApi/WithHeaderTests.cs @@ -0,0 +1,250 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; +using Entry = System.Collections.Generic.Dictionary; + +namespace Simple.OData.Client.Tests.FluentApi; + +public class WithHeaderTests : TestBase +{ + [Fact] + public async Task WithHeader() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + + var request = await client + .For("Products") + .WithHeader("header1", "header1Value") + .WithHeader("header2", "header2Value") + .BuildRequestFor() + .FindEntryAsync(); + + Assert.Equal("header1Value", request.GetRequest().RequestMessage.Headers.GetValues("header1").SingleOrDefault()); + Assert.Equal("header2Value", request.GetRequest().RequestMessage.Headers.GetValues("header2").SingleOrDefault()); + } + + [Fact] + public async Task WithHeaders() + { + var client = new ODataClient(CreateDefaultSettings().WithHttpMock()); + + var request = await client + .For("Products") + .WithHeaders(new Dictionary{ + { "header1", "header1Value" }, + { "header2", "header2Value" }}) + .BuildRequestFor() + .FindEntryAsync(); + + Assert.Equal("header1Value", request.GetRequest().RequestMessage.Headers.GetValues("header1").SingleOrDefault()); + Assert.Equal("header2Value", request.GetRequest().RequestMessage.Headers.GetValues("header2").SingleOrDefault()); + } + + private (ODataClient client, IDictionary> headers) CreateClient() + { + var headers = new Dictionary>(); + return (new ODataClient(CreateDefaultSettings().WithHttpMock().WithRequestInterceptor(r => r.Headers.ToList().ForEach(x => headers.Add(x.Key, x.Value)))), headers); + } + + private static void AssertHeader(IDictionary> headers, string name, string value) + { + Assert.True(headers.TryGetValue(name, out var values) && values.Single() == value); + } + + private static void AssertHeader(ODataRequest request, string name, string value) + { + Assert.True(request.RequestMessage.Headers.TryGetValues(name, out var values) && values.Single() == value); + } + + [Fact] + public async Task BuildRequestFor() + { + var (client, headers) = CreateClient(); + + var requestClient = await client + .For("Categories") + .WithHeader("header1", "header1Value") + .Key(1) + .BuildRequestFor() + .FindEntryAsync(); + + var request = requestClient.GetRequest(); + + AssertHeader(request, "header1", "header1Value"); + + + await requestClient.RunAsync(); + + AssertHeader(headers, "header1", "header1Value"); + AssertHeader(request, "header1", "header1Value"); + + //Clear first run captured headers + headers.Clear(); + //Run twice to assert no duplicate headers added + await requestClient.RunAsync(); + + AssertHeader(headers, "header1", "header1Value"); + AssertHeader(request, "header1", "header1Value"); + } + + [Fact] + public async Task FindEntry() + { + var (client, headers) = CreateClient(); + + await client + .For("Categories") + .WithHeader("header1", "header1Value") + .Key(1) + .FindEntryAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task GetStream() + { + var (client, headers) = CreateClient(); + + await client + .For("Categories") + .WithHeader("header1", "header1Value") + .Key(1) + .Media() + .GetStreamAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task SetStream() + { + var (client, headers) = CreateClient(); + + await client + .For("Categories") + .WithHeader("header1", "header1Value") + .Key(1) + .Media() + .SetStreamAsync("stream_data", false); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task FindEntries() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Filter("ProductName eq 'Chai'") + .FindEntriesAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task FindScalar() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Count() + .FindScalarAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task Function() + { + var (client, headers) = CreateClient(); + + await client + .Unbound() + .WithHeader("header1", "header1Value") + .Function("ReturnString") + .Set(new Entry() { { "text", "abc" } }) + .ExecuteAsScalarAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task InsertEntry() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Set(new Entry() { { "ProductName", "Test1" }, { "UnitPrice", 18m } }) + .InsertEntryAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task UpdateEntry() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Key(1171) + .Set(new { UnitPrice = 123m }) + .UpdateEntryAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task DeleteEntry() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Key(1109) + .DeleteEntryAsync(); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task LinkEntry() + { + var (client, headers) = CreateClient(); + + var category = new Entry { { "CategoryID", 1003 } }; + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Key(1004) + .LinkEntryAsync("Category", category); + + AssertHeader(headers, "header1", "header1Value"); + } + + [Fact] + public async Task UnlinkEntry() + { + var (client, headers) = CreateClient(); + + await client + .For("Products") + .WithHeader("header1", "header1Value") + .Key(1008) + .UnlinkEntryAsync("Category"); + + AssertHeader(headers, "header1", "header1Value"); + } +} diff --git a/src/Simple.OData.Client.UnitTests/GlobalSuppressions.cs b/src/Simple.OData.Client.UnitTests/GlobalSuppressions.cs new file mode 100644 index 000000000..0bf86611f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/GlobalSuppressions.cs @@ -0,0 +1,46 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage( + "Style", + "IDE1006:Naming Styles", + Justification = "Class is deliberately strangely capitalized for testing", + Scope = "type", + Target = "~T:Simple.OData.Client.Tests.FluentApi.FindTypedTests.OrderDetails") +] + +[assembly: SuppressMessage( + "Style", + "IDE1006:Naming Styles", + Justification = "Class is deliberately strangely capitalized for testing", + Scope = "type", + Target = "~T:Simple.OData.Client.Tests.FluentApi.FindTypedTests.orderDetails") +] + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Unused parameter is present for testing", + Scope = "type", + Target = "~T:Simple.OData.Client.Tests.Extensions.DictionaryExtensionsTests.ClassNoDefaultConstructor") +] + +[assembly: SuppressMessage( + "Style", + "IDE0150:Prefer 'null' check over type check", + Justification = "Applying this breaks build", + Scope = "member", + Target = "~M:Simple.OData.Client.Tests.FluentApi.FindTypedTests.IsOfAssociation~System.Threading.Tasks.Task") +] + +[assembly: SuppressMessage( + "Style", + "IDE0057:Use range operator", + Justification = "Range operator cannot be used here", + Scope = "member", + Target = "~M:Simple.OData.Client.Tests.Core.TypedExpressionTests.SubstringWithPositionEqual") +] diff --git a/src/Simple.OData.Client.UnitTests/HelperExtensions.cs b/src/Simple.OData.Client.UnitTests/HelperExtensions.cs new file mode 100644 index 000000000..9c2ceebf8 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/HelperExtensions.cs @@ -0,0 +1,18 @@ +namespace Simple.OData.Client.Tests; + +internal static class HelperExtensions +{ + /// + /// Helper extension to derive the collection type from an instance type. Use to work with anonymous types as entity classes in tests. + /// + /// + /// + /// + /// + /// + public static IBoundClient For(this IODataClient oDataClient, T _, string collectionName) + where T : class + { + return oDataClient.For(collectionName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/MetadataResolver.cs b/src/Simple.OData.Client.UnitTests/MetadataResolver.cs new file mode 100644 index 000000000..3f39c5040 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/MetadataResolver.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Linq; +using System.Reflection; + +namespace Simple.OData.Client.Tests; + +public static class MetadataResolver +{ + + private static string GetResourceAsString(string resourceName) + { + var assembly = Assembly.GetExecutingAssembly(); + var resourceNames = assembly.GetManifestResourceNames(); + var completeResourceName = resourceNames.FirstOrDefault(o => o.EndsWith("." + resourceName, StringComparison.CurrentCultureIgnoreCase)); + using var resourceStream = assembly.GetManifestResourceStream(completeResourceName); + var reader = new StreamReader(resourceStream); + return reader.ReadToEnd(); + } + + public static string GetMetadataDocument(string documentName) + { + return GetResourceAsString(@"Resources." + documentName); + } +} diff --git a/src/Simple.OData.Client.UnitTests/MockingRequestExecutor.cs b/src/Simple.OData.Client.UnitTests/MockingRequestExecutor.cs new file mode 100644 index 000000000..85bc160b9 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/MockingRequestExecutor.cs @@ -0,0 +1,432 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Json; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Xunit; + +namespace Simple.OData.Client.Tests; + +[DataContract] +public class SerializableHttpRequestMessage +{ + [DataMember] + public string Method { get; set; } + [DataMember] + public Uri RequestUri { get; set; } + [DataMember] + public Dictionary> RequestHeaders; + [DataMember] + public Dictionary> ContentHeaders; + [DataMember] + public string Content { get; set; } + + public SerializableHttpRequestMessage() + { + } + + public SerializableHttpRequestMessage(HttpRequestMessage request) + { + Method = request.Method.ToString(); + RequestUri = request.RequestUri; + RequestHeaders = request.Headers.Select( + x => new KeyValuePair>(x.Key, new List(x.Value))).ToList() + .ToDictionary(x => x.Key, x => x.Value); + if (request.Content != null) + { + ContentHeaders = request.Content.Headers.Select( + x => new KeyValuePair>(x.Key, new List(x.Value))).ToList() + .ToDictionary(x => x.Key, x => x.Value); + Content = request.Content.ReadAsStringAsync().Result; + } + } +} + +[DataContract] +public class SerializableHttpResponseMessage +{ + [DataMember] + public HttpStatusCode StatusCode { get; set; } + [DataMember] + public Uri RequestUri { get; set; } + [DataMember] + public Dictionary> ResponseHeaders; + [DataMember] + public Dictionary> ContentHeaders; + [DataMember] + public string Content { get; set; } + + public SerializableHttpResponseMessage() + { + + } + + public SerializableHttpResponseMessage(HttpResponseMessage response) + { + StatusCode = response.StatusCode; + RequestUri = response.RequestMessage.RequestUri; + ResponseHeaders = response.Headers.Select( + x => new KeyValuePair>(x.Key, new List(x.Value))).ToList() + .ToDictionary(x => x.Key, x => x.Value); + if (response.Content != null) + { + ContentHeaders = response.Content.Headers.Select( + x => new KeyValuePair>(x.Key, new List(x.Value))).ToList() + .ToDictionary(x => x.Key, x => x.Value); + Content = response.Content.ReadAsStringAsync().Result; + } + } +} + +public class MockingRequestExecutor +{ + private readonly ODataClientSettings _settings; + private readonly string _mockDataPathBase; + private readonly string[] _mockResponses; + private readonly bool _validate; + private readonly bool _recording; + private int _fileCounter; + private static readonly Regex _regexBatch = new(@"batch_([0-9AFa-f]){8}-([0-9AFa-f]){4}-([0-9AFa-f]){4}-([0-9AFa-f]){4}-([0-9AFa-f]){12}"); + private static readonly Regex _regexChangeset = new(@"changeset_([0-9AFa-f]){8}-([0-9AFa-f]){4}-([0-9AFa-f]){4}-([0-9AFa-f]){4}-([0-9AFa-f]){12}"); + private static readonly Regex _regexBaseUrl = new(@"http:\/\/((\w|_|-|\.|)+\/){3}"); + + public MockingRequestExecutor(ODataClientSettings settings, string mockDataPathBase, bool validate, bool recording) + { + _settings = settings; + _mockDataPathBase = mockDataPathBase; + _mockResponses = null; + _validate = validate; + _recording = recording; + } + + public MockingRequestExecutor(ODataClientSettings settings, IEnumerable mockResponses, bool validate, bool recording) + { + _settings = settings; + _mockDataPathBase = null; + _mockResponses = mockResponses.ToArray(); + _validate = validate; + _recording = recording; + } + + public async Task ExecuteRequestAsync(HttpRequestMessage request) + { + if (_recording) + { + if (!IsMetadataRequest(request)) + { + SaveRequest(request); + } + + var httpConnection = new HttpConnection(_settings); + var response = await httpConnection.HttpClient.SendAsync(request); + + if (!IsMetadataRequest(request)) + { + SaveResponse(response); + } + + return response; + } + else + { + if (_validate) + { + await ValidateRequestAsync(request); + } + + if (_mockResponses == null) + { + return GetResponseFromResponseMessage(request); + } + else + { + return GetResponseFromJson(request); + } + } + } + + private static bool IsMetadataRequest(HttpRequestMessage request) + { + return request.RequestUri.LocalPath.EndsWith(ODataLiteral.Metadata); + } + + private string GenerateMockDataPath() + { + if (!string.IsNullOrEmpty(_mockDataPathBase)) + { + return string.Format($"{_mockDataPathBase}.{++_fileCounter}.txt"); + } + else + { + return _mockResponses[_fileCounter++]; + } + } + + private void SaveRequest(HttpRequestMessage request) + { + using var stream = new FileStream(GenerateMockDataPath(), FileMode.Create); + var ser = new DataContractJsonSerializer(typeof(SerializableHttpRequestMessage)); + ser.WriteObject(stream, new SerializableHttpRequestMessage(request)); + } + + private void SaveResponse(HttpResponseMessage response) + { + using var stream = new FileStream(GenerateMockDataPath(), FileMode.Create); + var ser = new DataContractJsonSerializer(typeof(SerializableHttpResponseMessage)); + ser.WriteObject(stream, new SerializableHttpResponseMessage(response)); + } + + private async Task ValidateRequestAsync(HttpRequestMessage request) + { + using var stream = new FileStream(GenerateMockDataPath(), FileMode.Open); + var ser = new DataContractJsonSerializer(typeof(SerializableHttpRequestMessage)); + var savedRequest = ser.ReadObject(stream) as SerializableHttpRequestMessage; + Assert.Equal(savedRequest.Method, request.Method.ToString()); + Assert.Equal(savedRequest.RequestUri.AbsolutePath.Split('/').Last(), request.RequestUri.AbsolutePath.Split('/').Last()); + var expectedHeaders = new Dictionary>(); + foreach (var header in savedRequest.RequestHeaders) + { + expectedHeaders.Add(header.Key, header.Value); + } + + var actualHeaders = new Dictionary>(); + foreach (var header in request.Headers) + { + actualHeaders.Add(header.Key, header.Value); + } + + ValidateHeaders(expectedHeaders, actualHeaders); + if (request.Content != null) + { + expectedHeaders = new Dictionary>(); + foreach (var header in savedRequest.ContentHeaders) + { + expectedHeaders.Add(header.Key, header.Value); + } + + actualHeaders = new Dictionary>(); + foreach (var header in request.Content.Headers) + { + actualHeaders.Add(header.Key, header.Value); + } + + ValidateHeaders(expectedHeaders, actualHeaders); + var expectedContent = savedRequest.Content; + expectedContent = AdjustContent(expectedContent); + var actualContent = AdjustContent(await request.Content.ReadAsStringAsync()); + Assert.Equal(expectedContent, actualContent); + } + } + + private HttpResponseMessage GetResponseFromResponseMessage(HttpRequestMessage request) + { + using var stream = new FileStream(GenerateMockDataPath(), FileMode.Open); + var ser = new DataContractJsonSerializer(typeof(SerializableHttpResponseMessage)); + var savedResponse = ser.ReadObject(stream) as SerializableHttpResponseMessage; + var response = new HttpResponseMessage + { + StatusCode = savedResponse.StatusCode, + Content = savedResponse.Content == null + ? null + : new StreamContent(Utils.StringToStream(savedResponse.Content)), + RequestMessage = request, + Version = new Version(1, 1), + }; + foreach (var header in savedResponse.ResponseHeaders) + { + if (response.Headers.Contains(header.Key)) + { + response.Headers.Remove(header.Key); + } + + response.Headers.Add(header.Key, header.Value); + } + + if (savedResponse.Content != null) + { + foreach (var header in savedResponse.ContentHeaders) + { + if (response.Content.Headers.Contains(header.Key)) + { + response.Content.Headers.Remove(header.Key); + } + + response.Content.Headers.Add(header.Key, header.Value); + } + } + + return response; + } + + private HttpResponseMessage GetResponseFromJson(HttpRequestMessage request) + { + var response = new HttpResponseMessage + { + StatusCode = HttpStatusCode.OK, + Content = new StreamContent(Utils.StringToStream(File.ReadAllText(GenerateMockDataPath()))), + RequestMessage = request, + Version = new Version(1, 1), + }; + response.Headers.Add("DataServiceVersion", "1.0;"); + response.Content.Headers.Add("Content-Type", "application/json; type=feed; charset=utf-8"); + return response; + } + + private static void ValidateHeaders( + IDictionary> expectedHeaders, + IDictionary> actualHeaders) + { + Assert.Equal(expectedHeaders.Count, actualHeaders.Count); + foreach (var header in expectedHeaders) + { + Assert.Contains(header.Key, actualHeaders.Keys); + if (header.Key != "Content-Length") + { + var expectedValue = AdjustBatchIds(header.Value.FirstOrDefault()); + var actualValue = AdjustBatchIds(actualHeaders[header.Key].FirstOrDefault()); + Assert.Equal(expectedValue, actualValue); + } + } + } + + private static string AdjustContent(string content) + { + return + AdjustBatchIds( + AdjustNewLines( + AdjustBaseUrl( + RemoveElements(content, new[] { "updated" })))); + + } + + private static string RemoveElements(string content, IEnumerable elementNames) + { + foreach (var elementName in elementNames) + { + while (true) + { + var startPos = content.IndexOf($"<{elementName}>"); + var endPos = content.IndexOf($""); + if (startPos >= 0 && endPos > startPos) + { + content = content[..startPos] + content[(endPos + elementName.Length + 3)..]; + } + else + { + break; + } + } + } + + return content; + } + + private static string AdjustNewLines(string content) + { + return content.Replace("\r\n", "\n"); + } + + private static string AdjustBaseUrl(string content) + { + return _regexBaseUrl.Replace(content, "http://localhost/"); + } + + private static string AdjustBatchIds(string content) + { + var result = _regexBatch.Replace(content, Guid.Empty.ToString()); + result = _regexChangeset.Replace(result, Guid.Empty.ToString()); + return result; + } +} + +public static partial class ODataClientSettingsExtensionMethods +{ + private const string MockDataDir = @"../../../../MockData"; + + public static ODataClientSettings WithNameResolver(this ODataClientSettings settings, INameMatchResolver resolver) + { + settings.NameMatchResolver = resolver; + return settings; + } + + public static ODataClientSettings WithAnnotations(this ODataClientSettings settings) + { + settings.IncludeAnnotationsInResults = true; + return settings; + } + + public static ODataClientSettings WithIgnoredUnmappedProperties(this ODataClientSettings settings) + { + settings.IgnoreUnmappedProperties = true; + return settings; + } + + public static ODataClientSettings WithIgnoredResourceNotFoundException(this ODataClientSettings settings) + { + settings.IgnoreResourceNotFoundException = true; + return settings; + } + + public static ODataClientSettings WithRequestInterceptor(this ODataClientSettings settings, Action action) + { + settings.BeforeRequest = action; + return settings; + } + + public static ODataClientSettings WithResponseInterceptor(this ODataClientSettings settings, Action action) + { + settings.AfterResponse = action; + return settings; + } + + public static ODataClientSettings WithHttpMock(this ODataClientSettings settings) + { + var methodName = GetTestMethodFullName(); + var mockDataPathBase = GetMockDataPathBase(methodName); +#if MOCK_HTTP + var recording = false; +#else + var recording = true; +#endif + var requestExecutor = new MockingRequestExecutor(settings, mockDataPathBase, true, recording); + settings.RequestExecutor = requestExecutor.ExecuteRequestAsync; + return settings; + } + + public static ODataClientSettings WithHttpResponses(this ODataClientSettings settings, IEnumerable responses) + { + var requestExecutor = new MockingRequestExecutor(settings, responses, false, false); + settings.RequestExecutor = requestExecutor.ExecuteRequestAsync; + return settings; + } + + private static string GetMockDataPathBase(string testMethodName) + { + return Path.Combine(MockDataDir, testMethodName); + } + + private static string GetTestMethodFullName() + { + var stackTrace = new System.Diagnostics.StackTrace(); + for (var frameNumber = 2; ; frameNumber++) + { + var stackFrame = stackTrace.GetFrame(frameNumber); + if (stackFrame == null) + { + throw new InvalidOperationException("Attempt to retrieve a frame beyond the call stack."); + } + + var method = stackFrame.GetMethod(); + var methodName = new string(method.Name.Where(c => char.IsLetterOrDigit(c) || c == '_').ToArray()); + if (method.IsPublic && !method.IsGenericMethod) + { + return string.Format($"{method.DeclaringType.Name}.{methodName}"); + } + } + } +} diff --git a/src/Simple.OData.Client.UnitTests/Properties/AssemblyInfo.cs b/src/Simple.OData.Client.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a4bcec543 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Xunit; + +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.Designer.cs b/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.Designer.cs new file mode 100644 index 000000000..4e8320377 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.Designer.cs @@ -0,0 +1,138 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Simple.OData.Client.Tests.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class XmlSamples { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal XmlSamples() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Simple.OData.Client.Tests.Properties.XmlSamples", typeof(XmlSamples).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8"?> + ///<statuses> + ///<status> + ///<created_at>Tue Apr 07 22:52:51 +0000 2009</created_at> + ///<id>1472669360</id> + ///<text>Tweet one.</text> + ///<source><a href="http://www.tweetdeck.com/">TweetDeck</a></source> + ///<truncated>false</truncated> + ///<in_reply_to_status_id></in_reply_to_status_id> + ///<in_reply_to_user_id></in_reply_to_user_id> + ///<favorited>false</favorited> + ///<in_reply_to_screen_name></in_reply_to_screen_name> + ///<user> + ///<id>1401881</id> + ///<name>Doug Williams</name> + ///<screen_name>dougw [rest of string was truncated]";. + /// + internal static string TwitterStatusesSample { + get { + return ResourceManager.GetString("TwitterStatusesSample", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root xmlns="http://schemas.next.lib/tests"> + /// <child> + /// <sub>Foo</sub> + /// </child> + /// <child> + /// <sub>Bar</sub> + /// </child> + ///</root>. + /// + internal static string XmlWithDefaultNamespace { + get { + return ResourceManager.GetString("XmlWithDefaultNamespace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root> + /// <child> + /// <sub>Foo</sub> + /// </child> + /// <child> + /// <sub>Bar</sub> + /// </child> + ///</root>. + /// + internal static string XmlWithNoNamespace { + get { + return ResourceManager.GetString("XmlWithNoNamespace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root xmlns:c="http://schemas.next.lib/tests"> + /// <c:child> + /// <c:sub>Foo</c:sub> + /// </c:child> + /// <c:child> + /// <c:sub>Bar</c:sub> + /// </c:child> + ///</root>. + /// + internal static string XmlWithPrefixedNamespace { + get { + return ResourceManager.GetString("XmlWithPrefixedNamespace", resourceCulture); + } + } + } +} diff --git a/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.resx b/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.resx new file mode 100644 index 000000000..8c5fdecf3 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Properties/XmlSamples.resx @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\TwitterStatusesSample.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + + + ..\Resources\XmlWithDefaultNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + + ..\Resources\XmlWithNoNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + + ..\Resources\XmlWithPrefixedNamespace.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Reflection/MemberAccessorTests.cs b/src/Simple.OData.Client.UnitTests/Reflection/MemberAccessorTests.cs new file mode 100644 index 000000000..879b7a23e --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Reflection/MemberAccessorTests.cs @@ -0,0 +1,99 @@ +using Xunit; + +namespace Simple.OData.Client.Tests.Reflection; + +public class MemberAccessorTests +{ + private class TestClass + { + public string instanceField; + public static string staticField = "staticFieldValue"; + public static string staticFieldToSet = "staticFieldToSetValue"; + + public string InstanceProprety { get; set; } + public static string StaticProperty { get; } = "staticPropertyValue"; + public static string StaticPropertyToSet { get; set; } = "staticPropertyToSetValue"; + } + + [Fact] + public void ShouldGetInstancePropertyValue() + { + var instance = new TestClass + { + InstanceProprety = "instancePropertyValue" + }; + + Assert.Equal(instance.InstanceProprety, MemberAccessor.GetValue(instance, nameof(TestClass.InstanceProprety))); + } + + [Fact] + public void ShouldGetInstanceFieldValue() + { + var instance = new TestClass + { + instanceField = "instanceFieldValue" + }; + + Assert.Equal(instance.instanceField, MemberAccessor.GetValue(instance, nameof(TestClass.instanceField))); + } + + [Fact] + public void ShouldGetStaticPropertyValue() + { + Assert.Equal(TestClass.StaticProperty, MemberAccessor.GetValue(null, typeof(TestClass).GetProperty(nameof(TestClass.StaticProperty)))); + } + + [Fact] + public void ShouldGetStaticFieldValue() + { + Assert.Equal(TestClass.staticField, MemberAccessor.GetValue(null, typeof(TestClass).GetField(nameof(TestClass.staticField)))); + } + + + + + + + [Fact] + public void ShouldSetInstancePropertyValue() + { + var instance = new TestClass + { + InstanceProprety = "instancePropertyValue" + }; + + MemberAccessor.SetValue(instance, nameof(TestClass.InstanceProprety), "test"); + + Assert.Equal("test", instance.InstanceProprety); + } + + [Fact] + public void ShouldSetInstanceFieldValue() + { + var instance = new TestClass + { + instanceField = "instanceFieldValue" + }; + + MemberAccessor.SetValue(instance, nameof(TestClass.instanceField), "test"); + + Assert.Equal("test", instance.instanceField); + } + + [Fact] + public void ShouldSetStaticPropertyValue() + { + MemberAccessor.SetValue(null, typeof(TestClass).GetProperty(nameof(TestClass.StaticPropertyToSet)), "test"); + + Assert.Equal("test", TestClass.StaticPropertyToSet); + } + + [Fact] + public void ShouldSetStaticFieldValue() + { + MemberAccessor.SetValue(null, typeof(TestClass).GetField(nameof(TestClass.staticFieldToSet)), "test"); + + Assert.Equal("test", TestClass.staticFieldToSet); + } +} + diff --git a/src/Simple.OData.Client.UnitTests/Resources/AccountTasksAndLink.json b/src/Simple.OData.Client.UnitTests/Resources/AccountTasksAndLink.json new file mode 100644 index 000000000..c2473992d --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/AccountTasksAndLink.json @@ -0,0 +1,74 @@ +{ + "@odata.context": "https://demoodataendpoint.crm4.dynamics.com/api/data/v8.1/$metadata#accounts(name,Account_Tasks)", + "value": [ + { + "@odata.etag": "W/\"596351\"", + "name": "Account 1", + "accountid": "5f4c87e4-4952-e611-80dd-c4346bacfc18", + "Account_Tasks": [ + { + "@odata.etag": "W/\"596332\"", + "statecode": 0, + "_regardingobjectid_value": "5f4c87e4-4952-e611-80dd-c4346bacfc18", + "statuscode": 2, + "description": "description", + "createdon": "2016-07-25T09:26:29Z", + "isbilled": false, + "subject": "Account task 2", + "_ownerid_value": "9f3f627d-ea3c-402d-bd5d-523f33934991", + "modifiedon": "2016-07-25T09:26:41Z", + "versionnumber": 596332, + "prioritycode": 1, + "timezoneruleversionnumber": 4, + "isregularactivity": true, + "_modifiedby_value": "9f3f627d-ea3c-402d-bd5d-523f33934991", + "actualstart": "2016-07-25T09:26:29Z", + "activitytypecode": "task", + "isworkflowcreated": false, + "_createdby_value": "9f3f627d-ea3c-402d-bd5d-523f33934991", + "_owningbusinessunit_value": "76355cab-c047-e611-80d9-c4346badf080", + "_owninguser_value": "9f3f627d-ea3c-402d-bd5d-523f33934991", + "activityid": "c1c769dd-4952-e611-80dd-c4346bacfc18", + "activityadditionalparams": null, + "scheduledstart": null, + "lastonholdtime": null, + "_transactioncurrencyid_value": null, + "_sendermailboxid_value": null, + "scheduleddurationminutes": null, + "_modifiedonbehalfby_value": null, + "scheduledend": null, + "_slainvokedid_value": null, + "postponeactivityprocessinguntil": null, + "deliveryprioritycode": null, + "_owningteam_value": null, + "ismapiprivate": null, + "traversedpath": null, + "actualend": null, + "actualdurationminutes": null, + "_serviceid_value": null, + "instancetypecode": null, + "_createdonbehalfby_value": null, + "seriesid": null, + "leftvoicemail": null, + "senton": null, + "processid": null, + "community": null, + "utcconversiontimezonecode": null, + "deliverylastattemptedon": null, + "stageid": null, + "onholdtime": null, + "exchangerate": null, + "_slaid_value": null, + "importsequencenumber": null, + "category": null, + "subscriptionid": null, + "overriddencreatedon": null, + "percentcomplete": null, + "subcategory": null, + "crmtaskassigneduniqueid": null + } + ], + "Account_Tasks@odata.nextLink": "https://demoodataendpoint.crm4.dynamics.com/api/data/v8.1/accounts(11111111-4952-e611-80dd-c4346bacfc18)/Account_Tasks" + } + ] +} \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/AccountTasksOnlyLink.json b/src/Simple.OData.Client.UnitTests/Resources/AccountTasksOnlyLink.json new file mode 100644 index 000000000..10a1df879 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/AccountTasksOnlyLink.json @@ -0,0 +1,14 @@ +{ + "@odata.context": "https://demoodataendpoint.crm4.dynamics.com/api/data/v8.1/$metadata#accounts(name,Account_Tasks)", + "value": [ + { + "@odata.etag": "W/\"596351\"", + "name": "Account 1", + "accountid": "5f4c87e4-4952-e611-80dd-c4346bacfc18", + "Account_Tasks": [ + + ], + "Account_Tasks@odata.nextLink": "https://demoodataendpoint.crm4.dynamics.com/api/data/v8.1/accounts(5f4c87e4-4952-e611-80dd-c4346bacfc18)/Account_Tasks" + } + ] +} \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/ActionWithDerivedType.xml b/src/Simple.OData.Client.UnitTests/Resources/ActionWithDerivedType.xml new file mode 100644 index 000000000..74f632a9f --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/ActionWithDerivedType.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/ActionWithEnum.xml b/src/Simple.OData.Client.UnitTests/Resources/ActionWithEnum.xml new file mode 100644 index 000000000..7bab780c7 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/ActionWithEnum.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Simple.OData.Client.Tests/Resources/ArrayOfNested.edmx b/src/Simple.OData.Client.UnitTests/Resources/ArrayOfNested.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/ArrayOfNested.edmx rename to src/Simple.OData.Client.UnitTests/Resources/ArrayOfNested.edmx diff --git a/src/Simple.OData.Client.UnitTests/Resources/Artifacts.edmx b/src/Simple.OData.Client.UnitTests/Resources/Artifacts.edmx new file mode 100644 index 000000000..9050b940a --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Artifacts.edmx @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/Resources/ClientProductSku.xml b/src/Simple.OData.Client.UnitTests/Resources/ClientProductSku.xml new file mode 100644 index 000000000..ab1a3eda6 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/ClientProductSku.xml @@ -0,0 +1,2369 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Simple.OData.Client.Tests/Resources/Colors.edmx b/src/Simple.OData.Client.UnitTests/Resources/Colors.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/Colors.edmx rename to src/Simple.OData.Client.UnitTests/Resources/Colors.edmx diff --git a/src/Simple.OData.Client.UnitTests/Resources/DynamicsCRM.xml b/src/Simple.OData.Client.UnitTests/Resources/DynamicsCRM.xml new file mode 100644 index 000000000..392be313a --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/DynamicsCRM.xml @@ -0,0 +1,52689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + Org.OData.Core.V1.PermissionType/Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.NavigationType/Single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Org.OData.Capabilities.V1.ConformanceLevelType/Intermediate + + + + contains + endswith + startswith + + + + + + + + + + + application/json; odata.metadata=minimal; odata.streaming=true + application/json; odata.metadata=minimal; odata.streaming=false + application/json; odata.metadata=minimal + application/json; odata.metadata=full; odata.streaming=true + application/json; odata.metadata=full; odata.streaming=false + application/json; odata.metadata=full + application/json; odata.metadata=none; odata.streaming=true + application/json; odata.metadata=none; odata.streaming=false + application/json; odata.metadata=none + application/json; odata.streaming=true + application/json; odata.streaming=false + application/json + application/xml + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/Resources/ExampleActionComplexType.json b/src/Simple.OData.Client.UnitTests/Resources/ExampleActionComplexType.json new file mode 100644 index 000000000..bed89a8e8 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/ExampleActionComplexType.json @@ -0,0 +1,5 @@ +{ + "@odata.context": "http://localhost/ApiActionExample/odata/$metadata#Microsoft.Dynamics.CRM.ExampleComplex", + "SomeProperty": "MyPropertyValue", + "SomeOtherProperty": 1 +} \ No newline at end of file diff --git a/Simple.OData.Client.Tests/Resources/Facebook.edmx b/src/Simple.OData.Client.UnitTests/Resources/Facebook.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/Facebook.edmx rename to src/Simple.OData.Client.UnitTests/Resources/Facebook.edmx diff --git a/Simple.OData.Client.Tests/Resources/Flickr.edmx b/src/Simple.OData.Client.UnitTests/Resources/Flickr.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/Flickr.edmx rename to src/Simple.OData.Client.UnitTests/Resources/Flickr.edmx diff --git a/Simple.OData.Client.Tests/Resources/GoogleMaps.edmx b/src/Simple.OData.Client.UnitTests/Resources/GoogleMaps.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/GoogleMaps.edmx rename to src/Simple.OData.Client.UnitTests/Resources/GoogleMaps.edmx diff --git a/src/Simple.OData.Client.UnitTests/Resources/Insight.edmx b/src/Simple.OData.Client.UnitTests/Resources/Insight.edmx new file mode 100644 index 000000000..c562b07ad --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Insight.edmx @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/Resources/KeyDemo.xml b/src/Simple.OData.Client.UnitTests/Resources/KeyDemo.xml new file mode 100644 index 000000000..5126452ff --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/KeyDemo.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/Marathon.edmx b/src/Simple.OData.Client.UnitTests/Resources/Marathon.edmx new file mode 100644 index 000000000..cc4f75d22 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Marathon.edmx @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Simple.OData.Client.Tests/Resources/MultipleCategoriesWithProducts.xml b/src/Simple.OData.Client.UnitTests/Resources/MultipleCategoriesWithProducts.xml similarity index 100% rename from Simple.OData.Client.Tests/Resources/MultipleCategoriesWithProducts.xml rename to src/Simple.OData.Client.UnitTests/Resources/MultipleCategoriesWithProducts.xml diff --git a/Simple.OData.Client.Tests/Resources/MultipleProducts.xml b/src/Simple.OData.Client.UnitTests/Resources/MultipleProducts.xml similarity index 96% rename from Simple.OData.Client.Tests/Resources/MultipleProducts.xml rename to src/Simple.OData.Client.UnitTests/Resources/MultipleProducts.xml index 9b34e70fb..999463d49 100644 --- a/Simple.OData.Client.Tests/Resources/MultipleProducts.xml +++ b/src/Simple.OData.Client.UnitTests/Resources/MultipleProducts.xml @@ -11,7 +11,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -254,7 +254,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -335,7 +335,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -389,7 +389,7 @@ - + @@ -416,7 +416,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -470,7 +470,7 @@ - + @@ -497,7 +497,7 @@ - + @@ -524,7 +524,7 @@ - + diff --git a/Simple.OData.Client.Tests/Resources/MultipleProductsWithCategory.xml b/src/Simple.OData.Client.UnitTests/Resources/MultipleProductsWithCategory.xml similarity index 100% rename from Simple.OData.Client.Tests/Resources/MultipleProductsWithCategory.xml rename to src/Simple.OData.Client.UnitTests/Resources/MultipleProductsWithCategory.xml diff --git a/Simple.OData.Client.Tests/Resources/Nested.edmx b/src/Simple.OData.Client.UnitTests/Resources/Nested.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/Nested.edmx rename to src/Simple.OData.Client.UnitTests/Resources/Nested.edmx diff --git a/src/Simple.OData.Client.UnitTests/Resources/Northwind.xml b/src/Simple.OData.Client.UnitTests/Resources/Northwind.xml new file mode 100644 index 000000000..dd0778eb2 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Northwind.xml @@ -0,0 +1 @@ + diff --git a/src/Simple.OData.Client.UnitTests/Resources/Northwind3.xml b/src/Simple.OData.Client.UnitTests/Resources/Northwind3.xml new file mode 100644 index 000000000..9fcb78e64 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Northwind3.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/Resources/Northwind4.xml b/src/Simple.OData.Client.UnitTests/Resources/Northwind4.xml new file mode 100644 index 000000000..fbd62e72b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Northwind4.xml @@ -0,0 +1,503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/Northwind4WithAlternateKeys.xml b/src/Simple.OData.Client.UnitTests/Resources/Northwind4WithAlternateKeys.xml new file mode 100644 index 000000000..d3b7a3ecb --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Northwind4WithAlternateKeys.xml @@ -0,0 +1,559 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Simple.OData.Client.UnitTests/Resources/OpenTypeV401.json b/src/Simple.OData.Client.UnitTests/Resources/OpenTypeV401.json new file mode 100644 index 000000000..3a3dcb5db --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/OpenTypeV401.json @@ -0,0 +1,11 @@ +{ + "@odata.context": "http://localhost/ApiActionExample/odata/$metadata#TheRecords", + "value": [ + { + "Id": 42, + "IntegerProperty": 43, + "NullProperty": null, + "StringProperty": "some string" + } + ] +} \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/OpenTypes.xml b/src/Simple.OData.Client.UnitTests/Resources/OpenTypes.xml new file mode 100644 index 000000000..7f17cedd7 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/OpenTypes.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/QAS.Multiplatform.Demo.edmx b/src/Simple.OData.Client.UnitTests/Resources/QAS.Multiplatform.Demo.edmx new file mode 100644 index 000000000..e13269741 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/QAS.Multiplatform.Demo.edmx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/Resources/Russian.xml b/src/Simple.OData.Client.UnitTests/Resources/Russian.xml new file mode 100644 index 000000000..522a841e3 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/Russian.xml @@ -0,0 +1,8130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Simple.OData.Client.Tests/Resources/SingleCategoryWithProducts.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleCategoryWithProducts.xml similarity index 100% rename from Simple.OData.Client.Tests/Resources/SingleCategoryWithProducts.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleCategoryWithProducts.xml diff --git a/src/Simple.OData.Client.UnitTests/Resources/SingleCustomerWithAddress.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleCustomerWithAddress.xml new file mode 100644 index 000000000..43f7e6216 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/SingleCustomerWithAddress.xml @@ -0,0 +1,24 @@ + + + http://services.odata.org/Northwind/Northwind.svc/Customers('CONTO') + + <updated>2012-02-24T09:39:04Z</updated> + <author> + <name /> + </author> + <link rel="edit" title="Customer" href="Customers('CONTO')" /> + <category term="NorthwindModel.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <content type="application/xml"> + <m:properties> + <d:CustomerID>CONTO</d:CustomerID> + <d:CompanyName>Contoso</d:CompanyName> + <d:Address m:type="NorthwindModel.Address"> + <d:Type m:type="NorthwindModel.AddressType">Private</d:Type> + <d:City>Oslo</d:City> + <d:Region>Oslo</d:Region> + <d:PostalCode>1410</d:PostalCode> + <d:Country>Norway</d:Country> + </d:Address> + </m:properties> + </content> +</entry> diff --git a/Simple.OData.Client.Tests/Resources/SingleProduct.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProduct.xml similarity index 100% rename from Simple.OData.Client.Tests/Resources/SingleProduct.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProduct.xml diff --git a/Simple.OData.Client.Tests/Resources/SingleProductWithCategory.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCategory.xml similarity index 100% rename from Simple.OData.Client.Tests/Resources/SingleProductWithCategory.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCategory.xml diff --git a/Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfComplexProperties.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfComplexProperties.xml similarity index 97% rename from Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfComplexProperties.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfComplexProperties.xml index e67f1ee74..2b35fec1c 100644 --- a/Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfComplexProperties.xml +++ b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfComplexProperties.xml @@ -17,7 +17,7 @@ <d:ProductName>Chai</d:ProductName> <d:SupplierID m:type="Edm.Int32">1</d:SupplierID> <d:CategoryID m:type="Edm.Int32">1</d:CategoryID> - <d:Tags m:type="Collection(Edm.String)"> + <d:Tags m:type="Collection(NorthwindModel.Tags)"> <d:element> <d:group>Food</d:group> <d:value>Bakery</d:value> diff --git a/Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml similarity index 94% rename from Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml index 54cf66709..a79608d08 100644 --- a/Simple.OData.Client.Tests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml +++ b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithCollectionOfPrimitiveProperties.xml @@ -10,7 +10,7 @@ <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Category" type="application/atom+xml;type=entry" title="Category" href="Products(1)/Category" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Order_Details" type="application/atom+xml;type=feed" title="Order_Details" href="Products(1)/Order_Details" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier" /> - <category term="NorthwindModel.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <category term="NorthwindModel.Products" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:ProductID m:type="Edm.Int32">1</d:ProductID> diff --git a/Simple.OData.Client.Tests/Resources/SingleProductWithComplexProperty.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithComplexProperty.xml similarity index 94% rename from Simple.OData.Client.Tests/Resources/SingleProductWithComplexProperty.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProductWithComplexProperty.xml index 516f01236..320321c92 100644 --- a/Simple.OData.Client.Tests/Resources/SingleProductWithComplexProperty.xml +++ b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithComplexProperty.xml @@ -10,7 +10,7 @@ <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Category" type="application/atom+xml;type=entry" title="Category" href="Products(1)/Category" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Order_Details" type="application/atom+xml;type=feed" title="Order_Details" href="Products(1)/Order_Details" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier" /> - <category term="NorthwindModel.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <category term="NorthwindModel.Products" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:ProductID m:type="Edm.Int32">1</d:ProductID> diff --git a/Simple.OData.Client.Tests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml similarity index 90% rename from Simple.OData.Client.Tests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml rename to src/Simple.OData.Client.UnitTests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml index 6a3a4d3f0..b9d881014 100644 --- a/Simple.OData.Client.Tests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml +++ b/src/Simple.OData.Client.UnitTests/Resources/SingleProductWithEmptyCollectionOfComplexProperties.xml @@ -10,14 +10,14 @@ <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Category" type="application/atom+xml;type=entry" title="Category" href="Products(1)/Category" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Order_Details" type="application/atom+xml;type=feed" title="Order_Details" href="Products(1)/Order_Details" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier" /> - <category term="NorthwindModel.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <category term="NorthwindModel.Products" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:ProductID m:type="Edm.Int32">1</d:ProductID> <d:ProductName>Chai</d:ProductName> <d:SupplierID m:type="Edm.Int32">1</d:SupplierID> <d:CategoryID m:type="Edm.Int32">1</d:CategoryID> - <d:Tags m:type="Collection(Edm.String)"/> + <d:Tags m:type="Collection(NorthwindModel.Tags)"/> <d:QuantityPerUnit>10 boxes x 20 bags</d:QuantityPerUnit> <d:UnitPrice m:type="Edm.Decimal">18.0000</d:UnitPrice> <d:UnitsInStock m:type="Edm.Int16">39</d:UnitsInStock> diff --git a/src/Simple.OData.Client.UnitTests/Resources/TripPin.xml b/src/Simple.OData.Client.UnitTests/Resources/TripPin.xml new file mode 100644 index 000000000..7abbfda5b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/TripPin.xml @@ -0,0 +1,335 @@ +<?xml version="1.0" encoding="utf-8"?> +<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> + <edmx:DataServices> + <Schema Namespace="Microsoft.OData.SampleService.Models.TripPin" xmlns="http://docs.oasis-open.org/odata/ns/edm"> + <EnumType Name="PersonGender"> + <Member Name="Male" Value="0" /> + <Member Name="Female" Value="1" /> + <Member Name="Unknown" Value="2" /> + </EnumType> + <ComplexType Name="City"> + <Property Name="CountryRegion" Type="Edm.String" Nullable="false" /> + <Property Name="Name" Type="Edm.String" Nullable="false" /> + <Property Name="Region" Type="Edm.String" Nullable="false" /> + </ComplexType> + <ComplexType Name="Location" OpenType="true"> + <Property Name="Address" Type="Edm.String" Nullable="false" /> + <Property Name="City" Type="Microsoft.OData.SampleService.Models.TripPin.City" Nullable="false" /> + </ComplexType> + <ComplexType Name="EventLocation" BaseType="Microsoft.OData.SampleService.Models.TripPin.Location" OpenType="true"> + <Property Name="BuildingInfo" Type="Edm.String" /> + </ComplexType> + <ComplexType Name="AirportLocation" BaseType="Microsoft.OData.SampleService.Models.TripPin.Location" OpenType="true"> + <Property Name="Loc" Type="Edm.GeographyPoint" Nullable="false" SRID="4326" /> + </ComplexType> + <EntityType Name="Photo" HasStream="true"> + <Key> + <PropertyRef Name="Id" /> + </Key> + <Property Name="Id" Type="Edm.Int64" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="Name" Type="Edm.String" /> + <Annotation Term="Org.OData.Core.V1.AcceptableMediaTypes"> + <Collection> + <String>image/jpeg</String> + </Collection> + </Annotation> + </EntityType> + <EntityType Name="Person" OpenType="true"> + <Key> + <PropertyRef Name="UserName" /> + </Key> + <Property Name="UserName" Type="Edm.String" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="FirstName" Type="Edm.String" Nullable="false" /> + <Property Name="LastName" Type="Edm.String" Nullable="false" /> + <Property Name="Emails" Type="Collection(Edm.String)" /> + <Property Name="AddressInfo" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Location)" /> + <Property Name="Gender" Type="Microsoft.OData.SampleService.Models.TripPin.PersonGender" /> + <Property Name="Concurrency" Type="Edm.Int64" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" /> + </Property> + <NavigationProperty Name="Friends" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Person)" /> + <NavigationProperty Name="Trips" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Trip)" ContainsTarget="true" /> + <NavigationProperty Name="Photo" Type="Microsoft.OData.SampleService.Models.TripPin.Photo" /> + </EntityType> + <EntityType Name="Airline"> + <Key> + <PropertyRef Name="AirlineCode" /> + </Key> + <Property Name="AirlineCode" Type="Edm.String" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="Name" Type="Edm.String" Nullable="false" /> + </EntityType> + <EntityType Name="Airport"> + <Key> + <PropertyRef Name="IcaoCode" /> + </Key> + <Property Name="IcaoCode" Type="Edm.String" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="Name" Type="Edm.String" Nullable="false" /> + <Property Name="IataCode" Type="Edm.String" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Immutable" Bool="true" /> + </Property> + <Property Name="Location" Type="Microsoft.OData.SampleService.Models.TripPin.AirportLocation" Nullable="false" /> + </EntityType> + <EntityType Name="PlanItem"> + <Key> + <PropertyRef Name="PlanItemId" /> + </Key> + <Property Name="PlanItemId" Type="Edm.Int32" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="ConfirmationCode" Type="Edm.String" /> + <Property Name="StartsAt" Type="Edm.DateTimeOffset" /> + <Property Name="EndsAt" Type="Edm.DateTimeOffset" /> + <Property Name="Duration" Type="Edm.Duration" /> + </EntityType> + <EntityType Name="PublicTransportation" BaseType="Microsoft.OData.SampleService.Models.TripPin.PlanItem"> + <Property Name="SeatNumber" Type="Edm.String" /> + </EntityType> + <EntityType Name="Flight" BaseType="Microsoft.OData.SampleService.Models.TripPin.PublicTransportation"> + <Property Name="FlightNumber" Type="Edm.String" Nullable="false" /> + <NavigationProperty Name="From" Type="Microsoft.OData.SampleService.Models.TripPin.Airport" Nullable="false" /> + <NavigationProperty Name="To" Type="Microsoft.OData.SampleService.Models.TripPin.Airport" Nullable="false" /> + <NavigationProperty Name="Airline" Type="Microsoft.OData.SampleService.Models.TripPin.Airline" Nullable="false" /> + </EntityType> + <EntityType Name="Event" BaseType="Microsoft.OData.SampleService.Models.TripPin.PlanItem" OpenType="true"> + <Property Name="Description" Type="Edm.String" /> + <Property Name="OccursAt" Type="Microsoft.OData.SampleService.Models.TripPin.EventLocation" Nullable="false" /> + </EntityType> + <EntityType Name="Trip"> + <Key> + <PropertyRef Name="TripId" /> + </Key> + <Property Name="TripId" Type="Edm.Int32" Nullable="false"> + <Annotation Term="Org.OData.Core.V1.Permissions"> + <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember> + </Annotation> + </Property> + <Property Name="ShareId" Type="Edm.Guid" /> + <Property Name="Description" Type="Edm.String" /> + <Property Name="Name" Type="Edm.String" Nullable="false" /> + <Property Name="Budget" Type="Edm.Single" Nullable="false"> + <Annotation Term="Org.OData.Measures.V1.ISOCurrency" String="USD" /> + <Annotation Term="Org.OData.Measures.V1.Scale" Int="2" /> + </Property> + <Property Name="StartsAt" Type="Edm.DateTimeOffset" Nullable="false" /> + <Property Name="EndsAt" Type="Edm.DateTimeOffset" Nullable="false" /> + <Property Name="Tags" Type="Collection(Edm.String)" Nullable="false" /> + <NavigationProperty Name="Photos" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Photo)" /> + <NavigationProperty Name="PlanItems" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.PlanItem)" ContainsTarget="true" /> + </EntityType> + <Function Name="GetFavoriteAirline" IsBound="true" EntitySetPath="person/Trips/PlanItems/Microsoft.OData.SampleService.Models.TripPin.Flight/Airline" IsComposable="true"> + <Parameter Name="person" Type="Microsoft.OData.SampleService.Models.TripPin.Person" Nullable="false" /> + <ReturnType Type="Microsoft.OData.SampleService.Models.TripPin.Airline" Nullable="false" /> + </Function> + <Function Name="GetInvolvedPeople" IsBound="true" IsComposable="true"> + <Parameter Name="trip" Type="Microsoft.OData.SampleService.Models.TripPin.Trip" Nullable="false" /> + <ReturnType Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Person)" Nullable="false" /> + </Function> + <Function Name="GetFriendsTrips" IsBound="true" EntitySetPath="person/Friends/Trips" IsComposable="true"> + <Parameter Name="person" Type="Microsoft.OData.SampleService.Models.TripPin.Person" Nullable="false" /> + <Parameter Name="userName" Type="Edm.String" Nullable="false" /> + <ReturnType Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Trip)" Nullable="false" /> + </Function> + <Function Name="GetNearestAirport" IsComposable="true"> + <Parameter Name="lat" Type="Edm.Double" Nullable="false" /> + <Parameter Name="lon" Type="Edm.Double" Nullable="false" /> + <ReturnType Type="Microsoft.OData.SampleService.Models.TripPin.Airport" Nullable="false" /> + </Function> + <Action Name="ResetDataSource" /> + <Action Name="ShareTrip" IsBound="true"> + <Parameter Name="person" Type="Microsoft.OData.SampleService.Models.TripPin.Person" Nullable="false" /> + <Parameter Name="userName" Type="Edm.String" Nullable="false" /> + <Parameter Name="tripId" Type="Edm.Int32" Nullable="false" /> + </Action> + <EntityContainer Name="DefaultContainer"> + <EntitySet Name="Photos" EntityType="Microsoft.OData.SampleService.Models.TripPin.Photo"> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="Photos" /> + <Annotation Term="Org.OData.Capabilities.V1.SearchRestrictions"> + <Record> + <PropertyValue Property="Searchable" Bool="true" /> + <PropertyValue Property="UnsupportedExpressions"> + <EnumMember>Org.OData.Capabilities.V1.SearchExpressions/none</EnumMember> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.InsertRestrictions"> + <Record> + <PropertyValue Property="Insertable" Bool="true" /> + <PropertyValue Property="NonInsertableNavigationProperties"> + <Collection /> + </PropertyValue> + </Record> + </Annotation> + </EntitySet> + <EntitySet Name="People" EntityType="Microsoft.OData.SampleService.Models.TripPin.Person"> + <NavigationPropertyBinding Path="Friends" Target="People" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/Airline" Target="Airlines" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/From" Target="Airports" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/To" Target="Airports" /> + <NavigationPropertyBinding Path="Photo" Target="Photos" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Trip/Photos" Target="Photos" /> + <Annotation Term="Org.OData.Core.V1.OptimisticConcurrency"> + <Collection> + <PropertyPath>Concurrency</PropertyPath> + </Collection> + </Annotation> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="People" /> + <Annotation Term="Org.OData.Capabilities.V1.NavigationRestrictions"> + <Record> + <PropertyValue Property="Navigability"> + <EnumMember>Org.OData.Capabilities.V1.NavigationType/None</EnumMember> + </PropertyValue> + <PropertyValue Property="RestrictedProperties"> + <Collection> + <Record> + <PropertyValue Property="NavigationProperty" NavigationPropertyPath="Friends" /> + <PropertyValue Property="Navigability"> + <EnumMember>Org.OData.Capabilities.V1.NavigationType/Recursive</EnumMember> + </PropertyValue> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.SearchRestrictions"> + <Record> + <PropertyValue Property="Searchable" Bool="true" /> + <PropertyValue Property="UnsupportedExpressions"> + <EnumMember>Org.OData.Capabilities.V1.SearchExpressions/none</EnumMember> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.InsertRestrictions"> + <Record> + <PropertyValue Property="Insertable" Bool="true" /> + <PropertyValue Property="NonInsertableNavigationProperties"> + <Collection> + <NavigationPropertyPath>Trips</NavigationPropertyPath> + <NavigationPropertyPath>Friends</NavigationPropertyPath> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </EntitySet> + <EntitySet Name="Airlines" EntityType="Microsoft.OData.SampleService.Models.TripPin.Airline"> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="Airlines" /> + <Annotation Term="Org.OData.Capabilities.V1.SearchRestrictions"> + <Record> + <PropertyValue Property="Searchable" Bool="true" /> + <PropertyValue Property="UnsupportedExpressions"> + <EnumMember>Org.OData.Capabilities.V1.SearchExpressions/none</EnumMember> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.InsertRestrictions"> + <Record> + <PropertyValue Property="Insertable" Bool="true" /> + <PropertyValue Property="NonInsertableNavigationProperties"> + <Collection /> + </PropertyValue> + </Record> + </Annotation> + </EntitySet> + <EntitySet Name="Airports" EntityType="Microsoft.OData.SampleService.Models.TripPin.Airport"> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="Airports" /> + <Annotation Term="Org.OData.Capabilities.V1.SearchRestrictions"> + <Record> + <PropertyValue Property="Searchable" Bool="true" /> + <PropertyValue Property="UnsupportedExpressions"> + <EnumMember>Org.OData.Capabilities.V1.SearchExpressions/none</EnumMember> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.InsertRestrictions"> + <Record> + <PropertyValue Property="Insertable" Bool="false" /> + <PropertyValue Property="NonInsertableNavigationProperties"> + <Collection /> + </PropertyValue> + </Record> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.DeleteRestrictions"> + <Record> + <PropertyValue Property="Deletable" Bool="false" /> + <PropertyValue Property="NonDeletableNavigationProperties"> + <Collection /> + </PropertyValue> + </Record> + </Annotation> + </EntitySet> + <Singleton Name="Me" Type="Microsoft.OData.SampleService.Models.TripPin.Person"> + <NavigationPropertyBinding Path="Friends" Target="People" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/Airline" Target="Airlines" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/From" Target="Airports" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Flight/To" Target="Airports" /> + <NavigationPropertyBinding Path="Photo" Target="Photos" /> + <NavigationPropertyBinding Path="Microsoft.OData.SampleService.Models.TripPin.Trip/Photos" Target="Photos" /> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="Me" /> + </Singleton> + <FunctionImport Name="GetNearestAirport" Function="Microsoft.OData.SampleService.Models.TripPin.GetNearestAirport" EntitySet="Airports" IncludeInServiceDocument="true"> + <Annotation Term="Org.OData.Core.V1.ResourcePath" String="Microsoft.OData.SampleService.Models.TripPin.GetNearestAirport" /> + </FunctionImport> + <ActionImport Name="ResetDataSource" Action="Microsoft.OData.SampleService.Models.TripPin.ResetDataSource" /> + <Annotation Term="Org.OData.Core.V1.Description" String="TripPin service is a sample service for OData V4." /> + </EntityContainer> + <Annotations Target="Microsoft.OData.SampleService.Models.TripPin.DefaultContainer"> + <Annotation Term="Org.OData.Core.V1.DereferenceableIDs" Bool="true" /> + <Annotation Term="Org.OData.Core.V1.ConventionalIDs" Bool="true" /> + <Annotation Term="Org.OData.Capabilities.V1.ConformanceLevel"> + <EnumMember>Org.OData.Capabilities.V1.ConformanceLevelType/Advanced</EnumMember> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.SupportedFormats"> + <Collection> + <String>application/json;odata.metadata=full;IEEE754Compatible=false;odata.streaming=true</String> + <String>application/json;odata.metadata=minimal;IEEE754Compatible=false;odata.streaming=true</String> + <String>application/json;odata.metadata=none;IEEE754Compatible=false;odata.streaming=true</String> + </Collection> + </Annotation> + <Annotation Term="Org.OData.Capabilities.V1.AsynchronousRequestsSupported" Bool="true" /> + <Annotation Term="Org.OData.Capabilities.V1.BatchContinueOnErrorSupported" Bool="false" /> + <Annotation Term="Org.OData.Capabilities.V1.FilterFunctions"> + <Collection> + <String>contains</String> + <String>endswith</String> + <String>startswith</String> + <String>length</String> + <String>indexof</String> + <String>substring</String> + <String>tolower</String> + <String>toupper</String> + <String>trim</String> + <String>concat</String> + <String>year</String> + <String>month</String> + <String>day</String> + <String>hour</String> + <String>minute</String> + <String>second</String> + <String>round</String> + <String>floor</String> + <String>ceiling</String> + <String>cast</String> + <String>isof</String> + </Collection> + </Annotation> + </Annotations> + </Schema> + </edmx:DataServices> +</edmx:Edmx> \ No newline at end of file diff --git a/Simple.OData.Client.Tests/Resources/Twitter.edmx b/src/Simple.OData.Client.UnitTests/Resources/Twitter.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/Twitter.edmx rename to src/Simple.OData.Client.UnitTests/Resources/Twitter.edmx diff --git a/Simple.NExtLib.Tests/Resources/TwitterStatusesSample.txt b/src/Simple.OData.Client.UnitTests/Resources/TwitterStatusesSample.txt similarity index 100% rename from Simple.NExtLib.Tests/Resources/TwitterStatusesSample.txt rename to src/Simple.OData.Client.UnitTests/Resources/TwitterStatusesSample.txt diff --git a/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModel.xml b/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModel.xml new file mode 100644 index 000000000..9f4e92c02 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModel.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<entry xml:base="http://services.odata.org/WorkTask/WorkTask.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> + <id>http://services.odata.org/WorkTask/WorkTask.svc/WorkTaskModel(1410B0C6-68B0-4820-8310-FBD45DB6D71D)</id> + <title type="text" /> + <updated>2012-02-24T09:39:04Z</updated> + <author> + <name /> + </author> + <link rel="edit" title="Customer" href="Customers(1410B0C6-68B0-4820-8310-FBD45DB6D71D)" /> + <category term="QAS.Multiplatform.Demo.Models.WorkTaskModel" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <content type="application/xml"> + <m:properties> + <d:Id m:type="Edm.Guid">1410B0C6-68B0-4820-8310-FBD45DB6D71D</d:Id> + <d:Code>TaskCode</d:Code> + <d:StartDate m:type="Edm.DateTime">2014-01-01T01:02:03+00:00</d:StartDate> + <d:EndDate m:type="Edm.DateTime">2014-02-01T11:12:13+00:00</d:EndDate> + <d:State m:type="Edm.Guid">42260DE0-C714-417D-B2CA-13C4013ECDC0</d:State> + <d:Location m:type="QAS.Multiplatform.Demo.Models.GeoLocationModel"> + <d:Latitude m:type="Edm.Double">123.45</d:Latitude> + <d:Longitude m:type="Edm.Double">678.90</d:Longitude> + </d:Location> + <d:WorkerId m:type="Edm.Guid">E21D290C-4C9E-415F-9FD1-5473B88B504D</d:WorkerId> + <d:CustomerId m:type="Edm.Guid">DA4A36CC-3412-4608-B2E0-FD436521841F</d:CustomerId> + </m:properties> + </content> +</entry> diff --git a/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModelWithNulls.xml b/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModelWithNulls.xml new file mode 100644 index 000000000..089827723 --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Resources/WorkTaskModelWithNulls.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<entry xml:base="http://services.odata.org/WorkTask/WorkTask.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> + <id>http://services.odata.org/WorkTask/WorkTask.svc/WorkTaskModel(1410B0C6-68B0-4820-8310-FBD45DB6D71D)</id> + <title type="text" /> + <updated>2012-02-24T09:39:04Z</updated> + <author> + <name /> + </author> + <link rel="edit" title="Customer" href="Customers(1410B0C6-68B0-4820-8310-FBD45DB6D71D)" /> + <category term="QAS.Multiplatform.Demo.Models.WorkTaskModel" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> + <content type="application/xml"> + <m:properties> + <d:Id m:type="Edm.Guid">1410B0C6-68B0-4820-8310-FBD45DB6D71D</d:Id> + <d:Code></d:Code> + <d:StartDate m:type="Edm.DateTime">2014-01-01T01:02:03+00:00</d:StartDate> + <d:EndDate m:type="Edm.DateTime">2014-02-01T11:12:13+00:00</d:EndDate> + <d:State m:type="Edm.Guid">42260DE0-C714-417D-B2CA-13C4013ECDC0</d:State> + <d:Location m:type="QAS.Multiplatform.Demo.Models.GeoLocationModel"></d:Location> + <d:WorkerId m:type="Edm.Guid">E21D290C-4C9E-415F-9FD1-5473B88B504D</d:WorkerId> + <d:CustomerId m:type="Edm.Guid">DA4A36CC-3412-4608-B2E0-FD436521841F</d:CustomerId> + </m:properties> + </content> +</entry> diff --git a/Simple.NExtLib.Tests/Resources/XmlWithDefaultNamespace.txt b/src/Simple.OData.Client.UnitTests/Resources/XmlWithDefaultNamespace.txt similarity index 100% rename from Simple.NExtLib.Tests/Resources/XmlWithDefaultNamespace.txt rename to src/Simple.OData.Client.UnitTests/Resources/XmlWithDefaultNamespace.txt diff --git a/Simple.NExtLib.Tests/Resources/XmlWithNoNamespace.txt b/src/Simple.OData.Client.UnitTests/Resources/XmlWithNoNamespace.txt similarity index 100% rename from Simple.NExtLib.Tests/Resources/XmlWithNoNamespace.txt rename to src/Simple.OData.Client.UnitTests/Resources/XmlWithNoNamespace.txt diff --git a/Simple.NExtLib.Tests/Resources/XmlWithPrefixedNamespace.txt b/src/Simple.OData.Client.UnitTests/Resources/XmlWithPrefixedNamespace.txt similarity index 100% rename from Simple.NExtLib.Tests/Resources/XmlWithPrefixedNamespace.txt rename to src/Simple.OData.Client.UnitTests/Resources/XmlWithPrefixedNamespace.txt diff --git a/Simple.OData.Client.Tests/Resources/YouTube.edmx b/src/Simple.OData.Client.UnitTests/Resources/YouTube.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/YouTube.edmx rename to src/Simple.OData.Client.UnitTests/Resources/YouTube.edmx diff --git a/Simple.OData.Client.Tests/Resources/iPhone.edmx b/src/Simple.OData.Client.UnitTests/Resources/iPhone.edmx similarity index 100% rename from Simple.OData.Client.Tests/Resources/iPhone.edmx rename to src/Simple.OData.Client.UnitTests/Resources/iPhone.edmx diff --git a/src/Simple.OData.Client.UnitTests/Simple.OData.Client.UnitTests.csproj b/src/Simple.OData.Client.UnitTests/Simple.OData.Client.UnitTests.csproj new file mode 100644 index 000000000..91d96723d --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/Simple.OData.Client.UnitTests.csproj @@ -0,0 +1,203 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net6.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>Simple.OData.Client.Tests</RootNamespace> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Prefer32Bit>false</Prefer32Bit> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Prefer32Bit>false</Prefer32Bit> + </PropertyGroup> + <ItemGroup> + <None Remove="Resources\AccountTasksAndLink.json" /> + <None Remove="Resources\AccountTasksOnlyLink.json" /> + <None Remove="Resources\ActionWithDerivedType.xml" /> + <None Remove="Resources\ActionWithEnum.xml" /> + <None Remove="Resources\ArrayOfNested.edmx" /> + <None Remove="Resources\Artifacts.edmx" /> + <None Remove="Resources\ClientProductSku.xml" /> + <None Remove="Resources\Colors.edmx" /> + <None Remove="Resources\DynamicsCRM.xml" /> + <None Remove="Resources\ExampleActionComplexType.json" /> + <None Remove="Resources\Facebook.edmx" /> + <None Remove="Resources\Flickr.edmx" /> + <None Remove="Resources\GoogleMaps.edmx" /> + <None Remove="Resources\Insight.edmx" /> + <None Remove="Resources\iPhone.edmx" /> + <None Remove="Resources\KeyDemo.xml" /> + <None Remove="Resources\Marathon.edmx" /> + <None Remove="Resources\MultipleCategoriesWithProducts.xml" /> + <None Remove="Resources\MultipleProducts.xml" /> + <None Remove="Resources\MultipleProductsWithCategory.xml" /> + <None Remove="Resources\Nested.edmx" /> + <None Remove="Resources\Northwind.xml" /> + <None Remove="Resources\Northwind3.xml" /> + <None Remove="Resources\Northwind4.xml" /> + <None Remove="Resources\Northwind4WithAlternateKeys.xml" /> + <None Remove="Resources\OpenTypes.xml" /> + <None Remove="Resources\OpenTypeV401.json" /> + <None Remove="Resources\QAS.Multiplatform.Demo.edmx" /> + <None Remove="Resources\Russian.xml" /> + <None Remove="Resources\SingleCategoryWithProducts.xml" /> + <None Remove="Resources\SingleCustomerWithAddress.xml" /> + <None Remove="Resources\SingleProduct.xml" /> + <None Remove="Resources\SingleProductWithCategory.xml" /> + <None Remove="Resources\SingleProductWithCollectionOfComplexProperties.xml" /> + <None Remove="Resources\SingleProductWithCollectionOfPrimitiveProperties.xml" /> + <None Remove="Resources\SingleProductWithComplexProperty.xml" /> + <None Remove="Resources\SingleProductWithEmptyCollectionOfComplexProperties.xml" /> + <None Remove="Resources\TripPin.xml" /> + <None Remove="Resources\Twitter.edmx" /> + <None Remove="Resources\TwitterStatusesSample.txt" /> + <None Remove="Resources\WorkTaskModel.xml" /> + <None Remove="Resources\WorkTaskModelWithNulls.xml" /> + <None Remove="Resources\XmlWithDefaultNamespace.txt" /> + <None Remove="Resources\XmlWithNoNamespace.txt" /> + <None Remove="Resources\XmlWithPrefixedNamespace.txt" /> + <None Remove="Resources\YouTube.edmx" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> + <PackageReference Include="Microsoft.Net.Test.Sdk" Version="17.0.0" /> + <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> + <PackageReference Include="xunit" Version="2.4.1" /> + <PackageReference Include="Moq" Version="4.16.1" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config"> + <SubType>Designer</SubType> + </None> + </ItemGroup> + <ItemGroup> + <None Include="App.config"> + <SubType>Designer</SubType> + </None> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Resources\AccountTasksAndLink.json" /> + <EmbeddedResource Include="Resources\AccountTasksOnlyLink.json" /> + <EmbeddedResource Include="Resources\ActionWithDerivedType.xml" /> + <EmbeddedResource Include="Resources\ActionWithEnum.xml" /> + <EmbeddedResource Include="Resources\ArrayOfNested.edmx" /> + <EmbeddedResource Include="Resources\Artifacts.edmx" /> + <EmbeddedResource Include="Resources\ClientProductSku.xml" /> + <EmbeddedResource Include="Resources\Colors.edmx" /> + <EmbeddedResource Include="Resources\DynamicsCRM.xml" /> + <EmbeddedResource Include="Resources\Northwind4WithAlternateKeys.xml" /> + <EmbeddedResource Include="Resources\OpenTypes.xml" /> + <EmbeddedResource Include="Resources\OpenTypeV401.json" /> + <EmbeddedResource Include="Resources\ExampleActionComplexType.json" /> + <EmbeddedResource Include="Resources\Facebook.edmx" /> + <EmbeddedResource Include="Resources\Flickr.edmx" /> + <EmbeddedResource Include="Resources\GoogleMaps.edmx" /> + <EmbeddedResource Include="Resources\Insight.edmx" /> + <EmbeddedResource Include="Resources\iPhone.edmx" /> + <EmbeddedResource Include="Resources\Marathon.edmx" /> + <EmbeddedResource Include="Resources\MultipleCategoriesWithProducts.xml" /> + <EmbeddedResource Include="Resources\MultipleProducts.xml" /> + <EmbeddedResource Include="Resources\MultipleProductsWithCategory.xml" /> + <EmbeddedResource Include="Resources\Nested.edmx" /> + <EmbeddedResource Include="Resources\Northwind.xml" /> + <EmbeddedResource Include="Resources\Northwind3.xml" /> + <EmbeddedResource Include="Resources\Northwind4.xml" /> + <EmbeddedResource Include="Resources\QAS.Multiplatform.Demo.edmx" /> + <EmbeddedResource Include="Resources\Russian.xml" /> + <EmbeddedResource Include="Resources\SingleCategoryWithProducts.xml" /> + <EmbeddedResource Include="Resources\SingleCustomerWithAddress.xml" /> + <EmbeddedResource Include="Resources\SingleProduct.xml" /> + <EmbeddedResource Include="Resources\SingleProductWithCategory.xml" /> + <EmbeddedResource Include="Resources\SingleProductWithCollectionOfComplexProperties.xml" /> + <EmbeddedResource Include="Resources\SingleProductWithCollectionOfPrimitiveProperties.xml" /> + <EmbeddedResource Include="Resources\SingleProductWithComplexProperty.xml" /> + <EmbeddedResource Include="Resources\SingleProductWithEmptyCollectionOfComplexProperties.xml" /> + <EmbeddedResource Include="Resources\KeyDemo.xml" /> + <EmbeddedResource Include="Resources\TripPin.xml" /> + <EmbeddedResource Include="Resources\Twitter.edmx" /> + <EmbeddedResource Include="Resources\TwitterStatusesSample.txt" /> + <EmbeddedResource Include="Resources\WorkTaskModel.xml" /> + <EmbeddedResource Include="Resources\WorkTaskModelWithNulls.xml" /> + <EmbeddedResource Include="Resources\XmlWithDefaultNamespace.txt" /> + <EmbeddedResource Include="Resources\XmlWithNoNamespace.txt" /> + <EmbeddedResource Include="Resources\XmlWithPrefixedNamespace.txt" /> + <EmbeddedResource Include="Resources\YouTube.edmx" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Simple.OData.Client.Dynamic\Simple.OData.Client.Dynamic.csproj" /> + <ProjectReference Include="..\Simple.OData.Client.V3.Adapter\Simple.OData.Client.V3.Adapter.csproj" /> + <ProjectReference Include="..\Simple.OData.Client.V4.Adapter\Simple.OData.Client.V4.Adapter.csproj" /> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <ProjectReference Include="..\Simple.OData.NorthwindModel\Simple.OData.NorthwindModel.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <ProjectReference Include="..\Simple.OData.NorthwindModel\Simple.OData.NorthwindModel.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <Reference Include="System.ServiceModel" /> + <Reference Include="System.ServiceModel.Web" /> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <Reference Include="System.ServiceModel" /> + <Reference Include="System.ServiceModel.Web" /> + </ItemGroup> + <ItemGroup> + <None Update="MockData\BatchDynamicTests.AllFailures.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.InsertSingleEntityWithMultipleAssociationsSingleBatch.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.InsertSingleEntityWithSingleAssociationSingleBatch.txt"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.InsertUpdateDeleteSeparateBatches.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.MultipleUpdatesSingleBatch.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.PartialFailures.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.Success.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.SuccessWithResults.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Update="MockData\BatchDynamicTests.UpdateDeleteSingleBatch.txt"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + </ItemGroup> + <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'"> + <PackageReference Include="BenchmarkDotNet" Version="0.10.14"> + </PackageReference> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/Simple.OData.Client.UnitTests/TestBase.cs b/src/Simple.OData.Client.UnitTests/TestBase.cs new file mode 100644 index 000000000..169614c8b --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/TestBase.cs @@ -0,0 +1,103 @@ +using System; +using System.Linq; +using System.Threading.Tasks; + +using Xunit; +#if NET461 && !MOCK_HTTP +using Simple.OData.NorthwindModel; +#endif + +namespace Simple.OData.Client.Tests; + +public class TestBase : IDisposable +{ + protected Uri _serviceUri; +#if NET461 && !MOCK_HTTP + protected TestService _service; +#endif + protected IODataClient _client; + protected readonly bool _readOnlyTests; + + protected TestBase(bool readOnlyTests = false) + { + _readOnlyTests = readOnlyTests; +#if NET461 && !MOCK_HTTP + _service = new TestService(typeof(NorthwindService)); + _serviceUri = _service.ServiceUri; +#else + _serviceUri = new Uri("http://localhost/"); +#endif + _client = new ODataClient(CreateDefaultSettings()); + } + + /* Original Northwind database + * protected const int ExpectedCountOfProducts = 77; + * protected const int ExpectedCountOfBeveragesProducts = 12; + * protected const int ExpectedCountOfCondimentsProducts = 12; + * protected const int ExpectedCountOfOrdersHavingAnyDetail = 160; + * protected const int ExpectedCountOfOrdersHavingAllDetails = 11; + * protected const int ExpectedCountOfProductsWithOrdersHavingAnyDetail = 160; + * protected const int ExpectedCountOfProductsWithOrdersHavingAllDetails = 11; + */ + + protected const int ExpectedCountOfProducts = 22; + protected const int ExpectedCountOfBeveragesProducts = 2; + protected const int ExpectedCountOfCondimentsProducts = 7; + protected const int ExpectedCountOfOrdersHavingAnyDetail = 5; + protected const int ExpectedCountOfOrdersHavingAllDetails = 6; + protected const int ExpectedCountOfProductsWithOrdersHavingAnyDetail = 5; + protected const int ExpectedCountOfProductsWithOrdersHavingAllDetails = 6; + + protected ODataClientSettings CreateDefaultSettings() + { + return new ODataClientSettings + { + BaseUri = _serviceUri, + MetadataDocument = GetMetadataDocument(), + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + }; + } + + public void Dispose() + { +#if NET461 && !MOCK_HTTP + if (_client != null && !_readOnlyTests) + { + DeleteTestData().Wait(); + } + + if (_service != null) + { + _service.Dispose(); + _service = null; + } +#endif + GC.SuppressFinalize(this); + } + + private static string GetMetadataDocument() + { +#if MOCK_HTTP + return MetadataResolver.GetMetadataDocument("Northwind.xml"); +#else + return null; +#endif + } + + public async static Task AssertThrowsAsync<T>(Func<Task> testCode) where T : Exception + { + try + { + await testCode(); + throw new Exception($"Expected exception: {typeof(T)}"); + } + catch (T) + { + } + catch (AggregateException exception) + { + var innerException = exception.InnerExceptions.Single(); + Assert.IsType<T>(innerException); + } + } +} diff --git a/src/Simple.OData.Client.UnitTests/TestService.cs b/src/Simple.OData.Client.UnitTests/TestService.cs new file mode 100644 index 000000000..b4d0b0caa --- /dev/null +++ b/src/Simple.OData.Client.UnitTests/TestService.cs @@ -0,0 +1,6 @@ +#if NET461 && !MOCK_HTTP +using System.ServiceModel.Web; +#endif + + +namespace Simple.OData.Client.Tests; diff --git a/src/Simple.OData.Client.V3.Adapter/BatchWriter.cs b/src/Simple.OData.Client.V3.Adapter/BatchWriter.cs new file mode 100644 index 000000000..22fbc9a36 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/BatchWriter.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading.Tasks; +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter; + +public class BatchWriter : BatchWriterBase +{ + private ODataBatchWriter _batchWriter; + private ODataRequestMessage _requestMessage; + private ODataMessageWriter _messageWriter; + + public BatchWriter(ISession session, IDictionary<object, IDictionary<string, object>> batchEntries) + : base(session, batchEntries) + { + } + + public async override Task StartBatchAsync() + { + _requestMessage = new ODataRequestMessage() { Url = _session.Settings.BaseUri }; + _messageWriter = new ODataMessageWriter(_requestMessage); + _batchWriter = await _messageWriter.CreateODataBatchWriterAsync().ConfigureAwait(false); + await _batchWriter.WriteStartBatchAsync().ConfigureAwait(false); + HasOperations = true; + } + + public async override Task<HttpRequestMessage> EndBatchAsync() + { + if (_pendingChangeSet) + { + await _batchWriter.WriteEndChangesetAsync().ConfigureAwait(false); + } + + await _batchWriter.WriteEndBatchAsync().ConfigureAwait(false); + var stream = await _requestMessage.GetStreamAsync().ConfigureAwait(false); + return CreateMessageFromStream(stream, _requestMessage.Url, _requestMessage.GetHeader); + } + + protected async override Task StartChangesetAsync() + { + if (_batchWriter == null) + { + await StartBatchAsync().ConfigureAwait(false); + } + + await _batchWriter.WriteStartChangesetAsync().ConfigureAwait(false); + } + + protected override Task EndChangesetAsync() + { + return _batchWriter.WriteEndChangesetAsync(); + } + + protected async override Task<object> CreateOperationMessageAsync(Uri uri, string method, string collection, string contentId, bool resultRequired) + { + if (_batchWriter == null) + { + await StartBatchAsync().ConfigureAwait(false); + } + + return await CreateBatchOperationMessageAsync(uri, method, collection, contentId, resultRequired).ConfigureAwait(false); + } + + private async Task<ODataBatchOperationRequestMessage> CreateBatchOperationMessageAsync( + Uri uri, string method, string collection, string contentId, bool resultRequired) + { + var message = await _batchWriter.CreateOperationRequestMessageAsync(method, uri).ConfigureAwait(false); + + if (method != RestVerbs.Get && method != RestVerbs.Delete) + { + message.SetHeader(HttpLiteral.ContentId, contentId); + } + + if (method == RestVerbs.Post || method == RestVerbs.Put || method == RestVerbs.Patch || method == RestVerbs.Merge) + { + message.SetHeader(HttpLiteral.Prefer, resultRequired ? HttpLiteral.ReturnContent : HttpLiteral.ReturnNoContent); + } + + if (collection != null && _session.Metadata.EntityCollectionRequiresOptimisticConcurrencyCheck(collection) && + (method == RestVerbs.Put || method == RestVerbs.Patch || method == RestVerbs.Merge || method == RestVerbs.Delete)) + { + message.SetHeader(HttpLiteral.IfMatch, EntityTagHeaderValue.Any.Tag); + } + + return message; + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/CommandFormatter.cs b/src/Simple.OData.Client.V3.Adapter/CommandFormatter.cs new file mode 100644 index 000000000..15303c143 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/CommandFormatter.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.Data.OData; +using Microsoft.Data.OData.Query; + +namespace Simple.OData.Client.V3.Adapter; + +public class CommandFormatter : CommandFormatterBase +{ + public CommandFormatter(ISession session) + : base(session) + { + } + + public override FunctionFormat FunctionFormat => FunctionFormat.Query; + + public override string ConvertValueToUriLiteral(object value, bool escapeDataString) + { + if (value != null && _session.TypeCache.IsEnumType(value.GetType())) + { + value = Convert.ToInt32(value); + } + + if (value is ODataExpression expression) + { + return expression.AsString(_session); + } + + var odataVersion = (ODataVersion)Enum.Parse(typeof(ODataVersion), _session.Adapter.GetODataVersionString(), false); + string ConvertValue(object x) => ODataUriUtils.ConvertToUriLiteral(x, odataVersion, (_session.Adapter as ODataAdapter).Model); + + return escapeDataString + ? Uri.EscapeDataString(ConvertValue(value)) + : ConvertValue(value); + } + + protected override void FormatExpandSelectOrderby(IList<string> commandClauses, EntityCollection resultCollection, ResolvedCommand command) + { + var expandAssociations = FlatExpandAssociations(command.Details.ExpandAssociations).ToList(); + FormatClause(commandClauses, resultCollection, expandAssociations, ODataLiteral.Expand, FormatExpandItem); + FormatClause(commandClauses, resultCollection, command.Details.SelectColumns, ODataLiteral.Select, FormatSelectItem); + FormatClause(commandClauses, resultCollection, command.Details.OrderbyColumns, ODataLiteral.OrderBy, FormatOrderByItem); + } + + protected override void FormatInlineCount(IList<string> commandClauses) + { + commandClauses.Add($"{ODataLiteral.InlineCount}={ODataLiteral.AllPages}"); + } + + protected override void FormatExtensions(IList<string> commandClauses, ResolvedCommand command) + { + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/EdmDeltaModel.cs b/src/Simple.OData.Client.V3.Adapter/EdmDeltaModel.cs new file mode 100644 index 000000000..7a25fbe49 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/EdmDeltaModel.cs @@ -0,0 +1,77 @@ +using System.Collections.Generic; +using Microsoft.Data.Edm; +using Microsoft.Data.Edm.Annotations; +using Microsoft.Data.Edm.Library; + +namespace Simple.OData.Client.V3.Adapter; + +internal class EdmDeltaModel : IEdmModel +{ + private readonly IEdmModel _source; + private readonly EdmEntityType _entityType; + + public EdmDeltaModel(IEdmModel source, IEdmEntityType entityType, ICollection<string> propertyNames) + { + _source = source; + _entityType = new EdmEntityType(entityType.Namespace, entityType.Name, null, entityType.IsAbstract, entityType.IsOpen); + + foreach (var property in entityType.StructuralProperties()) + { + if (propertyNames.Contains(property.Name)) + { + _entityType.AddStructuralProperty(property.Name, property.Type, property.DefaultValueString, property.ConcurrencyMode); + } + } + + foreach (var property in entityType.NavigationProperties()) + { + if (propertyNames.Contains(property.Name)) + { + var navInfo = new EdmNavigationPropertyInfo() + { + ContainsTarget = property.ContainsTarget, + DependentProperties = property.DependentProperties, + Name = property.Name, + OnDelete = property.OnDelete, + Target = property.Partner != null + ? property.Partner.DeclaringEntityType() + : property.Type.TypeKind() == EdmTypeKind.Collection + ? (property.Type.Definition as IEdmCollectionType).ElementType.Definition as IEdmEntityType + : property.Type.TypeKind() == EdmTypeKind.Entity + ? property.Type.Definition as IEdmEntityType + : null, + TargetMultiplicity = property.Partner != null + ? property.Partner.Multiplicity() + : property.Type.TypeKind() == EdmTypeKind.Collection + ? EdmMultiplicity.Many + : property.Type.TypeKind() == EdmTypeKind.Entity + ? EdmMultiplicity.ZeroOrOne + : EdmMultiplicity.Unknown, + }; + _entityType.AddUnidirectionalNavigation(navInfo); + } + } + } + + public IEdmSchemaType FindDeclaredType(string qualifiedName) + { + if (qualifiedName == _entityType.FullName()) + { + return _entityType; + } + else + { + return _source.FindDeclaredType(qualifiedName); + } + } + + public IEdmEntityContainer FindDeclaredEntityContainer(string name) { return _source.FindDeclaredEntityContainer(name); } + public IEnumerable<IEdmFunction> FindDeclaredFunctions(string qualifiedName) { return _source.FindDeclaredFunctions(qualifiedName); } + public IEdmValueTerm FindDeclaredValueTerm(string qualifiedName) { return _source.FindDeclaredValueTerm(qualifiedName); } + public IEnumerable<IEdmVocabularyAnnotation> FindDeclaredVocabularyAnnotations(IEdmVocabularyAnnotatable element) { return _source.FindDeclaredVocabularyAnnotations(element); } + public IEnumerable<IEdmStructuredType> FindDirectlyDerivedTypes(IEdmStructuredType baseType) { return _source.FindDirectlyDerivedTypes(baseType); } + public IEnumerable<IEdmSchemaElement> SchemaElements => _source.SchemaElements; + public IEnumerable<IEdmVocabularyAnnotation> VocabularyAnnotations => _source.VocabularyAnnotations; + public IEnumerable<IEdmModel> ReferencedModels => _source.ReferencedModels; + public IEdmDirectValueAnnotationsManager DirectValueAnnotationsManager => _source.DirectValueAnnotationsManager; +} diff --git a/src/Simple.OData.Client.V3.Adapter/Metadata.cs b/src/Simple.OData.Client.V3.Adapter/Metadata.cs new file mode 100644 index 000000000..6b79e93fe --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/Metadata.cs @@ -0,0 +1,447 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Microsoft.Data.Edm; +using Microsoft.Data.Edm.Library.Values; + +namespace Simple.OData.Client.V3.Adapter +{ + public class Metadata : MetadataBase + { + private readonly IEdmModel _model; + + public Metadata(IEdmModel model, INameMatchResolver nameMatchResolver, bool ignoreUnmappedProperties, bool unqualifiedNameCall) : base(nameMatchResolver, ignoreUnmappedProperties, unqualifiedNameCall) + { + _model = model; + } + + public override string GetEntityCollectionExactName(string collectionName) + { + if (TryGetEntitySet(collectionName, out var entitySet)) + { + return entitySet.Name; + } + else if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(collectionName, $"Entity collection [{collectionName}] not found"); + } + + public override bool EntityCollectionRequiresOptimisticConcurrencyCheck(string collectionName) + { + return GetEntityType(collectionName).StructuralProperties() + .Any(x => x.ConcurrencyMode == EdmConcurrencyMode.Fixed); + } + + public override string GetDerivedEntityTypeExactName(string collectionName, string entityTypeName) + { + IEdmEntityType entityType; + if (TryGetEntitySet(collectionName, out var entitySet)) + { + entityType = (_model.FindAllDerivedTypes(entitySet.ElementType) + .BestMatch(x => (x as IEdmEntityType).Name, entityTypeName, NameMatchResolver) as IEdmEntityType); + if (entityType != null) + { + return entityType.Name; + } + } + else if (TryGetEntityType(entityTypeName, out entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(entityTypeName, $"Entity type [{entityTypeName}] not found"); + } + + public override string GetEntityTypeExactName(string collectionName) + { + var entityType = GetEntityTypes().BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (entityType != null) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(collectionName, $"Entity type [{collectionName}] not found"); + } + + public override string GetLinkedCollectionName(string instanceTypeName, string typeName, out bool isSingleton) + { + isSingleton = false; + + if (TryGetEntitySet(instanceTypeName, out var entitySet)) + { + return entitySet.Name; + } + + if (TryGetEntitySet(typeName, out entitySet)) + { + return entitySet.Name; + } + + if (TryGetEntityType(instanceTypeName, out var entityType)) + { + return entityType.Name; + } + + if (TryGetEntityType(typeName, out entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(typeName, $"Linked collection for type [{typeName}] not found"); + } + + public override string GetQualifiedTypeName(string typeName) + { + if (TryGetEntityType(typeName, out var entityType)) + { + return string.Join(".", entityType.Namespace, entityType.Name); + } + + if (TryGetComplexType(typeName, out var complexType)) + { + return string.Join(".", complexType.Namespace, complexType.Name); + } + + if (TryGetEnumType(typeName, out var enumType)) + { + return string.Join(".", enumType.Namespace, enumType.Name); + } + + throw new UnresolvableObjectException(typeName, $"Type [{typeName}] not found"); + } + + public override bool IsOpenType(string collectionName) + { + return GetEntityType(collectionName).IsOpen; + } + + public override bool IsTypeWithId(string collectionName) + { + if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType.DeclaredKey != null; + } + else + { + return false; + } + } + + public override IEnumerable<string> GetStructuralPropertyNames(string collectionName) + { + return GetEntityType(collectionName).StructuralProperties().Select(x => x.Name); + } + + public override bool HasStructuralProperty(string collectionName, string propertyName) + { + return GetEntityType(collectionName).StructuralProperties().Any(x => NameMatchResolver.IsMatch(x.Name, propertyName)); + } + + public override string GetStructuralPropertyExactName(string collectionName, string propertyName) + { + return GetStructuralProperty(collectionName, propertyName).Name; + } + + public override string GetStructuralPropertyPath(string collectionName, params string[] propertyNames) + { + if (propertyNames == null || propertyNames.Length == 0) + { + throw new ArgumentNullException(nameof(propertyNames)); + } + + var property = GetStructuralProperty(collectionName, propertyNames[0]); + var exactNames = new List<string> { property.Name }; + + for (var i = 1; i < propertyNames.Length; i++) + { + var entityType = GetComplexType(property.Type.FullName()); + property = GetStructuralProperty(entityType, propertyNames[i]); + exactNames.Add(property.Name); + + if (property.Type.IsPrimitive()) + { + break; + } + } + + return string.Join("/", exactNames.ToArray()); + } + + public override bool HasNavigationProperty(string collectionName, string propertyName) + { + return GetEntityType(collectionName).NavigationProperties().Any(x => NameMatchResolver.IsMatch(x.Name, propertyName)); + } + + public override string GetNavigationPropertyExactName(string collectionName, string propertyName) + { + return GetNavigationProperty(collectionName, propertyName).Name; + } + + public override string GetNavigationPropertyPartnerTypeName(string collectionName, string propertyName) + { + var navigationProperty = GetNavigationProperty(collectionName, propertyName); + if (!TryGetEntityType(navigationProperty.Type, out var entityType)) + { + throw new UnresolvableObjectException(propertyName, $"No association found for [{propertyName}]."); + } + + return entityType.Name; + } + + public override bool IsNavigationPropertyCollection(string collectionName, string propertyName) + { + var property = GetNavigationProperty(collectionName, propertyName); + return property.Type.Definition.TypeKind == EdmTypeKind.Collection; + } + + public override IEnumerable<string> GetDeclaredKeyPropertyNames(string collectionName) + { + var entityType = GetEntityType(collectionName); + while (entityType.DeclaredKey == null && entityType.BaseEntityType() != null) + { + entityType = entityType.BaseEntityType(); + } + + if (entityType.DeclaredKey == null) + { + return Array.Empty<string>(); + } + + return entityType.DeclaredKey.Select(x => x.Name); + } + + public override IEnumerable<string> GetNavigationPropertyNames(string collectionName) + { + return GetEntityType(collectionName).NavigationProperties().Select(x => x.Name); + } + + /// <summary> + /// Gets a collection of key name collections that represent the alternate keys of the given entity. + /// As alternate keys are not supported on V3, this method will always return an empty enumeration. + /// </summary> + /// <param name="collectionName">The collection name of the entity</param> + /// <returns>An empty enumeration of string enumerations representing the key names</returns> + public override IEnumerable<IEnumerable<string>> GetAlternateKeyPropertyNames(string collectionName) + { + return Enumerable.Empty<IEnumerable<string>>(); + } + + public override string GetFunctionFullName(string functionName) + { + var function = GetFunction(functionName); + return function.Name; + } + + public override EntityCollection GetFunctionReturnCollection(string functionName) + { + var function = GetFunction(functionName); + + if (function.ReturnType == null) + { + return null; + } + + return !TryGetEntityType(function.ReturnType, out var entityType) ? null : new EntityCollection(entityType.Name); + } + + public override string GetFunctionVerb(string functionName) + { + var function = GetFunction(functionName); + var annotation = _model.GetAnnotationValue(function, ODataNamespace.Metadata, "HttpMethod"); + return annotation is EdmStringConstant constant ? constant.Value : RestVerbs.Get; + } + + public override string GetActionFullName(string actionName) + { + return GetFunctionFullName(actionName); + } + + public override EntityCollection GetActionReturnCollection(string actionName) + { + return GetFunctionReturnCollection(actionName); + } + + private IEnumerable<IEdmEntitySet> GetEntitySets() + { + return _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).EntitySets()); + } + + private bool TryGetEntitySet(string entitySetName, out IEdmEntitySet entitySet) + { + if (entitySetName.Contains("/")) + { + entitySetName = entitySetName.Split('/').First(); + } + + entitySet = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).EntitySets()) + .BestMatch(x => x.Name, entitySetName, NameMatchResolver); + + return entitySet != null; + } + + private IEnumerable<IEdmEntityType> GetEntityTypes() + { + return _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Entity) + .Select(x => x as IEdmEntityType); + } + + private IEdmEntityType GetEntityType(string collectionName) + { + if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType; + } + + throw new UnresolvableObjectException(collectionName, $"Entity type [{collectionName}] not found"); + } + + private bool TryGetEntityType(string collectionName, out IEdmEntityType entityType) + { + entityType = null; + if (collectionName.Contains("/")) + { + var segments = GetCollectionPathSegments(collectionName); + + if (SegmentsIncludeTypeSpecification(segments)) + { + var derivedTypeName = segments.Last(); + var derivedType = GetEntityTypes().SingleOrDefault(x => x.FullName() == derivedTypeName); + if (derivedType != null) + { + entityType = derivedType; + return true; + } + } + else + { + var collection = NavigateToCollection(collectionName); + entityType = GetEntityTypes().SingleOrDefault(x => x.Name == collection.Name); + if (entityType != null) + { + return true; + } + } + } + else + { + var entitySet = GetEntitySets().BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (entitySet != null) + { + entityType = entitySet.ElementType; + return true; + } + + var derivedType = GetEntityTypes().BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (derivedType != null) + { + var baseType = GetEntityTypes() + .SingleOrDefault(x => _model.FindDirectlyDerivedTypes(x).Contains(derivedType)); + if (baseType != null && GetEntitySets().Any(x => x.ElementType == baseType)) + { + entityType = derivedType; + return true; + } + // Check if we can return it anyway + entityType = derivedType; + return true; + } + } + + return false; + } + + private bool TryGetEntityType(IEdmTypeReference typeReference, out IEdmEntityType entityType) + { + entityType = typeReference.Definition.TypeKind == EdmTypeKind.Collection + ? (typeReference.Definition as IEdmCollectionType).ElementType.Definition as IEdmEntityType + : typeReference.Definition.TypeKind == EdmTypeKind.Entity + ? typeReference.Definition as IEdmEntityType + : null; + return entityType != null; + } + + private IEdmComplexType GetComplexType(string typeName) + { + if (TryGetComplexType(typeName, out var complexType)) + { + return complexType; + } + + throw new UnresolvableObjectException(typeName, $"ComplexType [{typeName}] not found"); + } + + private bool TryGetComplexType(string typeName, out IEdmComplexType complexType) + { + complexType = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Complex) + .Select(x => x as IEdmComplexType) + .BestMatch(x => x.Name, typeName, NameMatchResolver); + + return complexType != null; + } + + private bool TryGetEnumType(string typeName, out IEdmEnumType enumType) + { + enumType = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Enum) + .Select(x => x as IEdmEnumType) + .BestMatch(x => x.Name, typeName, NameMatchResolver); + + return enumType != null; + } + + private IEdmStructuralProperty GetStructuralProperty(string entitySetName, string propertyName) + { + var edmType = GetEntityType(entitySetName); + return GetStructuralProperty(edmType, propertyName); + } + + private IEdmStructuralProperty GetStructuralProperty(IEdmStructuredType edmType, string propertyName) + { + var property = edmType.StructuralProperties().BestMatch(x => x.Name, propertyName, NameMatchResolver); + + if (property == null) + { + throw new UnresolvableObjectException(propertyName, $"Structural property [{propertyName}] not found"); + } + + return property; + } + + private IEdmNavigationProperty GetNavigationProperty(string entitySetName, string propertyName) + { + var property = GetEntityType(entitySetName).NavigationProperties().BestMatch(x => x.Name, propertyName, NameMatchResolver); + + if (property == null) + { + throw new UnresolvableObjectException(propertyName, $"Navigation property [{propertyName}] not found"); + } + + return property; + } + + private IEdmFunctionImport GetFunction(string functionName) + { + var function = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).FunctionImports()) + .BestMatch(x => x.Name, functionName, NameMatchResolver); + + if (function == null) + { + throw new UnresolvableObjectException(functionName, $"Function [{functionName}] not found"); + } + + return function; + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V3.Adapter/ODataAdapter.cs b/src/Simple.OData.Client.V3.Adapter/ODataAdapter.cs new file mode 100644 index 000000000..ec40c2d74 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ODataAdapter.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Spatial; + +using Microsoft.Data.Edm; + +using Simple.OData.Client.Adapter; + +namespace Simple.OData.Client.V3.Adapter; + +public class ODataAdapter : ODataAdapterBase +{ + private readonly ISession _session; + private IMetadata _metadata; + + public override AdapterVersion AdapterVersion => AdapterVersion.V3; + + public override ODataPayloadFormat DefaultPayloadFormat => ODataPayloadFormat.Atom; + + public ODataAdapter(ISession session, IODataModelAdapter modelAdapter) + { + _session = session; + ProtocolVersion = modelAdapter.ProtocolVersion; + Model = modelAdapter.Model as IEdmModel; + + session.TypeCache.Converter.RegisterTypeConverter(typeof(GeographyPoint), TypeConverters.CreateGeographyPoint); + session.TypeCache.Converter.RegisterTypeConverter(typeof(GeometryPoint), TypeConverters.CreateGeometryPoint); + session.TypeCache.Converter.RegisterTypeConverter(typeof(DateTime), TypeConverters.ConvertToEdmDate); + session.TypeCache.Converter.RegisterTypeConverter(typeof(DateTimeOffset), TypeConverters.ConvertToEdmDate); + } + + public new IEdmModel Model + { + get => base.Model as IEdmModel; + set + { + base.Model = value; + // Ensure we replace the cache on change of model + _metadata = null; + } + } + + public override string GetODataVersionString() + { + return ProtocolVersion switch + { + ODataProtocolVersion.V1 => "V1", + ODataProtocolVersion.V2 => "V2", + ODataProtocolVersion.V3 => "V3", + _ => throw new InvalidOperationException($"Unsupported OData protocol version: \"{ProtocolVersion}\""), + }; + } + + public override IMetadata GetMetadata() + { + // TODO: Should use a MetadataFactory here + return _metadata ??= new MetadataCache(new Metadata(Model, _session.Settings.NameMatchResolver, _session.Settings.IgnoreUnmappedProperties, _session.Settings.UnqualifiedNameCall)); + } + + public override ICommandFormatter GetCommandFormatter() + { + return new CommandFormatter(_session); + } + + public override IResponseReader GetResponseReader() + { + return new ResponseReader(_session, Model); + } + + public override IRequestWriter GetRequestWriter(Lazy<IBatchWriter> deferredBatchWriter) + { + return new RequestWriter(_session, Model, deferredBatchWriter); + } + + public override IBatchWriter GetBatchWriter(IDictionary<object, IDictionary<string, object>> batchEntries) + { + return new BatchWriter(_session, batchEntries); + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/ODataExtensions.cs b/src/Simple.OData.Client.V3.Adapter/ODataExtensions.cs new file mode 100644 index 000000000..c34eaee09 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ODataExtensions.cs @@ -0,0 +1,26 @@ +using System; + +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter; + +internal static class ODataExtensions +{ + public static ODataMessageReaderSettings ToReaderSettings(this ISession session) + { + return session.Settings.ToReaderSettings(); + } + + public static ODataMessageReaderSettings ToReaderSettings(this ODataClientSettings settings) + { + var readerSettings = new ODataMessageReaderSettings(); + if (settings.IgnoreUnmappedProperties) + { + readerSettings.UndeclaredPropertyBehaviorKinds = ODataUndeclaredPropertyBehaviorKinds.IgnoreUndeclaredValueProperty; + } + + readerSettings.MessageQuotas.MaxReceivedMessageSize = int.MaxValue; + readerSettings.ShouldIncludeAnnotation = x => settings.IncludeAnnotationsInResults; + return readerSettings; + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/ODataModelAdapter.cs b/src/Simple.OData.Client.V3.Adapter/ODataModelAdapter.cs new file mode 100644 index 000000000..fd68fb9ee --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ODataModelAdapter.cs @@ -0,0 +1,44 @@ +using System.IO; +using System.Net.Http; +using System.Xml; + +using Microsoft.Data.Edm; +using Microsoft.Data.Edm.Csdl; +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter; + +public class ODataModelAdapter : ODataModelAdapterBase +{ + public override AdapterVersion AdapterVersion => AdapterVersion.V3; + + public new IEdmModel Model + { + get => base.Model as IEdmModel; + set => base.Model = value; + } + + private ODataModelAdapter(string protocolVersion) + { + ProtocolVersion = protocolVersion; + } + + public ODataModelAdapter(string protocolVersion, HttpResponseMessage response) + : this(protocolVersion) + { + var readerSettings = new ODataMessageReaderSettings + { + MessageQuotas = { MaxReceivedMessageSize = int.MaxValue } + }; + using var messageReader = new ODataMessageReader(new ODataResponseMessage(response), readerSettings); + Model = messageReader.ReadMetadataDocument(); + } + + public ODataModelAdapter(string protocolVersion, string metadataString) + : this(protocolVersion) + { + using var reader = XmlReader.Create(new StringReader(metadataString)); + reader.MoveToContent(); + Model = EdmxReader.Parse(reader); + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/ODataRequestMessage.cs b/src/Simple.OData.Client.V3.Adapter/ODataRequestMessage.cs new file mode 100644 index 000000000..c76f43ab0 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ODataRequestMessage.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter; + +internal class ODataRequestMessage : IODataRequestMessageAsync +{ + private MemoryStream _stream; + private readonly Dictionary<string, string> _headers = new(); + + public ODataRequestMessage() + { + } + + public string GetHeader(string headerName) + { + return _headers.TryGetValue(headerName, out var value) ? value : null; + } + + public void SetHeader(string headerName, string headerValue) + { + _headers.Add(headerName, headerValue); + } + + public Stream GetStream() + { + return _stream ??= new MemoryStream(); + } + + public Task<Stream> GetStreamAsync() + { + var completionSource = new TaskCompletionSource<Stream>(); + completionSource.SetResult(GetStream()); + return completionSource.Task; + } + + public IEnumerable<KeyValuePair<string, string>> Headers => _headers; + + public Uri Url { get; set; } + + public string Method { get; set; } +} diff --git a/src/Simple.OData.Client.V3.Adapter/ODataResponseMessage.cs b/src/Simple.OData.Client.V3.Adapter/ODataResponseMessage.cs new file mode 100644 index 000000000..e1d55b2a5 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ODataResponseMessage.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter; + +internal class ODataResponseMessage : IODataResponseMessageAsync +{ + private readonly HttpResponseMessage _response; + + public ODataResponseMessage(HttpResponseMessage response) + { + _response = response; + } + + public string GetHeader(string headerName) + { + if (headerName == HttpLiteral.ContentType || headerName == HttpLiteral.ContentLength) + { + if (_response.Content.Headers.Contains(headerName)) + { + return _response.Content.Headers.GetValues(headerName).FirstOrDefault(); + } + else + { + return null; + } + } + else + { + if (_response.Headers.Contains(headerName)) + { + return _response.Headers.GetValues(headerName).FirstOrDefault(); + } + else + { + return null; + } + } + } + + public Stream GetStream() + { + return GetStreamAsync().Result; + } + + public Task<Stream> GetStreamAsync() + { + if (_response.Content != null) + { + return _response.Content.ReadAsStreamAsync(); + } + else + { + var completionSource = new TaskCompletionSource<Stream>(); + completionSource.SetResult(Stream.Null); + return completionSource.Task; + } + } + + public IEnumerable<KeyValuePair<string, string>> Headers => _response.Headers + .Select(h => new KeyValuePair<string, string>(h.Key, h.Value.FirstOrDefault())); + + public void SetHeader(string headerName, string headerValue) + { + throw new NotSupportedException(); + } + + public int StatusCode + { + get => (int)_response.StatusCode; + set => throw new NotSupportedException(); + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/RequestWriter.cs b/src/Simple.OData.Client.V3.Adapter/RequestWriter.cs new file mode 100644 index 000000000..6c416767a --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/RequestWriter.cs @@ -0,0 +1,431 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Spatial; +using System.Threading.Tasks; +using System.Xml.Linq; +using Microsoft.Data.Edm; +using Microsoft.Data.OData; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client.V3.Adapter; + +public class RequestWriter : RequestWriterBase +{ + private readonly IEdmModel _model; + + public RequestWriter(ISession session, IEdmModel model, Lazy<IBatchWriter> deferredBatchWriter) + : base(session, deferredBatchWriter) + { + _model = model; + } + + protected async override Task<Stream> WriteEntryContentAsync(string method, string collection, string commandText, IDictionary<string, object> entryData, bool resultRequired) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, collection, entryData, commandText, resultRequired).ConfigureAwait(false) + : new ODataRequestMessage(); + + if (method == RestVerbs.Get || method == RestVerbs.Delete) + { + return null; + } + + var entityType = _model.FindDeclaredType( + _session.Metadata.GetQualifiedTypeName(collection)) as IEdmEntityType; + var model = (method == RestVerbs.Patch || method == RestVerbs.Merge) ? new EdmDeltaModel(_model, entityType, entryData.Keys) : _model; + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), model); + var contentId = _deferredBatchWriter?.Value.GetContentId(entryData, null); + //var entityCollection = _session.Metadata.GetEntityCollection(collection); + var entityCollection = _session.Metadata.NavigateToCollection(collection); + var entryDetails = _session.Metadata.ParseEntryDetails(entityCollection.Name, entryData, contentId); + + var entryWriter = messageWriter.CreateODataEntryWriter(); + var entry = CreateODataEntry(entityType.FullName(), entryDetails.Properties); + + entryWriter.WriteStart(entry); + + if (entryDetails.Links != null) + { + foreach (var link in entryDetails.Links) + { + if (link.Value.Any(x => x.LinkData != null)) + { + WriteLink(entryWriter, entry, link.Key, link.Value); + } + } + } + + entryWriter.WriteEnd(); + + if (IsBatch) + { + return null; + } + + return await message.GetStreamAsync().ConfigureAwait(false); + } + + protected async override Task<Stream> WriteLinkContentAsync(string method, string commandText, string linkIdent) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, null, null, commandText, false).ConfigureAwait(false) + : new ODataRequestMessage(); + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model); + var link = new ODataEntityReferenceLink + { + Url = Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, linkIdent) + }; + messageWriter.WriteEntityReferenceLink(link); + + if (IsBatch) + { + return null; + } + + return await message.GetStreamAsync().ConfigureAwait(false); + } + + protected async override Task<Stream> WriteFunctionContentAsync(string method, string commandText) + { + if (IsBatch) + { + await CreateBatchOperationMessageAsync(method, null, null, commandText, true).ConfigureAwait(false); + } + + return null; + } + + protected async override Task<Stream> WriteActionContentAsync(string method, string commandText, string actionName, string boundTypeName, IDictionary<string, object> parameters) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, null, null, commandText, true).ConfigureAwait(false) + : new ODataRequestMessage(); + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(ODataFormat.Json), _model); + var action = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).FunctionImports()) + .BestMatch(x => x.Name, actionName, _session.Settings.NameMatchResolver); + var parameterWriter = await messageWriter.CreateODataParameterWriterAsync(action).ConfigureAwait(false); + await parameterWriter.WriteStartAsync().ConfigureAwait(false); + + + foreach (var parameter in parameters) + { + var operationParameter = action.Parameters.BestMatch(x => x.Name, parameter.Key, _session.Settings.NameMatchResolver); + if (operationParameter == null) + { + throw new UnresolvableObjectException(parameter.Key, $"Parameter [{parameter.Key}] not found for action [{actionName}]"); + } + + await WriteOperationParameterAsync(parameterWriter, operationParameter, parameter.Key, parameter.Value).ConfigureAwait(false); + } + + await parameterWriter.WriteEndAsync().ConfigureAwait(false); + + if (IsBatch) + { + return null; + } + + return await message.GetStreamAsync().ConfigureAwait(false); + } + + private async Task WriteOperationParameterAsync(ODataParameterWriter parameterWriter, IEdmFunctionParameter operationParameter, string paramName, object paramValue) + { + switch (operationParameter.Type.Definition.TypeKind) + { + case EdmTypeKind.Primitive: + case EdmTypeKind.Complex: + var value = GetPropertyValue(operationParameter.Type, paramValue); + await parameterWriter.WriteValueAsync(paramName, value).ConfigureAwait(false); + break; + + case EdmTypeKind.Collection: + var collectionWriter = await parameterWriter.CreateCollectionWriterAsync(paramName).ConfigureAwait(false); + await collectionWriter.WriteStartAsync(new ODataCollectionStart()).ConfigureAwait(false); + foreach (var item in (IEnumerable)paramValue) + { + await collectionWriter.WriteItemAsync(item).ConfigureAwait(false); + } + + await collectionWriter.WriteEndAsync().ConfigureAwait(false); + break; + + default: + throw new NotSupportedException($"Unable to write action parameter of a type {operationParameter.Type.Definition.TypeKind}"); + } + } + + protected async override Task<Stream> WriteStreamContentAsync(Stream stream, bool writeAsText) + { + var message = new ODataRequestMessage(); + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(ODataFormat.RawValue), _model); + var value = writeAsText ? (object)Utils.StreamToString(stream) : Utils.StreamToByteArray(stream); + await messageWriter.WriteValueAsync(value); + return await message.GetStreamAsync(); + } + + protected override string FormatLinkPath(string entryIdent, string navigationPropertyName, string linkIdent = null) + { + return linkIdent == null + ? $"{entryIdent}/$links/{navigationPropertyName}" + : $"{entryIdent}/$links/{linkIdent}"; + } + + protected override void AssignHeaders(ODataRequest request) + { + request.Headers[HttpLiteral.Prefer] = + request.ResultRequired ? HttpLiteral.ReturnContent : HttpLiteral.ReturnNoContent; + } + + private ODataMessageWriterSettings GetWriterSettings(ODataFormat preferredContentType = null) + { + var settings = new ODataMessageWriterSettings() + { + BaseUri = _session.Settings.BaseUri, + Indent = true, + DisableMessageStreamDisposal = !IsBatch, + }; + var contentType = preferredContentType ?? _session.Settings.PayloadFormat switch + { + ODataPayloadFormat.Json => _session.Adapter.ProtocolVersion switch + { + ODataProtocolVersion.V1 or ODataProtocolVersion.V2 => ODataFormat.VerboseJson, + _ => ODataFormat.Json, + }, + _ => ODataFormat.Atom, + }; + settings.SetContentType(contentType); + return settings; + } + + private Microsoft.Data.OData.ODataEntry CreateODataEntry(string typeName, IDictionary<string, object> properties) + { + var entry = new Microsoft.Data.OData.ODataEntry() { TypeName = typeName }; + + var typeProperties = (_model.FindDeclaredType(entry.TypeName) as IEdmEntityType).Properties(); + Func<string, string> findMatchingPropertyName = name => + { + var property = typeProperties.BestMatch(y => y.Name, name, _session.Settings.NameMatchResolver); + return property != null ? property.Name : name; + }; + entry.Properties = properties.Select(x => new ODataProperty() + { + Name = findMatchingPropertyName(x.Key), + Value = GetPropertyValue(typeProperties, x.Key, x.Value) + }).ToList(); + + return entry; + } + + private async Task<IODataRequestMessageAsync> CreateBatchOperationMessageAsync(string method, string collection, IDictionary<string, object> entryData, string commandText, bool resultRequired) + { + var message = (await _deferredBatchWriter.Value.CreateOperationMessageAsync( + Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, commandText), + method, collection, entryData, resultRequired).ConfigureAwait(false)) as IODataRequestMessageAsync; + + return message; + } + + private void WriteLink(ODataWriter entryWriter, Microsoft.Data.OData.ODataEntry entry, string linkName, IEnumerable<ReferenceLink> links) + { + var navigationProperty = (_model.FindDeclaredType(entry.TypeName) as IEdmEntityType).NavigationProperties() + .BestMatch(x => x.Name, linkName, _session.Settings.NameMatchResolver); + var isCollection = navigationProperty.Type.Definition.TypeKind == EdmTypeKind.Collection; + + var linkType = GetNavigationPropertyEntityType(navigationProperty); + var linkTypeWithKey = linkType; + while (linkTypeWithKey.DeclaredKey == null && linkTypeWithKey.BaseEntityType() != null) + { + linkTypeWithKey = linkTypeWithKey.BaseEntityType(); + } + + entryWriter.WriteStart(new ODataNavigationLink + { + Name = linkName, + IsCollection = isCollection, + Url = new Uri(ODataNamespace.Related + linkType, UriKind.Absolute), + }); + + foreach (var referenceLink in links) + { + var linkKey = linkTypeWithKey.DeclaredKey; + var linkEntry = referenceLink.LinkData.ToDictionary(TypeCache); + var contentId = GetContentId(referenceLink); + string linkUri; + if (contentId != null) + { + linkUri = "$" + contentId; + } + else + { + var formattedKey = _session.Adapter.GetCommandFormatter().ConvertKeyValuesToUriLiteral( + linkKey.ToDictionary(x => x.Name, x => linkEntry[x.Name]), true); + var linkedCollectionName = _session.Metadata.GetLinkedCollectionName( + referenceLink.LinkData.GetType().Name, linkTypeWithKey.Name, out var isSingleton); + linkUri = linkedCollectionName + (isSingleton ? string.Empty : formattedKey); + } + + var link = new ODataEntityReferenceLink + { + Url = Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, linkUri) + }; + + entryWriter.WriteEntityReferenceLink(link); + } + + entryWriter.WriteEnd(); + } + + private static IEdmEntityType GetNavigationPropertyEntityType(IEdmNavigationProperty navigationProperty) + { + if (navigationProperty.Type.Definition.TypeKind == EdmTypeKind.Collection) + { + return (navigationProperty.Type.Definition as IEdmCollectionType).ElementType.Definition as IEdmEntityType; + } + else + { + return navigationProperty.Type.Definition as IEdmEntityType; + } + } + + private object GetPropertyValue(IEnumerable<IEdmProperty> properties, string key, object value) + { + var property = properties.BestMatch(x => x.Name, key, _session.Settings.NameMatchResolver); + return property != null ? GetPropertyValue(property.Type, value) : value; + } + + private object GetPropertyValue(IEdmTypeReference propertyType, object value) + { + if (value == null) + { + return value; + } + + switch (propertyType.TypeKind()) + { + case EdmTypeKind.Complex: + if (Converter.HasObjectConverter(value.GetType())) + { + return Converter.Convert(value, value.GetType()); + } + + var complexTypeProperties = propertyType.AsComplex().StructuralProperties(); + return new ODataComplexValue + { + TypeName = propertyType.FullName(), + Properties = value.ToDictionary(TypeCache) + .Where(val => complexTypeProperties.Any(p => p.Name == val.Key)) + .Select(x => new ODataProperty + { + Name = x.Key, + Value = GetPropertyValue(complexTypeProperties, x.Key, x.Value), + }) + }; + + case EdmTypeKind.Collection: + var collection = propertyType.AsCollection(); + return new ODataCollectionValue() + { + TypeName = propertyType.FullName(), + Items = ((IEnumerable)value).Cast<object>().Select(x => GetPropertyValue(collection.ElementType(), x)), + }; + + case EdmTypeKind.Primitive: + var mappedTypes = _typeMap.Where(x => x.Value == (propertyType.Definition as IEdmPrimitiveType).PrimitiveKind); + if (mappedTypes.Any()) + { + foreach (var mappedType in mappedTypes) + { + if (TypeCache.TryConvert(value, mappedType.Key, out var result)) + { + return result; + } + } + + throw new NotSupportedException($"Conversion is not supported from type {value.GetType()} to OData type {propertyType}"); + } + + return value; + + case EdmTypeKind.Enum: + return value.ToString(); + + case EdmTypeKind.None: + if (Converter.HasObjectConverter(value.GetType())) + { + return Converter.Convert(value, value.GetType()); + } + + throw new NotSupportedException($"Conversion is not supported from type {value.GetType()} to OData type {propertyType}"); + + default: + return value; + } + } + + private static readonly Dictionary<Type, EdmPrimitiveTypeKind> _typeMap = new[] + { + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(string), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(bool), EdmPrimitiveTypeKind.Boolean), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(bool?), EdmPrimitiveTypeKind.Boolean), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte), EdmPrimitiveTypeKind.Byte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte?), EdmPrimitiveTypeKind.Byte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(decimal), EdmPrimitiveTypeKind.Decimal), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(decimal?), EdmPrimitiveTypeKind.Decimal), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(double), EdmPrimitiveTypeKind.Double), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(double?), EdmPrimitiveTypeKind.Double), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Guid), EdmPrimitiveTypeKind.Guid), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Guid?), EdmPrimitiveTypeKind.Guid), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(short), EdmPrimitiveTypeKind.Int16), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(short?), EdmPrimitiveTypeKind.Int16), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(int), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(int?), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(long), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(long?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(sbyte), EdmPrimitiveTypeKind.SByte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(sbyte?), EdmPrimitiveTypeKind.SByte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(float), EdmPrimitiveTypeKind.Single), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(float?), EdmPrimitiveTypeKind.Single), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte[]), EdmPrimitiveTypeKind.Binary), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Stream), EdmPrimitiveTypeKind.Stream), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Geography), EdmPrimitiveTypeKind.Geography), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyPoint), EdmPrimitiveTypeKind.GeographyPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyLineString), EdmPrimitiveTypeKind.GeographyLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyPolygon), EdmPrimitiveTypeKind.GeographyPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyCollection), EdmPrimitiveTypeKind.GeographyCollection), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiLineString), EdmPrimitiveTypeKind.GeographyMultiLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiPoint), EdmPrimitiveTypeKind.GeographyMultiPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiPolygon), EdmPrimitiveTypeKind.GeographyMultiPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Geometry), EdmPrimitiveTypeKind.Geometry), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryPoint), EdmPrimitiveTypeKind.GeometryPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryLineString), EdmPrimitiveTypeKind.GeometryLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryPolygon), EdmPrimitiveTypeKind.GeometryPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryCollection), EdmPrimitiveTypeKind.GeometryCollection), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiLineString), EdmPrimitiveTypeKind.GeometryMultiLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiPoint), EdmPrimitiveTypeKind.GeometryMultiPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiPolygon), EdmPrimitiveTypeKind.GeometryMultiPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTimeOffset), EdmPrimitiveTypeKind.DateTimeOffset), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTimeOffset?), EdmPrimitiveTypeKind.DateTimeOffset), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTime), EdmPrimitiveTypeKind.DateTime), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTime?), EdmPrimitiveTypeKind.DateTime), + + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(XElement), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ushort), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ushort?), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(uint), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(uint?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ulong), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ulong?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char[]), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char?), EdmPrimitiveTypeKind.String), + } + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V3.Adapter/ResponseReader.cs b/src/Simple.OData.Client.V3.Adapter/ResponseReader.cs new file mode 100644 index 000000000..835e21c1a --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/ResponseReader.cs @@ -0,0 +1,305 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.Data.Edm; +using Microsoft.Data.OData; + +namespace Simple.OData.Client.V3.Adapter +{ + public class ResponseReader : ResponseReaderBase + { + private readonly IEdmModel _model; + private bool _hasResponse = false; + + public ResponseReader(ISession session, IEdmModel model) + : base(session) + { + _model = model; + } + + public override Task<ODataResponse> GetResponseAsync(HttpResponseMessage responseMessage) + { + return GetResponseAsync(new ODataResponseMessage(responseMessage)); + } + + public async Task<ODataResponse> GetResponseAsync(IODataResponseMessageAsync responseMessage) + { + if (responseMessage.StatusCode == (int)HttpStatusCode.NoContent) + { + return ODataResponse.FromStatusCode(TypeCache, responseMessage.StatusCode, responseMessage.Headers); + } + + var readerSettings = _session.ToReaderSettings(); + using var messageReader = new ODataMessageReader(responseMessage, readerSettings, _model); + var payloadKind = messageReader.DetectPayloadKind(); + if (payloadKind.Any(x => x.PayloadKind != ODataPayloadKind.Property)) + { + _hasResponse = true; + } + + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Error)) + { + return ODataResponse.FromStatusCode(TypeCache, responseMessage.StatusCode, responseMessage.Headers); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Value)) + { + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Collection)) + { + throw new NotImplementedException(); + } + else + { + var stream = await responseMessage.GetStreamAsync().ConfigureAwait(false); + return ODataResponse.FromValueStream(TypeCache, stream, responseMessage is ODataBatchOperationResponseMessage); + } + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Batch)) + { + return await ReadResponse(messageReader.CreateODataBatchReader()).ConfigureAwait(false); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Feed)) + { + return ReadResponse(messageReader.CreateODataFeedReader(), responseMessage); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Collection)) + { + return ReadResponse(messageReader.CreateODataCollectionReader()); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Property)) + { + var property = messageReader.ReadProperty(); + if (property.Value != null && (property.Value.GetType() != typeof(string) || !string.IsNullOrEmpty(property.Value.ToString()))) + { + _hasResponse = true; + } + + if (_hasResponse) + { + return ODataResponse.FromProperty(TypeCache, property.Name, GetPropertyValue(property.Value)); + } + else + { + return ODataResponse.EmptyFeeds(TypeCache); + } + } + else + { + return ReadResponse(messageReader.CreateODataEntryReader(), responseMessage); + } + } + + private async Task<ODataResponse> ReadResponse(ODataBatchReader odataReader) + { + var batch = new List<ODataResponse>(); + + while (odataReader.Read()) + { + switch (odataReader.State) + { + case ODataBatchReaderState.ChangesetStart: + break; + + case ODataBatchReaderState.Operation: + var operationMessage = odataReader.CreateOperationResponseMessage(); + if (operationMessage.StatusCode == (int)HttpStatusCode.NoContent) + { + batch.Add(ODataResponse.FromStatusCode(TypeCache, operationMessage.StatusCode, operationMessage.Headers)); + } + else if (operationMessage.StatusCode >= (int)HttpStatusCode.BadRequest) + { + batch.Add(ODataResponse.FromStatusCode(TypeCache, + operationMessage.StatusCode, + operationMessage.Headers, + await operationMessage.GetStreamAsync().ConfigureAwait(false), + _session.Settings.WebRequestExceptionMessageSource)); + } + else + { + batch.Add(await GetResponseAsync(operationMessage).ConfigureAwait(false)); + } + + break; + + case ODataBatchReaderState.ChangesetEnd: + break; + } + } + + return ODataResponse.FromBatch(TypeCache, batch); + } + + private ODataResponse ReadResponse(ODataCollectionReader odataReader) + { + var collection = new List<object>(); + + while (odataReader.Read()) + { + if (odataReader.State == ODataCollectionReaderState.Completed) + { + break; + } + + switch (odataReader.State) + { + case ODataCollectionReaderState.CollectionStart: + break; + + case ODataCollectionReaderState.Value: + collection.Add(GetPropertyValue(odataReader.Item)); + break; + + case ODataCollectionReaderState.CollectionEnd: + break; + } + } + + return ODataResponse.FromCollection(TypeCache, collection); + } + + private ODataResponse ReadResponse(ODataReader odataReader, IODataResponseMessageAsync responseMessage) + { + ResponseNode rootNode = null; + var nodeStack = new Stack<ResponseNode>(); + + while (odataReader.Read()) + { + if (odataReader.State == ODataReaderState.Completed) + { + break; + } + + switch (odataReader.State) + { + case ODataReaderState.FeedStart: + StartFeed(nodeStack); + break; + + case ODataReaderState.FeedEnd: + EndFeed(nodeStack, CreateAnnotations(odataReader.Item as ODataFeed), ref rootNode); + break; + + case ODataReaderState.EntryStart: + StartEntry(nodeStack); + break; + + case ODataReaderState.EntryEnd: + EndEntry(nodeStack, ref rootNode, odataReader.Item); + break; + + case ODataReaderState.NavigationLinkStart: + StartNavigationLink(nodeStack, (odataReader.Item as ODataNavigationLink).Name); + break; + + case ODataReaderState.NavigationLinkEnd: + EndNavigationLink(nodeStack); + break; + } + } + + return ODataResponse.FromNode(TypeCache, rootNode, responseMessage.Headers); + } + + protected override void ConvertEntry(ResponseNode entryNode, object entry) + { + if (entry != null) + { + var odataEntry = entry as Microsoft.Data.OData.ODataEntry; + foreach (var property in odataEntry.Properties) + { + entryNode.Entry.Data.Add(property.Name, GetPropertyValue(property.Value)); + } + + entryNode.Entry.SetAnnotations(CreateAnnotations(odataEntry)); + } + } + + private ODataFeedAnnotations CreateAnnotations(ODataFeed feed) + { + return new ODataFeedAnnotations + { + Id = feed.Id, + Count = feed.Count, + DeltaLink = feed.DeltaLink, + NextPageLink = feed.NextPageLink, + InstanceAnnotations = feed.InstanceAnnotations, + }; + } + + private ODataEntryAnnotations CreateAnnotations(Microsoft.Data.OData.ODataEntry odataEntry) + { + string id = null; + Uri readLink = null; + Uri editLink = null; + IEnumerable<ODataAssociationLink> associationLinks = null; + if (_session.Adapter.GetMetadata().IsTypeWithId(odataEntry.TypeName)) + { + try + { + id = odataEntry.Id; + readLink = odataEntry.ReadLink; + editLink = odataEntry.EditLink; + associationLinks = odataEntry.AssociationLinks; + } + catch (ODataException) + { + // Ignored + } + } + + return new ODataEntryAnnotations + { + Id = id, + TypeName = odataEntry.TypeName, + ReadLink = readLink, + EditLink = editLink, + ETag = odataEntry.ETag, + AssociationLinks = associationLinks == null + ? null + : new List<ODataEntryAnnotations.AssociationLink>( + odataEntry.AssociationLinks.Select(x => new ODataEntryAnnotations.AssociationLink + { + Name = x.Name, + Uri = x.Url, + })), + MediaResource = CreateAnnotations(odataEntry.MediaResource), + InstanceAnnotations = odataEntry.InstanceAnnotations, + }; + } + + private ODataMediaAnnotations CreateAnnotations(ODataStreamReferenceValue value) + { + return value == null ? null : new ODataMediaAnnotations + { + ContentType = value.ContentType, + ReadLink = value.ReadLink, + EditLink = value.EditLink, + ETag = value.ETag, + }; + } + + private object GetPropertyValue(object value) + { + if (value is ODataComplexValue) + { + return (value as ODataComplexValue).Properties.ToDictionary( + x => x.Name, x => GetPropertyValue(x.Value)); + } + else if (value is ODataCollectionValue) + { + return (value as ODataCollectionValue).Items.Cast<object>() + .Select(GetPropertyValue).ToList(); + } + else if (value is ODataStreamReferenceValue) + { + return CreateAnnotations(value as ODataStreamReferenceValue); + } + else + { + return value; + } + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj b/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj new file mode 100644 index 000000000..25fc5f661 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj @@ -0,0 +1,18 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461;netstandard2.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.Data.OData" Version="5.8.5" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Simple.OData.Client.Core\Simple.OData.Client.Core.csproj" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/Simple.OData.Client.V3.Adapter/TypeConverters.cs b/src/Simple.OData.Client.V3.Adapter/TypeConverters.cs new file mode 100644 index 000000000..d004783e2 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/TypeConverters.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using System.Spatial; + +namespace Simple.OData.Client.V3.Adapter; + +public static class TypeConverters +{ + public static GeographyPoint CreateGeographyPoint(IDictionary<string, object> source) + { + return GeographyPoint.Create( + CoordinateSystem.Geography(source.ContainsKey("CoordinateSystem") + ? source.GetValueOrDefault<CoordinateSystem>("CoordinateSystem").EpsgId + : null), + source.GetValueOrDefault<double>("Latitude"), + source.GetValueOrDefault<double>("Longitude"), + source.GetValueOrDefault<double?>("Z"), + source.GetValueOrDefault<double?>("M")); + } + + public static GeometryPoint CreateGeometryPoint(IDictionary<string, object> source) + { + return GeometryPoint.Create( + CoordinateSystem.Geometry(source.ContainsKey("CoordinateSystem") + ? source.GetValueOrDefault<CoordinateSystem>("CoordinateSystem").EpsgId + : null), + source.GetValueOrDefault<double>("Latitude"), + source.GetValueOrDefault<double>("Longitude"), + source.GetValueOrDefault<double?>("Z"), + source.GetValueOrDefault<double?>("M")); + } + + public static object ConvertToEdmDate(object source) + { + return source; + } + + private static T GetValueOrDefault<T>(this IDictionary<string, object> source, string key) + { + if (source.TryGetValue(key, out var value)) + { + return (T)value; + } + else + { + return default(T); + } + } +} diff --git a/src/Simple.OData.Client.V3.Adapter/V3Adapter.cs b/src/Simple.OData.Client.V3.Adapter/V3Adapter.cs new file mode 100644 index 000000000..03f94297d --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/V3Adapter.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client; + +public static class V3Adapter +{ + public static void Reference() { } +} diff --git a/src/Simple.OData.Client.V3.Adapter/V3ModelAdapter.cs b/src/Simple.OData.Client.V3.Adapter/V3ModelAdapter.cs new file mode 100644 index 000000000..19d04fcf9 --- /dev/null +++ b/src/Simple.OData.Client.V3.Adapter/V3ModelAdapter.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client; + +public static class V3ModelAdapter +{ + public static void Reference() { } +} diff --git a/src/Simple.OData.Client.V4.Adapter/BatchWriter.cs b/src/Simple.OData.Client.V4.Adapter/BatchWriter.cs new file mode 100644 index 000000000..b8562a872 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/BatchWriter.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading.Tasks; +using Microsoft.OData; + +namespace Simple.OData.Client.V4.Adapter; + +public class BatchWriter : BatchWriterBase +{ + private ODataBatchWriter _batchWriter; + private ODataRequestMessage _requestMessage; + private ODataMessageWriter _messageWriter; + + public BatchWriter(ISession session, IDictionary<object, IDictionary<string, object>> batchEntries) + : base(session, batchEntries) + { + } + + public async override Task StartBatchAsync() + { + _requestMessage = new ODataRequestMessage() { Url = _session.Settings.BaseUri }; + _messageWriter = new ODataMessageWriter(_requestMessage, new ODataMessageWriterSettings { BaseUri = _session.Settings.BaseUri }); + _batchWriter = await _messageWriter.CreateODataBatchWriterAsync().ConfigureAwait(false); + await _batchWriter.WriteStartBatchAsync().ConfigureAwait(false); + HasOperations = true; + } + + public async override Task<HttpRequestMessage> EndBatchAsync() + { + if (_pendingChangeSet) + { + await _batchWriter.WriteEndChangesetAsync().ConfigureAwait(false); + } + + await _batchWriter.WriteEndBatchAsync().ConfigureAwait(false); + var stream = await _requestMessage.GetStreamAsync().ConfigureAwait(false); + return CreateMessageFromStream(stream, _requestMessage.Url, _requestMessage.GetHeader); + } + + protected async override Task StartChangesetAsync() + { + if (_batchWriter == null) + { + await StartBatchAsync().ConfigureAwait(false); + } + + await _batchWriter.WriteStartChangesetAsync().ConfigureAwait(false); + } + + protected override Task EndChangesetAsync() + { + return _batchWriter.WriteEndChangesetAsync(); + } + + protected async override Task<object> CreateOperationMessageAsync(Uri uri, string method, string collection, string contentId, bool resultRequired) + { + if (_batchWriter == null) + { + await StartBatchAsync().ConfigureAwait(false); + } + + return await CreateBatchOperationMessageAsync(uri, method, collection, contentId, resultRequired).ConfigureAwait(false); + } + + private async Task<ODataBatchOperationRequestMessage> CreateBatchOperationMessageAsync( + Uri uri, string method, string collection, string contentId, bool resultRequired) + { + var message = await _batchWriter.CreateOperationRequestMessageAsync(method, uri, contentId, (Microsoft.OData.BatchPayloadUriOption)_session.Settings.BatchPayloadUriOption).ConfigureAwait(false); + + if (method == RestVerbs.Post || method == RestVerbs.Put || method == RestVerbs.Patch || method == RestVerbs.Merge) + { + message.SetHeader(HttpLiteral.ContentId, contentId); + } + + if (method == RestVerbs.Post || method == RestVerbs.Put || method == RestVerbs.Patch || method == RestVerbs.Merge) + { + message.SetHeader(HttpLiteral.Prefer, resultRequired ? HttpLiteral.ReturnRepresentation : HttpLiteral.ReturnMinimal); + } + + if (collection != null && _session.Metadata.EntityCollectionRequiresOptimisticConcurrencyCheck(collection) && + (method == RestVerbs.Put || method == RestVerbs.Patch || method == RestVerbs.Merge || method == RestVerbs.Delete)) + { + message.SetHeader(HttpLiteral.IfMatch, EntityTagHeaderValue.Any.Tag); + } + + return message; + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/CommandFormatter.cs b/src/Simple.OData.Client.V4.Adapter/CommandFormatter.cs new file mode 100644 index 000000000..7a626e554 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/CommandFormatter.cs @@ -0,0 +1,343 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData; +using Simple.OData.Client.V4.Adapter.Extensions; + +namespace Simple.OData.Client.V4.Adapter; + +public class CommandFormatter : CommandFormatterBase +{ + private const string StarString = "*"; + + public CommandFormatter(ISession session) + : base(session) + { + } + + public override FunctionFormat FunctionFormat => FunctionFormat.Key; + + public override string ConvertValueToUriLiteral(object value, bool escapeDataString) + { + var type = value?.GetType(); + + if (value != null && _session.TypeCache.IsEnumType(type)) + { + value = new ODataEnumValue(value.ToString(), _session.Metadata.GetQualifiedTypeName(type.Name)); + } + + if (value is ODataExpression expression) + { + return expression.AsString(_session); + } + + var odataVersion = (ODataVersion)Enum.Parse(typeof(ODataVersion), _session.Adapter.GetODataVersionString(), false); + string ConvertValue(object x) => ODataUriUtils.ConvertToUriLiteral(x, odataVersion, (_session.Adapter as ODataAdapter).Model); + + if (value is ODataEnumValue value1 && _session.Settings.EnumPrefixFree) + { + value = value1.Value; + } + else if (value is DateTime time) + { + value = new DateTimeOffset(time); + } + + return escapeDataString + ? Uri.EscapeDataString(ConvertValue(value)) + : ConvertValue(value); + } + + protected override void FormatExpandSelectOrderby(IList<string> commandClauses, EntityCollection resultCollection, ResolvedCommand command) + { + if (command.Details.ExpandAssociations.Any()) + { + var groupedExpandAssociations = command.Details.ExpandAssociations + .GroupBy(x => (x.Key, x.Value), x => x.Key); + var mergedExpandAssociations = groupedExpandAssociations + .Select(x => + { + var mainAssociation = x.Key.Key; + foreach (var association in x.Where(a => a != mainAssociation)) + { + mainAssociation = MergeExpandAssociations(mainAssociation, association).First(); + } + + return new KeyValuePair<ODataExpandAssociation, ODataExpandOptions>(mainAssociation, x.Key.Value); + }); + + var formattedExpand = string.Join(",", mergedExpandAssociations.Select(x => + FormatExpansionSegment(x.Key, resultCollection, x.Value, command))); + commandClauses.Add($"{ODataLiteral.Expand}={formattedExpand}"); + } + + FormatClause(commandClauses, resultCollection, + SelectPathSegmentColumns(command.Details.SelectColumns, resultCollection, + command.Details.ExpandAssociations.Select(x => FormatFirstSegment(x.Key.Name)).ToList()), + ODataLiteral.Select, FormatSelectItem); + + FormatClause(commandClauses, resultCollection, + command.Details.OrderbyColumns + .Where(o => !command.Details.ExpandAssociations.Select(ea => ea.Key) + .Any(ea => IsInnerCollectionOrderBy(ea.Name, resultCollection, o.Key))).ToList(), + ODataLiteral.OrderBy, FormatOrderByItem); + } + + protected override void FormatInlineCount(IList<string> commandClauses) + { + commandClauses.Add($"{ODataLiteral.Count}={ODataLiteral.True}"); + } + + protected override void FormatExtensions(IList<string> commandClauses, ResolvedCommand command) + { + if (command.Details.Extensions.TryGetValue(ODataLiteral.Apply, out var applyCommandObject)) + { + var formattedApplyCommand = string.Empty; + switch (applyCommandObject) + { + case DataAggregationBuilder applyCommandBuilder: + formattedApplyCommand = applyCommandBuilder.Build(command, _session); + break; + case string applyCommand: + formattedApplyCommand = applyCommand; + break; + } + + if (!string.IsNullOrEmpty(formattedApplyCommand)) + { + commandClauses.Add($"{ODataLiteral.Apply}={EscapeUnescapedString(formattedApplyCommand)}"); + } + } + } + + private string FormatExpansionSegment(ODataExpandAssociation association, EntityCollection entityCollection, + ODataExpandOptions expandOptions, ResolvedCommand command, bool rootLevel = true) + { + if (rootLevel) + { + association = command.Details.SelectColumns.Aggregate(association, MergeExpandAssociations); + association = command.Details.OrderbyColumns.Aggregate(association, MergeOrderByColumns); + } + + var associationName = association.Name; + var expandsToCollection = false; + if (_session.Metadata.HasNavigationProperty(entityCollection.Name, associationName)) + { + associationName = _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, associationName); + expandsToCollection = _session.Metadata.IsNavigationPropertyCollection(entityCollection.Name, associationName); + } + + var clauses = new List<string>(); + var text = associationName; + if (expandOptions.ExpandMode == ODataExpandMode.ByReference) + { + text += "/" + ODataLiteral.Ref; + } + + if (expandOptions.Levels > 1) + { + clauses.Add($"{ODataLiteral.Levels}={expandOptions.Levels}"); + } + else if (expandOptions.Levels == 0) + { + clauses.Add($"{ODataLiteral.Levels}={ODataLiteral.Max}"); + } + + if (associationName != StarString) + { + if (expandsToCollection && association.FilterExpression is not null) + { + var associatedEntityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + clauses.Add( + $"{ODataLiteral.Filter}={EscapeUnescapedString(association.FilterExpression.Format(new ExpressionContext(_session, associatedEntityCollection, null, command.DynamicPropertiesContainerName)))}"); + } + + if (association.ExpandAssociations.Any()) + { + var associatedEntityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + var expandAll = association.ExpandAssociations.FirstOrDefault(a => a.Name == StarString); + if (expandAll != null) + { + clauses.Add($"{ODataLiteral.Expand}=*"); + } + else + { + var expandedProperties = string.Join(",", association.ExpandAssociations + .Where( + a => _session.Metadata.HasNavigationProperty(associatedEntityCollection.Name, a.Name)) + .Select(a => + FormatExpansionSegment(a, associatedEntityCollection, ODataExpandOptions.ByValue(), + command, + false))); + if (!string.IsNullOrEmpty(expandedProperties)) + { + clauses.Add($"{ODataLiteral.Expand}={expandedProperties}"); + } + } + + var selectColumns = string.Join(",", association.ExpandAssociations + .Where(a => a.Name != StarString && + !_session.Metadata.HasNavigationProperty(associatedEntityCollection.Name, a.Name)) + .Select(a => a.Name)); + if (!string.IsNullOrEmpty(selectColumns)) + { + clauses.Add($"{ODataLiteral.Select}={selectColumns}"); + } + } + + if (expandsToCollection && association.OrderByColumns.Any()) + { + var columns = string.Join(",", association.OrderByColumns + .Select(o => o.Name + (o.Descending ? " desc" : string.Empty))); + if (!string.IsNullOrEmpty(columns)) + { + clauses.Add($"{ODataLiteral.OrderBy}={columns}"); + } + } + } + + if (clauses.Any()) + { + text += $"({string.Join(";", clauses)})"; + } + + return text; + } + + private static ODataExpandAssociation MergeExpandAssociations(ODataExpandAssociation expandAssociation, string path) + { + return MergeExpandAssociations(expandAssociation, ODataExpandAssociation.From(path)).First(); + } + + private static IEnumerable<ODataExpandAssociation> MergeExpandAssociations(ODataExpandAssociation first, ODataExpandAssociation second) + { + if (first.Name != second.Name && first.Name != "*") + { + return new[] { first, second }; + } + + var result = first.Clone(); + result.OrderByColumns.AddRange(second.OrderByColumns.Except(first.OrderByColumns)); + result.ExpandAssociations.Clear(); + var groupedExpandAssociations = first.ExpandAssociations + .Concat(second.ExpandAssociations) + .GroupBy(x => x); + var mergedExpandAssociations = groupedExpandAssociations + .Select(x => + { + var mainAssociation = x.Key; + foreach (var association in x.Where(a => a != mainAssociation)) + { + mainAssociation = MergeExpandAssociations(mainAssociation, association).First(); + mainAssociation.OrderByColumns.AddRange(association.OrderByColumns.Except(mainAssociation.OrderByColumns)); + } + + return mainAssociation; + }); + + result.ExpandAssociations.AddRange(mergedExpandAssociations); + + return new[] { result }; + } + + private static ODataExpandAssociation MergeOrderByColumns(ODataExpandAssociation expandAssociation, KeyValuePair<string, bool> orderByColumn) + { + if (string.IsNullOrEmpty(orderByColumn.Key)) + { + return expandAssociation; + } + + var segments = orderByColumn.Key.Split('/'); + if (segments[0] != expandAssociation.Name) + { + return expandAssociation; + } + + var result = expandAssociation.Clone(); + MergeOrderByColumns(result, segments, orderByColumn.Value, 1); + return result; + } + + private static void MergeOrderByColumns(ODataExpandAssociation expandAssociation, + string[] segments, bool descending, int currentIndex) + { + if (segments.Length == currentIndex) + { + return; + } + + if (segments.Length == currentIndex + 1) + { + expandAssociation.OrderByColumns.Add(new ODataOrderByColumn(segments[currentIndex], descending)); + return; + } + + var nestedAssociation = expandAssociation.ExpandAssociations.FirstOrDefault(a => a.Name == segments[currentIndex]); + if (nestedAssociation != null) + { + MergeOrderByColumns(nestedAssociation, segments, descending, currentIndex + 1); + } + } + + private IList<string> SelectPathSegmentColumns( + IList<string> columns, EntityCollection collection, IList<string> expandedPaths) + { + var expandedNavigationProperties = new HashSet<string>( + expandedPaths.Contains(StarString) ? + _session.Metadata.GetNavigationPropertyNames(collection.Name).Select(FormatFirstSegment) : + expandedPaths.Select(FormatFirstSegment)); + + return columns + .Where(x => !expandedNavigationProperties.Any(y => y.Equals(FormatFirstSegment(x)))) + .ToList(); + } + + private bool IsInnerCollectionOrderBy(string expandAssociation, EntityCollection entityCollection, string orderByColumn) + { + var items = expandAssociation.Split('/'); + if (items.First() != FormatFirstSegment(orderByColumn)) + { + return false; + } + + var associationName = _session.Metadata.GetNavigationPropertyExactName(entityCollection.Name, items.First()); + if (_session.Metadata.IsNavigationPropertyCollection(entityCollection.Name, associationName)) + { + return true; + } + + if (items.Count() > 1) + { + expandAssociation = expandAssociation.Substring(items.First().Length + 1); + entityCollection = _session.Metadata.GetEntityCollection( + _session.Metadata.GetNavigationPropertyPartnerTypeName(entityCollection.Name, associationName)); + + if (!HasMultipleSegments(orderByColumn) || FormatFirstSegment(orderByColumn) != FormatFirstSegment(expandAssociation)) + { + return false; + } + + orderByColumn = FormatSkipSegments(orderByColumn, 1); + return IsInnerCollectionOrderBy(expandAssociation, entityCollection, orderByColumn); + } + + return false; + } + + private bool HasMultipleSegments(string path) + { + return path.Contains("/"); + } + + private string FormatFirstSegment(string path) + { + return path.Split('/').First(); + } + + private string FormatSkipSegments(string path, int skipCount) + { + return string.Join("/", path.Split('/').Skip(skipCount)); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/EdmDeltaModel.cs b/src/Simple.OData.Client.V4.Adapter/EdmDeltaModel.cs new file mode 100644 index 000000000..8b900cffe --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/EdmDeltaModel.cs @@ -0,0 +1,74 @@ +using System.Collections.Generic; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Simple.OData.Client.V4.Adapter; + +internal class EdmDeltaModel : IEdmModel +{ + private readonly IEdmModel _source; + private readonly EdmEntityType _entityType; + + public EdmDeltaModel(IEdmModel source, IEdmEntityType entityType, ICollection<string> propertyNames) + { + _source = source; + _entityType = new EdmEntityType(entityType.Namespace, entityType.Name, null, entityType.IsAbstract, entityType.IsOpen, entityType.HasStream); + + foreach (var property in entityType.StructuralProperties()) + { + if (propertyNames.Contains(property.Name)) + { + _entityType.AddStructuralProperty(property.Name, property.Type, property.DefaultValueString); + } + } + + foreach (var property in entityType.NavigationProperties()) + { + if (propertyNames.Contains(property.Name)) + { + var navInfo = new EdmNavigationPropertyInfo() + { + ContainsTarget = property.ContainsTarget, + DependentProperties = property.DependentProperties(), + PrincipalProperties = property.PrincipalProperties(), + Name = property.Name, + OnDelete = property.OnDelete, + Target = property.Partner != null + ? property.Partner.DeclaringEntityType() + : property.Type.TypeKind() == EdmTypeKind.Collection + ? (property.Type.Definition as IEdmCollectionType).ElementType.Definition as IEdmEntityType + : property.Type.TypeKind() == EdmTypeKind.Entity + ? property.Type.Definition as IEdmEntityType + : null, + TargetMultiplicity = property.TargetMultiplicity(), + }; + _entityType.AddUnidirectionalNavigation(navInfo); + } + } + } + + public IEdmSchemaType FindDeclaredType(string qualifiedName) + { + if (qualifiedName == _entityType.FullName()) + { + return _entityType; + } + else + { + return _source.FindDeclaredType(qualifiedName); + } + } + + public IEnumerable<IEdmOperation> FindDeclaredBoundOperations(IEdmType bindingType) { return _source.FindDeclaredBoundOperations(bindingType); } + public IEnumerable<IEdmOperation> FindDeclaredBoundOperations(string qualifiedName, IEdmType bindingType) { return _source.FindDeclaredBoundOperations(qualifiedName, bindingType); } + public IEnumerable<IEdmOperation> FindDeclaredOperations(string qualifiedName) { return _source.FindDeclaredOperations(qualifiedName); } + public IEdmTerm FindDeclaredTerm(string qualifiedName) { return _source.FindDeclaredTerm(qualifiedName); } + public IEnumerable<IEdmVocabularyAnnotation> FindDeclaredVocabularyAnnotations(IEdmVocabularyAnnotatable element) { return _source.FindDeclaredVocabularyAnnotations(element); } + public IEnumerable<IEdmStructuredType> FindDirectlyDerivedTypes(IEdmStructuredType baseType) { return _source.FindDirectlyDerivedTypes(baseType); } + public IEnumerable<IEdmSchemaElement> SchemaElements => _source.SchemaElements; + public IEnumerable<IEdmVocabularyAnnotation> VocabularyAnnotations => _source.VocabularyAnnotations; + public IEnumerable<IEdmModel> ReferencedModels => _source.ReferencedModels; + public IEnumerable<string> DeclaredNamespaces { get; private set; } + public IEdmDirectValueAnnotationsManager DirectValueAnnotationsManager => _source.DirectValueAnnotationsManager; + public IEdmEntityContainer EntityContainer { get; private set; } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationBuilder.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationBuilder.cs new file mode 100644 index 000000000..63b1feb3a --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationBuilder.cs @@ -0,0 +1,230 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client.V4.Adapter.Extensions +{ + internal abstract class DataAggregationBuilder + { + protected readonly List<IDataAggregationClause> DataAggregationClauses; + private DataAggregationBuilder _nextDataAggregationBuilder; + + protected DataAggregationBuilder() + { + DataAggregationClauses = new List<IDataAggregationClause>(); + } + + internal string Build(ResolvedCommand command, ISession session) + { + var context = new ExpressionContext(session, null, null, command.DynamicPropertiesContainerName); + var commandText = string.Empty; + foreach (var applyClause in DataAggregationClauses) + { + var formattedApplyClause = applyClause.Format(context); + if (string.IsNullOrEmpty(formattedApplyClause)) + { + continue; + } + + if (commandText.Length > 0) + { + commandText += "/"; + } + + commandText += formattedApplyClause; + } + + return AddNextCommand(commandText, command, session); + } + + internal void Append(DataAggregationBuilder nextDataAggregationBuilder) + { + if (_nextDataAggregationBuilder != null) + { + _nextDataAggregationBuilder.Append(nextDataAggregationBuilder); + return; + } + + _nextDataAggregationBuilder = nextDataAggregationBuilder; + } + + private string AddNextCommand(string commandText, ResolvedCommand command, ISession session) + { + if (_nextDataAggregationBuilder == null) + { + return commandText; + } + + var nestedCommand = _nextDataAggregationBuilder.Build(command, session); + if (string.IsNullOrEmpty(nestedCommand)) + { + return commandText; + } + + if (commandText.Length > 0) + { + commandText += "/"; + } + + commandText += nestedCommand; + + return commandText; + } + } + + /// <inheritdoc cref="IDataAggregation{T}"/> + internal class DataAggregationBuilder<T> : DataAggregationBuilder, IDataAggregation<T> + where T : class + { + private readonly ISession _session; + + internal DataAggregationBuilder(ISession session) : base() + { + _session = session; + } + + public IDataAggregation<T> Filter(Expression<Func<T, bool>> filter) + { + if (DataAggregationClauses.LastOrDefault() is FilterClause filterClause) + { + filterClause.Append(ODataExpression.FromLinqExpression(filter)); + } + else + { + filterClause = new FilterClause(ODataExpression.FromLinqExpression(filter)); + DataAggregationClauses.Add(filterClause); + } + + return this; + } + + public IDataAggregation<TR> Aggregate<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> aggregation) where TR : class + { + var aggregationClauses = ExtractAggregationClauses(aggregation); + DataAggregationClauses.Add(aggregationClauses); + var nextDataAggregationBuilder = new DataAggregationBuilder<TR>(_session); + Append(nextDataAggregationBuilder); + return nextDataAggregationBuilder; + } + + private static AggregationClauseCollection<T> ExtractAggregationClauses<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> expression) where TR : class + { + var aggregationClauses = new AggregationClauseCollection<T>(); + switch (expression.Body) + { + case NewExpression newExpression: + { + var membersCount = Math.Min(newExpression.Members.Count, newExpression.Arguments.Count); + for (var index = 0; index < membersCount; index++) + { + if (newExpression.Arguments[index] is MethodCallExpression methodCallExpression && methodCallExpression.Method.DeclaringType == typeof(IAggregationFunction<T>)) + { + aggregationClauses.Add(new AggregationClause<T>(newExpression.Members[index].Name, newExpression.Arguments[index])); + } + } + + break; + } + case MemberInitExpression memberInitExpression: + { + foreach (var assignment in memberInitExpression.Bindings.OfType<MemberAssignment>()) + { + if (assignment.Expression is MethodCallExpression methodCallExpression && methodCallExpression.Method.DeclaringType == typeof(IAggregationFunction<T>)) + { + aggregationClauses.Add(new AggregationClause<T>(assignment.Member.Name, assignment.Expression)); + } + } + + break; + } + default: + throw new AggregateException("Expression should be a NewExpression or MemberInitExpression"); + } + + return aggregationClauses; + } + + public IDataAggregation<TR> GroupBy<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> groupBy) where TR : class + { + var groupByColumns = new List<string>(); + AggregationClauseCollection<T> aggregationClauses = null; + if (groupBy.Body is MemberExpression memberExpression) + { + groupByColumns.Add(memberExpression.ExtractColumnName(_session.TypeCache)); + } + else + { + aggregationClauses = ExtractAggregationClauses(groupBy); + groupByColumns.AddRange(ExtractGroupByColumns(groupBy)); + } + + var groupByClause = new GroupByClause<T>(groupByColumns, aggregationClauses); + DataAggregationClauses.Add(groupByClause); + var nextDataAggregationBuilder = new DataAggregationBuilder<TR>(_session); + Append(nextDataAggregationBuilder); + return nextDataAggregationBuilder; + } + + private IEnumerable<string> ExtractGroupByColumns<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> expression) where TR : class + { + switch (expression.Body) + { + case NewExpression newExpression: + { + var membersCount = Math.Min(newExpression.Members.Count, newExpression.Arguments.Count); + for (var index = 0; index < membersCount; index++) + { + switch (newExpression.Arguments[index]) + { + case MemberExpression _: + yield return newExpression.Arguments[index].ExtractColumnName(_session.TypeCache); + break; + case MemberInitExpression memberInitExpression: + { + foreach (var columnName in ExtractColumnNames(memberInitExpression)) + { + yield return columnName; + } + + break; + } + } + } + + break; + } + case MemberInitExpression memberInitExpression: + { + foreach (var columnName in ExtractColumnNames(memberInitExpression)) + { + yield return columnName; + } + + break; + } + default: + throw new AggregateException("Expression should be a NewExpression or MemberInitExpression"); + } + } + + private IEnumerable<string> ExtractColumnNames(MemberInitExpression expression) + { + var columnNames = new List<string>(); + foreach (var assignment in expression.Bindings.OfType<MemberAssignment>()) + { + switch (assignment.Expression) + { + case MemberExpression _: + columnNames.Add(assignment.Expression.ExtractColumnName(_session.TypeCache)); + break; + case MemberInitExpression memberInitExpression: + columnNames.AddRange(ExtractColumnNames(memberInitExpression)); + break; + } + } + + return columnNames; + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationClauses.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationClauses.cs new file mode 100644 index 000000000..6d95ed7b8 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/DataAggregationClauses.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +internal interface IDataAggregationClause +{ + string Format(ExpressionContext context); +} + +internal class FilterClause : IDataAggregationClause +{ + private ODataExpression _filterExpression; + private string _filter; + + internal FilterClause(string filter) + { + _filter = filter; + } + + internal FilterClause(ODataExpression expression) + { + _filterExpression = expression; + } + + internal void Append(string filter) + { + _filter = $"{_filter} and {filter}"; + } + + internal void Append(ODataExpression expression) + { + _filterExpression = _filterExpression && expression; + } + + public string Format(ExpressionContext context) + { + if (string.IsNullOrEmpty(_filter) && _filterExpression is not null) + { + _filter = _filterExpression.Format(context); + } + + return string.IsNullOrEmpty(_filter) + ? string.Empty + : $"filter({_filter})"; + } +} + +internal class GroupByClause<T> : IDataAggregationClause +{ + private readonly IEnumerable<string> _columns; + private readonly AggregationClauseCollection<T> _aggregation; + + internal GroupByClause(IEnumerable<string> columns, AggregationClauseCollection<T> aggregation = null) + { + _columns = columns; + _aggregation = aggregation; + } + + public string Format(ExpressionContext context) + { + var formattedAggregation = _aggregation?.Format(context); + var aggregation = string.IsNullOrEmpty(formattedAggregation) + ? string.Empty + : $",{formattedAggregation}"; + + return $"groupby(({string.Join(",", _columns)}){aggregation})"; + } +} + +internal class AggregationClauseCollection<T> : IDataAggregationClause +{ + private readonly ICollection<AggregationClause<T>> _clauses = new List<AggregationClause<T>>(); + + internal void Add(AggregationClause<T> clause) + { + _clauses.Add(clause); + } + + public string Format(ExpressionContext context) + { + return _clauses.Any() + ? $"aggregate({string.Join(",", _clauses.Select(c => c.Format(context)))})" + : string.Empty; + } +} + +internal class AggregationClause<T> +{ + private static readonly Dictionary<string, string> KnownFunctionTemplates = new() + { + { nameof(IAggregationFunction<T>.Average), "{0} with average" }, + { nameof(IAggregationFunction<T>.Sum), "{0} with sum" }, + { nameof(IAggregationFunction<T>.Min), "{0} with min" }, + { nameof(IAggregationFunction<T>.Max), "{0} with max" }, + { nameof(IAggregationFunction<T>.CountDistinct), "{0} with countdistinct" }, + { nameof(IAggregationFunction<T>.Count), "$count" } + }; + + private readonly string _propertyName; + private string _aggregatedColumnName; + private string _aggregationMethodName; + private readonly MethodCallExpression _expression; + + internal AggregationClause(string propertyName, Expression expression) + { + _propertyName = propertyName; + if (expression is not MethodCallExpression methodCallExpression) + { + throw new ArgumentException($"Expression should be a method call."); + } + + _expression = methodCallExpression; + } + + internal AggregationClause(string propertyName, string aggregatedColumnName, string aggregationMethodName) + { + _propertyName = propertyName; + _aggregatedColumnName = aggregatedColumnName; + _aggregationMethodName = aggregationMethodName; + } + + public string Format(ExpressionContext context) + { + var function = FormatFunction(context); + return $"{function} as {_propertyName}"; + } + + private string FormatFunction(ExpressionContext context) + { + if (_expression != null) + { + _aggregatedColumnName = string.Empty; + if (_expression.Arguments.Any()) + { + var aggregationMethodArgument = _expression.Arguments[0]; + _aggregatedColumnName = aggregationMethodArgument.ExtractColumnName(context.Session.TypeCache); + } + + _aggregationMethodName = _expression.Method.Name; + } + + if (KnownFunctionTemplates.TryGetValue(_aggregationMethodName, out var function)) + { + return string.Format(function, _aggregatedColumnName); + } + + throw new InvalidOperationException($"Unknown aggregation method '{_aggregationMethodName}'"); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicAggregationFunction.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicAggregationFunction.cs new file mode 100644 index 000000000..38d9d676d --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicAggregationFunction.cs @@ -0,0 +1,38 @@ +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public sealed class DynamicAggregationFunction +{ + internal DynamicAggregationFunction() + { + } + + public (string, ODataExpression) Average(ODataExpression expression) + { + return (nameof(Average), expression); + } + + public (string, ODataExpression) Sum(ODataExpression expression) + { + return (nameof(Sum), expression); + } + + public (string, ODataExpression) Min(ODataExpression expression) + { + return (nameof(Min), expression); + } + + public (string, ODataExpression) Max(ODataExpression expression) + { + return (nameof(Max), expression); + } + + public (string, ODataExpression) Count() + { + return (nameof(Count), null); + } + + public (string, ODataExpression) CountDistinct(ODataExpression expression) + { + return (nameof(CountDistinct), expression); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicDataAggregationBuilder.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicDataAggregationBuilder.cs new file mode 100644 index 000000000..bd6f29de3 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/DynamicDataAggregationBuilder.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client.V4.Adapter.Extensions +{ + public class DynamicDataAggregation + { + private readonly DataAggregationBuilderHolder _underlyingDataAggregationBuilder; + + internal DynamicDataAggregation() + { + _underlyingDataAggregationBuilder = new DataAggregationBuilderHolder(); + } + + public DynamicDataAggregation Filter(string filter) + { + var filterClause = (FilterClause)_underlyingDataAggregationBuilder.LastOrDefault(x => x is FilterClause); + if (filterClause != null) + { + filterClause.Append(filter); + } + else + { + filterClause = new FilterClause(filter); + _underlyingDataAggregationBuilder.Add(filterClause); + } + + return this; + } + + public DynamicDataAggregation Filter(ODataExpression filter) + { + if (_underlyingDataAggregationBuilder.LastOrDefault() is FilterClause filterClause) + { + filterClause.Append(filter); + } + else + { + filterClause = new FilterClause(filter); + _underlyingDataAggregationBuilder.Add(filterClause); + } + + return this; + } + + public DynamicDataAggregation Aggregate(object aggregation) + { + var aggregationClauses = new AggregationClauseCollection<object>(); + var objectType = aggregation.GetType(); + var declaredProperties = objectType.GetDeclaredProperties(); + foreach (var property in declaredProperties) + { + var propertyValue = property.GetValueEx(aggregation); + if (propertyValue is ValueTuple<string, ODataExpression> aggregatedProperty) + { + aggregationClauses.Add(new AggregationClause<object>(property.Name, aggregatedProperty.Item2?.Reference, aggregatedProperty.Item1)); + } + } + + _underlyingDataAggregationBuilder.Add(aggregationClauses); + return this; + } + + public DynamicDataAggregation GroupBy(object groupBy) + { + var groupByColumns = new List<string>(); + var aggregationClauses = new AggregationClauseCollection<object>(); + if (groupBy is ODataExpression groupByExpression) + { + groupByColumns.Add(groupByExpression.Reference); + } + else + { + var objectType = groupBy.GetType(); + var declaredProperties = objectType.GetDeclaredProperties(); + foreach (var property in declaredProperties) + { + var propertyValue = property.GetValueEx(groupBy); + switch (propertyValue) + { + case ODataExpression oDataExpression: + groupByColumns.Add(oDataExpression.Reference); + break; + case ValueTuple<string, ODataExpression> aggregatedProperty: + aggregationClauses.Add(new AggregationClause<object>(property.Name, aggregatedProperty.Item2?.Reference, aggregatedProperty.Item1)); + break; + } + } + } + + _underlyingDataAggregationBuilder.Add(new GroupByClause<object>(groupByColumns, aggregationClauses)); + return this; + } + + internal DataAggregationBuilder CreateBuilder() + { + return _underlyingDataAggregationBuilder; + } + + private class DataAggregationBuilderHolder : DataAggregationBuilder + { + internal void Add(IDataAggregationClause dataAggregationClause) + { + DataAggregationClauses.Add(dataAggregationClause); + } + + internal IDataAggregationClause LastOrDefault(Func<IDataAggregationClause, bool> predicate = null) + { + return DataAggregationClauses.LastOrDefault(predicate ?? (x => true)); + } + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedBoundClient.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedBoundClient.cs new file mode 100644 index 000000000..c7b0e010a --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedBoundClient.cs @@ -0,0 +1,69 @@ +using System; + +namespace Simple.OData.Client.V4.Adapter.Extensions +{ + /// <summary> + /// Provides access to extended OData operations e.g. data aggregation extensions in a fluent style. + /// </summary> + /// <typeparam name="T">The entry type.</typeparam> + /// <inheritdoc cref="IExtendedBoundClient{T}"/> + public class ExtendedBoundClient<T> : BoundClient<T>, IExtendedBoundClient<T> where T : class + { + private ExtendedBoundClient(Session session, FluentCommand command) + : base(new ODataClient(session.Settings), session, null, command) + { + } + + internal ExtendedBoundClient(ODataClient oDataClient, Session session, bool dynamicResults = false) + : base(oDataClient, session, dynamicResults: dynamicResults) + { + } + + public IExtendedBoundClient<TR> Apply<TR>(Func<IDataAggregation<T>, IDataAggregation<TR>> dataAggregation) where TR : class + { + var dataAggregationBuilder = new DataAggregationBuilder<T>(Session); + dataAggregation(dataAggregationBuilder); + AppendDataAggregationBuilder(dataAggregationBuilder); + return new ExtendedBoundClient<TR>(Session, Command); + } + + public IExtendedBoundClient<T> Apply(string dataAggregationCommand) + { + AppendDataAggregationCommand(dataAggregationCommand); + return this; + } + + public IExtendedBoundClient<TR> Apply<TR>(string dataAggregationCommand) where TR : class + { + AppendDataAggregationCommand(dataAggregationCommand); + return new ExtendedBoundClient<TR>(Session, Command); + } + + public IExtendedBoundClient<T> Apply(DynamicDataAggregation dataAggregation) + { + Command.Details.Extensions[ODataLiteral.Apply] = dataAggregation.CreateBuilder(); + return this; + } + + private void AppendDataAggregationBuilder(DataAggregationBuilder dataAggregationBuilder) + { + if (Command.Details.Extensions.TryGetValue(ODataLiteral.Apply, out var applyExtension) && + applyExtension is DataAggregationBuilder actualDataAggregationBuilder) + { + actualDataAggregationBuilder.Append(dataAggregationBuilder); + } + else + { + Command.Details.Extensions[ODataLiteral.Apply] = dataAggregationBuilder; + } + } + + private void AppendDataAggregationCommand(string dataAggregationCommand) + { + Command.Details.Extensions[ODataLiteral.Apply] = Command.Details.Extensions.TryGetValue(ODataLiteral.Apply, out var applyExtension) && + applyExtension is string actualDataAggregationCommand && !string.IsNullOrEmpty(actualDataAggregationCommand) + ? actualDataAggregationCommand + "/" + dataAggregationCommand + : dataAggregationCommand; + } + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedFluentCommand.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedFluentCommand.cs new file mode 100644 index 000000000..ff703b959 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedFluentCommand.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public class ExtendedFluentCommand : FluentCommand +{ + internal ExtendedFluentCommand(FluentCommandDetails details) : base(details) + { + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedODataClient.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedODataClient.cs new file mode 100644 index 000000000..7d190f753 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/ExtendedODataClient.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +/// <summary> +/// <inheritdoc cref="IExtendedODataClient"/> +/// </summary> +public class ExtendedODataClient : IExtendedODataClient +{ + private readonly ODataClient _baseClient; + + public ExtendedODataClient(ODataClient baseClient) + { + _baseClient = baseClient; + } + + public IExtendedBoundClient<IDictionary<string, object>> For(string collectionName) + { + var client = new ExtendedBoundClient<IDictionary<string, object>>(_baseClient, _baseClient.Session); + client.For(collectionName); + _baseClient.Session.Settings.IgnoreUnmappedProperties = true; + _baseClient.Session.Settings.ReadUntypedAsString = false; + return client; + } + + public IExtendedBoundClient<ODataEntry> For(ODataExpression expression) + { + var client = new ExtendedBoundClient<ODataEntry>(_baseClient, _baseClient.Session, true); + client.For(expression); + _baseClient.Session.Settings.IgnoreUnmappedProperties = true; + _baseClient.Session.Settings.ReadUntypedAsString = false; + return client; + } + + public IExtendedBoundClient<T> For<T>(string collectionName = null) where T : class + { + var client = new ExtendedBoundClient<T>(_baseClient, _baseClient.Session); + client.For(collectionName); + return client; + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/IAggregationFunction.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/IAggregationFunction.cs new file mode 100644 index 000000000..039e9e590 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/IAggregationFunction.cs @@ -0,0 +1,16 @@ +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public interface IAggregationFunction<T> +{ + TR Average<TR>(TR property); + + TR Sum<TR>(TR property); + + TR Min<TR>(TR property); + + TR Max<TR>(TR property); + + int Count(); + + int CountDistinct<TR>(TR property); +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/IDataAggregation.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/IDataAggregation.cs new file mode 100644 index 000000000..81a220def --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/IDataAggregation.cs @@ -0,0 +1,30 @@ +using System; +using System.Linq.Expressions; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public interface IDataAggregation<T> where T : class +{ + /// <summary> + /// Sets the specified OData filter. + /// </summary> + /// <param name="filter">The filter expression.</param> + /// <returns>Self.</returns> + IDataAggregation<T> Filter(Expression<Func<T, bool>> filter); + + /// <summary> + /// Sets the specified aggregation + /// </summary> + /// <param name="aggregation">Aggregation expression, should be a NewExpression or MemberInitExpression e.g. (x, a) => new {Total = a.Sum(x.Count)}</param> + /// <typeparam name="TR">Destination type</typeparam> + /// <returns>New data aggregation builder of destination type</returns> + IDataAggregation<TR> Aggregate<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> aggregation) where TR : class; + + /// <summary> + /// Sets the specified group by expression and aggregation + /// </summary> + /// <param name="groupBy">Group by expression, should be a NewExpression or MemberInitExpression e.g. (x, a) => new {CategoryName = x.CategoryName, AveragePrice = a.Sum(x.Price)}</param> + /// <typeparam name="TR">Destination type</typeparam> + /// <returns>New data aggregation builder of destination type</returns> + IDataAggregation<TR> GroupBy<TR>(Expression<Func<T, IAggregationFunction<T>, TR>> groupBy) where TR : class; +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedBoundClient.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedBoundClient.cs new file mode 100644 index 000000000..0d589d89e --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedBoundClient.cs @@ -0,0 +1,48 @@ +using System; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +/// <summary> +/// Provides access to extended collection-bound OData operations e.g. data aggregation extensions in a fluent style. +/// </summary> +/// <typeparam name="T">The entity type.</typeparam> +public interface IExtendedBoundClient<T> : IBoundClient<T> where T : class +{ + /// <summary> + /// Applies the configured data aggregation to the entries + /// </summary> + /// <param name="dataAggregation">Data aggregation builder</param> + /// <typeparam name="T">Source entry type</typeparam> + /// <typeparam name="TR">Destination entry type</typeparam> + /// <returns>New extended bound client with applied data aggregation.</returns> + /// <remarks>To avoid errors while parsing the response of OData service + /// it could be necessary to enable ignoring of unmapped properties (see <see cref="ODataClientSettings.IgnoreUnmappedProperties"/>).</remarks> + IExtendedBoundClient<TR> Apply<TR>(Func<IDataAggregation<T>, IDataAggregation<TR>> dataAggregation) where TR : class; + + /// <summary> + /// Applies the specified data aggregation command to the entries + /// </summary> + /// <param name="dataAggregationCommand">Data aggregation command</param> + /// <typeparam name="T">Entry type</typeparam> + /// <returns>Self.</returns> + IExtendedBoundClient<T> Apply(string dataAggregationCommand); + + /// <summary> + /// Applies the specified data aggregation command to the entries + /// </summary> + /// <param name="dataAggregationCommand">Data aggregation command</param> + /// <typeparam name="T">Source entry type</typeparam> + /// <typeparam name="TR">Destination entry type</typeparam> + /// <returns>New extended bound client with applied data aggregation.</returns> + /// <remarks>To avoid errors while parsing the response of OData service + /// it could be necessary to enable ignoring of unmapped properties (see <see cref="ODataClientSettings.IgnoreUnmappedProperties"/>).</remarks> + IExtendedBoundClient<TR> Apply<TR>(string dataAggregationCommand) where TR : class; + + /// <summary> + /// Applies the specified data aggregation to the entries + /// </summary> + /// <param name="dataAggregation">Dynamic data aggregation builder</param> + /// <typeparam name="T">Source entry type</typeparam> + /// <returns>New extended bound client with applied data aggregation.</returns> + IExtendedBoundClient<T> Apply(DynamicDataAggregation dataAggregation); +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedODataClient.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedODataClient.cs new file mode 100644 index 000000000..b7134b728 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/IExtendedODataClient.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public interface IExtendedODataClient +{ + /// <summary> + /// Returns an instance of a fluent extended OData client for the specified collection. + /// </summary> + /// <param name="collectionName">Name of the collection.</param> + /// <returns>The fluent extended OData client instance.</returns> + IExtendedBoundClient<IDictionary<string, object>> For(string collectionName); + /// <summary> + /// Returns an instance of a fluent extended OData client for the specified collection. + /// </summary> + /// <param name="expression">Collection expression.</param> + /// <returns>The fluent extended OData client instance.</returns> + IExtendedBoundClient<ODataEntry> For(ODataExpression expression); + /// <summary> + /// Returns an instance of a fluent extended OData client for the specified collection. + /// </summary> + /// <param name="collectionName">Name of the collection.</param> + /// <returns>The fluent extended OData client instance.</returns> + IExtendedBoundClient<T> For<T>(string collectionName = null) where T : class; +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/ODataClientExtensions.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/ODataClientExtensions.cs new file mode 100644 index 000000000..eaf7005b5 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/ODataClientExtensions.cs @@ -0,0 +1,31 @@ +using System; + +namespace Simple.OData.Client.V4.Adapter.Extensions; + +public static class ODataClientExtensions +{ + /// <summary> + /// Adds OData extensions e.g. data aggregation extensions to the OData client + /// </summary> + /// <param name="client">OData client to extend</param> + /// <returns>Extended OData client</returns> + public static IExtendedODataClient WithExtensions(this IODataClient client) + { + if (client is not ODataClient oDataClient) + { + throw new ArgumentException("Client should be ODataClient"); + } + + return WithExtensions(oDataClient); + } + + /// <summary> + /// Adds OData extensions e.g. data aggregation extensions to the OData client + /// </summary> + /// <param name="client">OData client to extend</param> + /// <returns>Extended OData client</returns> + public static ExtendedODataClient WithExtensions(this ODataClient client) + { + return new ExtendedODataClient(client); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Extensions/ODataDynamicDataAggregation.cs b/src/Simple.OData.Client.V4.Adapter/Extensions/ODataDynamicDataAggregation.cs new file mode 100644 index 000000000..91615a086 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Extensions/ODataDynamicDataAggregation.cs @@ -0,0 +1,10 @@ +using Simple.OData.Client.V4.Adapter.Extensions; + +namespace Simple.OData.Client; + +public static class ODataDynamicDataAggregation +{ + public static DynamicDataAggregation Builder => new(); + + public static DynamicAggregationFunction AggregationFunction => new(); +} diff --git a/src/Simple.OData.Client.V4.Adapter/Metadata.cs b/src/Simple.OData.Client.V4.Adapter/Metadata.cs new file mode 100644 index 000000000..8dcc0553d --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Metadata.cs @@ -0,0 +1,577 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Simple.OData.Client.V4.Adapter; + +public class Metadata : MetadataBase +{ + private readonly IEdmModel _model; + + public Metadata(IEdmModel model, INameMatchResolver nameMatchResolver, bool ignoreUnmappedProperties, bool unqualifiedNameCall) : base(nameMatchResolver, ignoreUnmappedProperties, unqualifiedNameCall) + { + _model = model; + } + + public override string GetEntityCollectionExactName(string collectionName) + { + if (TryGetEntitySet(collectionName, out var entitySet)) + { + return entitySet.Name; + } + else if (TryGetSingleton(collectionName, out var singleton)) + { + return singleton.Name; + } + else if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(collectionName, $"Entity collection [{collectionName}] not found"); + } + + public override bool EntityCollectionRequiresOptimisticConcurrencyCheck(string collectionName) + { + IEdmVocabularyAnnotatable annotatable = null; + if (TryGetEntitySet(collectionName, out var entitySet)) + { + annotatable = entitySet; + } + else if (TryGetSingleton(collectionName, out var singleton)) + { + annotatable = singleton; + } + else if (TryGetEntityType(collectionName, out var entityType)) + { + annotatable = entityType; + } + else + { + return false; + } + + return annotatable.VocabularyAnnotations(_model).Any(x => x.Term.Name == "OptimisticConcurrency"); + } + + public override string GetDerivedEntityTypeExactName(string collectionName, string entityTypeName) + { + IEdmEntityType entityType; + if (TryGetEntitySet(collectionName, out var entitySet)) + { + entityType = (_model.FindAllDerivedTypes(entitySet.EntityType()) + .BestMatch(x => (x as IEdmEntityType).Name, entityTypeName, NameMatchResolver)) as IEdmEntityType; + if (entityType != null) + { + return entityType.Name; + } + } + else if (TryGetSingleton(collectionName, out var singleton)) + { + entityType = (_model.FindDirectlyDerivedTypes(singleton.EntityType()) + .BestMatch(x => (x as IEdmEntityType).Name, entityTypeName, NameMatchResolver)) as IEdmEntityType; + if (entityType != null) + { + return entityType.Name; + } + } + else if (TryGetEntityType(entityTypeName, out entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(entityTypeName, $"Entity type [{entityTypeName}] not found"); + } + + public override string GetEntityTypeExactName(string collectionName) + { + var entityType = GetEntityTypes().BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (entityType != null) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(collectionName, $"Entity type [{collectionName}] not found"); + } + + public override string GetLinkedCollectionName(string instanceTypeName, string typeName, out bool isSingleton) + { + isSingleton = false; + + if (TryGetEntitySet(instanceTypeName, out var entitySet)) + { + return entitySet.Name; + } + + if (TryGetSingleton(instanceTypeName, out var singleton)) + { + isSingleton = true; + return singleton.Name; + } + + if (TryGetEntityType(instanceTypeName, out var entityType)) + { + return entityType.Name; + } + + if (TryGetEntitySet(typeName, out entitySet)) + { + return entitySet.Name; + } + + if (TryGetSingleton(typeName, out singleton)) + { + isSingleton = true; + return singleton.Name; + } + + if (TryGetEntityType(typeName, out entityType)) + { + return entityType.Name; + } + + throw new UnresolvableObjectException(typeName, $"Linked collection for type [{instanceTypeName}] not found"); + } + + public override string GetQualifiedTypeName(string typeName) + { + if (TryGetEntityType(typeName, out var entityType)) + { + return string.Join(".", entityType.Namespace, entityType.Name); + } + + if (TryGetComplexType(typeName, out var complexType)) + { + return string.Join(".", complexType.Namespace, complexType.Name); + } + + if (TryGetEnumType(typeName, out var enumType)) + { + return string.Join(".", enumType.Namespace, enumType.Name); + } + + throw new UnresolvableObjectException(typeName, $"Type [{typeName}] not found"); + } + + public override bool IsOpenType(string collectionName) + { + return GetEntityType(collectionName).IsOpen; + } + + public override bool IsTypeWithId(string collectionName) + { + if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType.DeclaredKey != null; + } + else + { + return false; + } + } + + public override IEnumerable<string> GetStructuralPropertyNames(string collectionName) + { + return GetEntityType(collectionName).StructuralProperties().Select(x => x.Name); + } + + public override bool HasStructuralProperty(string collectionName, string propertyName) + { + return GetEntityType(collectionName).StructuralProperties().Any(x => NameMatchResolver.IsMatch(x.Name, propertyName)); + } + + public override string GetStructuralPropertyExactName(string collectionName, string propertyName) + { + return GetStructuralProperty(collectionName, propertyName).Name; + } + + public override string GetStructuralPropertyPath(string collectionName, params string[] propertyNames) + { + if (propertyNames == null || propertyNames.Length == 0) + { + throw new ArgumentNullException(nameof(propertyNames)); + } + + var property = GetStructuralProperty(collectionName, propertyNames[0]); + var exactNames = new List<string> { property.Name }; + + for (var i = 1; i < propertyNames.Length; i++) + { + var entityType = GetComplexType(property.Type.FullName()); + property = GetStructuralProperty(entityType, propertyNames[i]); + exactNames.Add(property.Name); + + if (property.Type.IsPrimitive()) + { + break; + } + } + + return string.Join("/", exactNames.ToArray()); + } + + public override bool HasNavigationProperty(string collectionName, string propertyName) + { + return GetEntityType(collectionName).NavigationProperties().Any(x => NameMatchResolver.IsMatch(x.Name, propertyName)); + } + + public override string GetNavigationPropertyExactName(string collectionName, string propertyName) + { + return GetNavigationProperty(collectionName, propertyName).Name; + } + + public override string GetNavigationPropertyPartnerTypeName(string collectionName, string propertyName) + { + var navigationProperty = GetNavigationProperty(collectionName, propertyName); + if (!TryGetEntityType(navigationProperty.Type, out var entityType)) + { + throw new UnresolvableObjectException(propertyName, $"No association found for [{propertyName}]."); + } + + return entityType.Name; + } + + public override bool IsNavigationPropertyCollection(string collectionName, string propertyName) + { + var property = GetNavigationProperty(collectionName, propertyName); + return property.Type.Definition.TypeKind == EdmTypeKind.Collection; + } + + public override IEnumerable<string> GetDeclaredKeyPropertyNames(string collectionName) + { + var entityType = GetEntityType(collectionName); + while (entityType.DeclaredKey == null && entityType.BaseEntityType() != null) + { + entityType = entityType.BaseEntityType(); + } + + if (entityType.DeclaredKey == null) + { + return Array.Empty<string>(); + } + + return entityType.DeclaredKey.Select(x => x.Name); + } + + /// <summary> + /// Gets a collection of key name collections that represent the alternate keys of the given entity + /// </summary> + /// <see cref="https://github.com/OData/vocabularies/blob/master/OData.Community.Keys.V1.md"/> + /// <param name="collectionName">The collection name of the entity</param> + /// <returns>An enumeration of string enumerations representing the key names</returns> + public override IEnumerable<IEnumerable<string>> GetAlternateKeyPropertyNames(string collectionName) + { + var entityType = GetEntityType(collectionName); + return _model.GetAlternateKeysAnnotation(entityType) + .Select(x => x.Select(y => y.Key)); + } + + public override IEnumerable<string> GetNavigationPropertyNames(string collectionName) + { + return GetEntityType(collectionName).NavigationProperties().Select(x => x.Name); + } + + public override string GetFunctionFullName(string functionName) + { + var function = GetFunction(functionName); + return function.IsBound && !UnqualifiedNameCall ? function.ShortQualifiedName() : function.Name; + } + + public override EntityCollection GetFunctionReturnCollection(string functionName) + { + var function = GetFunction(functionName); + + if (function.ReturnType == null) + { + return null; + } + + return !TryGetEntityType(function.ReturnType, out var entityType) ? null : new EntityCollection(entityType.Name); + } + + public override string GetFunctionVerb(string functionName) + { + return RestVerbs.Get; + } + + public override string GetActionFullName(string actionName) + { + var action = GetAction(actionName); + return action.IsBound && !UnqualifiedNameCall ? action.ShortQualifiedName() : action.Name; + } + + public override EntityCollection GetActionReturnCollection(string actionName) + { + var action = GetAction(actionName); + + if (action.ReturnType == null) + { + return null; + } + + return !TryGetEntityType(action.ReturnType, out var entityType) ? null : new EntityCollection(entityType.Name); + } + + private IEnumerable<IEdmEntitySet> GetEntitySets() + { + return _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).EntitySets()); + } + + private bool TryGetEntitySet(string entitySetName, out IEdmEntitySet entitySet) + { + if (entitySetName.Contains("/")) + { + entitySetName = entitySetName.Split('/').First(); + } + + entitySet = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).EntitySets()) + .BestMatch(x => x.Name, entitySetName, NameMatchResolver); + + return entitySet != null; + } + + private IEnumerable<IEdmSingleton> GetSingletons() + { + return _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).Singletons()); + } + + private bool TryGetSingleton(string singletonName, out IEdmSingleton singleton) + { + if (singletonName.Contains("/")) + { + singletonName = singletonName.Split('/').First(); + } + + singleton = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).Singletons()) + .BestMatch(x => x.Name, singletonName, NameMatchResolver); + + return singleton != null; + } + + private IEnumerable<IEdmEntityType> GetEntityTypes() + { + return _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Entity) + .Select(x => x as IEdmEntityType); + } + + private IEdmEntityType GetEntityType(string collectionName) + { + if (TryGetEntityType(collectionName, out var entityType)) + { + return entityType; + } + + throw new UnresolvableObjectException(collectionName, $"Entity type [{collectionName}] not found"); + } + + private bool TryGetEntityType(string collectionName, out IEdmEntityType entityType) + { + entityType = null; + if (collectionName.Contains("/")) + { + var segments = GetCollectionPathSegments(collectionName).ToList(); + + if (SegmentsIncludeTypeSpecification(segments)) + { + var derivedTypeName = segments.Last(); + var derivedType = GetEntityTypes().SingleOrDefault(x => x.FullName() == derivedTypeName); + if (derivedType != null) + { + entityType = derivedType; + return true; + } + } + else + { + var collection = NavigateToCollection(collectionName); + var entityTypes = GetEntityTypes(); + entityType = entityTypes.SingleOrDefault(x => x.Name == collection.Name); + if (entityType != null) + { + return true; + } + else + { + entityType = entityTypes.BestMatch(x => x.Name, collection.Name, NameMatchResolver); + if (entityType != null) + { + return true; + } + } + } + } + else + { + var entitySet = GetEntitySets() + .BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (entitySet != null) + { + entityType = entitySet.EntityType(); + return true; + } + + var singleton = GetSingletons() + .BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (singleton != null) + { + entityType = singleton.EntityType(); + return true; + } + + var derivedType = GetEntityTypes().BestMatch(x => x.Name, collectionName, NameMatchResolver); + if (derivedType != null) + { + var baseType = GetEntityTypes() + .SingleOrDefault(x => _model.FindDirectlyDerivedTypes(x).Contains(derivedType)); + if (baseType != null && GetEntitySets().Any(x => x.EntityType() == baseType)) + { + entityType = derivedType; + return true; + } + // Check if we can return it anyway + entityType = derivedType; + return true; + } + } + + return false; + } + + private bool TryGetEntityType(IEdmTypeReference typeReference, out IEdmEntityType entityType) + { + entityType = typeReference.Definition.TypeKind == EdmTypeKind.Collection + ? (typeReference.Definition as IEdmCollectionType).ElementType.Definition as IEdmEntityType + : typeReference.Definition.TypeKind == EdmTypeKind.Entity + ? typeReference.Definition as IEdmEntityType + : null; + return entityType != null; + } + + private IEdmComplexType GetComplexType(string typeName) + { + if (TryGetComplexType(typeName, out var complexType)) + { + return complexType; + } + + throw new UnresolvableObjectException(typeName, $"ComplexType [{typeName}] not found"); + } + + private bool TryGetComplexType(string typeName, out IEdmComplexType complexType) + { + complexType = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Complex) + .Select(x => x as IEdmComplexType) + .BestMatch(x => x.Name, typeName, NameMatchResolver); + + return complexType != null; + } + + private bool TryGetEnumType(string typeName, out IEdmEnumType enumType) + { + enumType = _model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.TypeDefinition && (x as IEdmType).TypeKind == EdmTypeKind.Enum) + .Select(x => x as IEdmEnumType) + .BestMatch(x => x.Name, typeName, NameMatchResolver); + + return enumType != null; + } + + private IEdmStructuralProperty GetStructuralProperty(string collectionName, string propertyName) + { + var edmType = GetEntityType(collectionName); + return GetStructuralProperty(edmType, propertyName); + } + + private IEdmStructuralProperty GetStructuralProperty(IEdmStructuredType edmType, string propertyName) + { + var property = edmType.StructuralProperties().BestMatch( + x => x.Name, propertyName, NameMatchResolver); + + if (property == null) + { + throw new UnresolvableObjectException(propertyName, $"Structural property [{propertyName}] not found"); + } + + return property; + } + + private IEdmNavigationProperty GetNavigationProperty(string collectionName, string propertyName) + { + var property = GetEntityType(collectionName).NavigationProperties() + .BestMatch(x => x.Name, propertyName, NameMatchResolver); + + if (property == null) + { + throw new UnresolvableObjectException(propertyName, $"Association [{propertyName}] not found"); + } + + return property; + } + + private IEdmFunction GetFunction(string functionName) + { + IEdmFunction function = null; + if (_model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).Elements + .Where(y => y.ContainerElementKind == EdmContainerElementKind.FunctionImport)) + .BestMatch(x => x.Name, functionName, NameMatchResolver) is IEdmFunctionImport functionImport) + { + function = functionImport.Function; + } + + if (function == null) + { + function = _model.SchemaElements + .BestMatch(x => x.SchemaElementKind == EdmSchemaElementKind.Function, + x => x.Name, functionName, NameMatchResolver) as IEdmFunction; + } + + if (function == null) + { + throw new UnresolvableObjectException(functionName, $"Function [{functionName}] not found"); + } + + return function; + } + + private IEdmAction GetAction(string actionName) + { + IEdmAction action = null; + if (_model.SchemaElements + .Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer) + .SelectMany(x => (x as IEdmEntityContainer).Elements + .Where(y => y.ContainerElementKind == EdmContainerElementKind.ActionImport)) + .BestMatch(x => x.Name, actionName, NameMatchResolver) is IEdmActionImport actionImport) + { + action = actionImport.Action; + } + + if (action == null) + { + action = _model.SchemaElements + .BestMatch(x => x.SchemaElementKind == EdmSchemaElementKind.Action, + x => x.Name, actionName, NameMatchResolver) as IEdmAction; + } + + if (action == null) + { + throw new UnresolvableObjectException(actionName, $"Action [{actionName}] not found"); + } + + return action; + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ODataAdapter.cs b/src/Simple.OData.Client.V4.Adapter/ODataAdapter.cs new file mode 100644 index 000000000..9532237e9 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ODataAdapter.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using Microsoft.OData.Edm; +using Microsoft.Spatial; + +using Simple.OData.Client.Adapter; + +namespace Simple.OData.Client.V4.Adapter; + +public class ODataAdapter : ODataAdapterBase +{ + private readonly ISession _session; + private IMetadata _metadata; + + public override AdapterVersion AdapterVersion => AdapterVersion.V4; + + public override ODataPayloadFormat DefaultPayloadFormat => ODataPayloadFormat.Json; + + public ODataAdapter(ISession session, IODataModelAdapter modelAdapter) + { + _session = session; + ProtocolVersion = modelAdapter.ProtocolVersion; + Model = modelAdapter.Model as IEdmModel; + + session.TypeCache.Converter.RegisterTypeConverter(typeof(GeographyPoint), TypeConverters.CreateGeographyPoint); + session.TypeCache.Converter.RegisterTypeConverter(typeof(GeometryPoint), TypeConverters.CreateGeometryPoint); + } + + public new IEdmModel Model + { + get => base.Model as IEdmModel; + set + { + base.Model = value; + _metadata = null; + } + } + + public override string GetODataVersionString() + { + return ProtocolVersion switch + { + ODataProtocolVersion.V4 => "V4", + _ => throw new InvalidOperationException($"Unsupported OData protocol version: \"{ProtocolVersion}\""), + }; + } + + public override IMetadata GetMetadata() + { + // TODO: Should use a MetadataFactory here + return _metadata ??= new MetadataCache(new Metadata(Model, _session.Settings.NameMatchResolver, _session.Settings.IgnoreUnmappedProperties, _session.Settings.UnqualifiedNameCall)); + } + + public override ICommandFormatter GetCommandFormatter() + { + return new CommandFormatter(_session); + } + + public override IResponseReader GetResponseReader() + { + return new ResponseReader(_session, Model); + } + + public override IRequestWriter GetRequestWriter(Lazy<IBatchWriter> deferredBatchWriter) + { + return new RequestWriter(_session, Model, deferredBatchWriter); + } + + public override IBatchWriter GetBatchWriter(IDictionary<object, IDictionary<string, object>> batchEntries) + { + return new BatchWriter(_session, batchEntries); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ODataExtensions.cs b/src/Simple.OData.Client.V4.Adapter/ODataExtensions.cs new file mode 100644 index 000000000..d576cce8b --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ODataExtensions.cs @@ -0,0 +1,33 @@ +using Microsoft.OData; + +namespace Simple.OData.Client.V4.Adapter; + +internal static class ODataExtensions +{ + public static ODataMessageReaderSettings ToReaderSettings(this ISession session) + { + return session.Settings.ToReaderSettings(); + } + + public static ODataMessageReaderSettings ToReaderSettings(this ODataClientSettings settings) + { + var readerSettings = new ODataMessageReaderSettings(); + // TODO ODataLib7 + if (settings.IgnoreUnmappedProperties) + { + readerSettings.Validations &= ~Microsoft.OData.ValidationKinds.ThrowOnUndeclaredPropertyForNonOpenType; + } + + readerSettings.MessageQuotas.MaxReceivedMessageSize = int.MaxValue; + readerSettings.ShouldIncludeAnnotation = x => settings.IncludeAnnotationsInResults; + + if (!settings.ReadUntypedAsString) + { + readerSettings.Version = ODataVersion.V401; + readerSettings.MaxProtocolVersion = ODataVersion.V401; + readerSettings.ReadUntypedAsString = false; + } + + return readerSettings; + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ODataModelAdapter.cs b/src/Simple.OData.Client.V4.Adapter/ODataModelAdapter.cs new file mode 100644 index 000000000..7cf9f893f --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ODataModelAdapter.cs @@ -0,0 +1,48 @@ +using System.IO; +using System.Net.Http; +using System.Xml; + +using Microsoft.OData; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Csdl; + +namespace Simple.OData.Client.V4.Adapter; + +public class ODataModelAdapter : ODataModelAdapterBase +{ + public override AdapterVersion AdapterVersion => AdapterVersion.V4; + + public new IEdmModel Model + { + get => base.Model as IEdmModel; + set => base.Model = value; + } + + private ODataModelAdapter(string protocolVersion) + { + ProtocolVersion = protocolVersion; + } + + public ODataModelAdapter(string protocolVersion, HttpResponseMessage response) + : this(protocolVersion) + { + var readerSettings = new ODataMessageReaderSettings + { + MessageQuotas = { MaxReceivedMessageSize = int.MaxValue } + }; + using var messageReader = new ODataMessageReader(new ODataResponseMessage(response), readerSettings); + Model = messageReader.ReadMetadataDocument(); + } + + public ODataModelAdapter(string protocolVersion, string metadataString) + : this(protocolVersion) + { + // HACK to prevent failure due to unsupported ConcurrencyMode attribute + metadataString = metadataString + .Replace(" ConcurrencyMode=\"None\"", "") + .Replace(" ConcurrencyMode=\"Fixed\"", ""); + using var reader = XmlReader.Create(new StringReader(metadataString)); + reader.MoveToContent(); + Model = CsdlReader.Parse(reader); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ODataRequestMessage.cs b/src/Simple.OData.Client.V4.Adapter/ODataRequestMessage.cs new file mode 100644 index 000000000..184d817d7 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ODataRequestMessage.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using Microsoft.OData; + +namespace Simple.OData.Client.V4.Adapter; + +internal class ODataRequestMessage : IODataRequestMessageAsync +{ + private MemoryStream _stream; + private readonly Dictionary<string, string> _headers = new(); + + public ODataRequestMessage() + { + } + + public string GetHeader(string headerName) + { + return _headers.TryGetValue(headerName, out var value) ? value : null; + } + + public void SetHeader(string headerName, string headerValue) + { + _headers.Add(headerName, headerValue); + } + + public Stream GetStream() + { + return _stream ??= new MemoryStream(); + } + + public Task<Stream> GetStreamAsync() + { + var completionSource = new TaskCompletionSource<Stream>(); + completionSource.SetResult(GetStream()); + return completionSource.Task; + } + + public IEnumerable<KeyValuePair<string, string>> Headers => _headers; + + public Uri Url { get; set; } + + public string Method { get; set; } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ODataResponseMessage.cs b/src/Simple.OData.Client.V4.Adapter/ODataResponseMessage.cs new file mode 100644 index 000000000..374e7cb6d --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ODataResponseMessage.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.OData; + +namespace Simple.OData.Client.V4.Adapter; + +internal class ODataResponseMessage : IODataResponseMessageAsync +{ + private readonly HttpResponseMessage _response; + + public ODataResponseMessage(HttpResponseMessage response) + { + _response = response; + } + + public Task<Stream> GetStreamAsync() + { + if (_response.Content != null) + { + return _response.Content.ReadAsStreamAsync(); + } + else + { + var completionSource = new TaskCompletionSource<Stream>(); + completionSource.SetResult(Stream.Null); + return completionSource.Task; + } + } + + public string GetHeader(string headerName) + { + if (headerName == HttpLiteral.ContentType || headerName == HttpLiteral.ContentLength) + { + if (_response.Content.Headers.Contains(headerName)) + { + return _response.Content.Headers.GetValues(headerName).FirstOrDefault(); + } + else + { + return null; + } + } + else + { + if (_response.Headers.Contains(headerName)) + { + return _response.Headers.GetValues(headerName).FirstOrDefault(); + } + else + { + return null; + } + } + } + + public Stream GetStream() + { + var getStreamTask = GetStreamAsync(); + getStreamTask.Wait(); + + return getStreamTask.Result; + } + + public IEnumerable<KeyValuePair<string, string>> Headers => _response.Headers.Select(h => new KeyValuePair<string, string>(h.Key, h.Value.FirstOrDefault())); + + public void SetHeader(string headerName, string headerValue) + { + throw new NotImplementedException(); + } + + public int StatusCode + { + get => (int)_response.StatusCode; + set => throw new NotImplementedException(); + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/RequestWriter.cs b/src/Simple.OData.Client.V4.Adapter/RequestWriter.cs new file mode 100644 index 000000000..d7bd9dd56 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/RequestWriter.cs @@ -0,0 +1,653 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using System.Xml.Linq; +using Microsoft.OData; +using Microsoft.OData.Edm; +using Microsoft.Spatial; +using Simple.OData.Client.Extensions; + +namespace Simple.OData.Client.V4.Adapter +{ + public class RequestWriter : RequestWriterBase + { + private readonly IEdmModel _model; + private readonly Dictionary<ODataResource, ResourceProperties> _resourceEntryMap; + private readonly Dictionary<ODataResource, List<ODataResource>> _resourceEntries; + + public RequestWriter(ISession session, IEdmModel model, Lazy<IBatchWriter> deferredBatchWriter) + : base(session, deferredBatchWriter) + { + _model = model; + _resourceEntryMap = new Dictionary<ODataResource, ResourceProperties>(); + _resourceEntries = new Dictionary<ODataResource, List<ODataResource>>(); + } + + private void RegisterRootEntry(ODataResource root) + { + _resourceEntries.Add(root, new List<ODataResource>()); + } + + private void UnregisterRootEntry(ODataResource root) + { + if (_resourceEntries.TryGetValue(root, out var entries)) + { + foreach (var entry in entries) + { + _resourceEntryMap.Remove(entry); + } + + _resourceEntries.Remove(root); + } + } + + protected async override Task<Stream> WriteEntryContentAsync(string method, string collection, string commandText, IDictionary<string, object> entryData, bool resultRequired) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, collection, entryData, commandText, resultRequired).ConfigureAwait(false) + : new ODataRequestMessage(); + + if (method == RestVerbs.Get || method == RestVerbs.Delete) + { + return null; + } + + var entityType = _model.FindDeclaredType( + _session.Metadata.GetQualifiedTypeName(collection)) as IEdmEntityType; + var model = (method == RestVerbs.Patch || method == RestVerbs.Merge) ? new EdmDeltaModel(_model, entityType, entryData.Keys) : _model; + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), model); + var contentId = _deferredBatchWriter?.Value.GetContentId(entryData, null); + var entityCollection = _session.Metadata.NavigateToCollection(collection); + var entryDetails = _session.Metadata.ParseEntryDetails(entityCollection.Name, entryData, contentId); + + var entryWriter = await messageWriter.CreateODataResourceWriterAsync().ConfigureAwait(false); + var entry = CreateODataEntry(entityType.FullName(), entryDetails.Properties, null); + + RegisterRootEntry(entry); + await WriteEntryPropertiesAsync(entryWriter, entry, entryDetails.Links).ConfigureAwait(false); + UnregisterRootEntry(entry); + + return IsBatch ? null : await message.GetStreamAsync().ConfigureAwait(false); + } + + private async Task WriteEntryPropertiesAsync(ODataWriter entryWriter, ODataResource entry, IDictionary<string, List<ReferenceLink>> links) + { + await entryWriter.WriteStartAsync(entry).ConfigureAwait(false); + if (_resourceEntryMap.TryGetValue(entry, out var resourceEntry)) + { + if (resourceEntry.CollectionProperties != null) + { + foreach (var prop in resourceEntry.CollectionProperties) + { + if (prop.Value != null) + { + await WriteNestedCollectionAsync(entryWriter, prop.Key, prop.Value).ConfigureAwait(false); + } + } + } + + if (resourceEntry.StructuralProperties != null) + { + foreach (var prop in resourceEntry.StructuralProperties) + { + if (prop.Value != null) + { + await WriteNestedEntryAsync(entryWriter, prop.Key, prop.Value).ConfigureAwait(false); + } + } + } + } + + if (links != null) + { + foreach (var link in links) + { + if (link.Value.Any(x => x.LinkData != null)) + { + await WriteLinkAsync(entryWriter, entry.TypeName, link.Key, link.Value).ConfigureAwait(false); + } + } + } + + await entryWriter.WriteEndAsync().ConfigureAwait(false); + } + + private async Task WriteNestedCollectionAsync(ODataWriter entryWriter, string entryName, ODataCollectionValue collection) + { + await entryWriter.WriteStartAsync(new ODataNestedResourceInfo() + { + Name = entryName, + IsCollection = true, + }).ConfigureAwait(false); + + await entryWriter.WriteStartAsync(new ODataResourceSet()); + foreach (var item in collection.Items) + { + await WriteEntryPropertiesAsync(entryWriter, item as ODataResource, null); + } + + await entryWriter.WriteEndAsync().ConfigureAwait(false); + + await entryWriter.WriteEndAsync().ConfigureAwait(false); + } + + private async Task WriteNestedEntryAsync(ODataWriter entryWriter, string entryName, ODataResource entry) + { + await entryWriter.WriteStartAsync(new ODataNestedResourceInfo() + { + Name = entryName, + IsCollection = false, + }).ConfigureAwait(false); + + await WriteEntryPropertiesAsync(entryWriter, entry, null); + + await entryWriter.WriteEndAsync().ConfigureAwait(false); + } + + protected async override Task<Stream> WriteLinkContentAsync(string method, string commandText, string linkIdent) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, null, null, commandText, false).ConfigureAwait(false) + : new ODataRequestMessage(); + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model); + var link = new ODataEntityReferenceLink + { + Url = Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, linkIdent) + }; + await messageWriter.WriteEntityReferenceLinkAsync(link).ConfigureAwait(false); + return IsBatch ? null : await message.GetStreamAsync().ConfigureAwait(false); + } + + protected async override Task<Stream> WriteFunctionContentAsync(string method, string commandText) + { + if (IsBatch) + { + await CreateBatchOperationMessageAsync(method, null, null, commandText, true).ConfigureAwait(false); + } + + return null; + } + + protected async override Task<Stream> WriteActionContentAsync(string method, string commandText, string actionName, string boundTypeName, IDictionary<string, object> parameters) + { + var message = IsBatch + ? await CreateBatchOperationMessageAsync(method, null, null, commandText, true).ConfigureAwait(false) + : new ODataRequestMessage(); + + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model); + Func<IEdmOperationParameter, IEdmType, bool> typeMatch = (parameter, baseType) => + parameter == null || + parameter.Type.Definition == baseType || + parameter.Type.Definition.TypeKind == EdmTypeKind.Collection && + (parameter.Type.Definition as IEdmCollectionType).ElementType.Definition == baseType; + + var action = boundTypeName == null + ? _model.SchemaElements.BestMatch( + x => x.SchemaElementKind == EdmSchemaElementKind.Action, + x => x.Name, actionName, _session.Settings.NameMatchResolver) as IEdmAction + : _model.SchemaElements.BestMatch( + x => x.SchemaElementKind == EdmSchemaElementKind.Action + && typeMatch( + ((IEdmAction)x).Parameters.FirstOrDefault(p => p.Name == "bindingParameter"), + _model.FindDeclaredType(boundTypeName)), + x => x.Name, actionName, _session.Settings.NameMatchResolver) as IEdmAction; + var parameterWriter = await messageWriter.CreateODataParameterWriterAsync(action).ConfigureAwait(false); + + await parameterWriter.WriteStartAsync().ConfigureAwait(false); + + foreach (var parameter in parameters) + { + var operationParameter = action.Parameters.BestMatch(x => x.Name, parameter.Key, _session.Settings.NameMatchResolver); + if (operationParameter == null) + { + throw new UnresolvableObjectException(parameter.Key, $"Parameter [{parameter.Key}] not found for action [{actionName}]"); + } + + await WriteOperationParameterAsync(parameterWriter, operationParameter, parameter.Key, parameter.Value).ConfigureAwait(false); + } + + await parameterWriter.WriteEndAsync().ConfigureAwait(false); + return IsBatch ? null : await message.GetStreamAsync().ConfigureAwait(false); + } + + private async Task WriteOperationParameterAsync(ODataParameterWriter parameterWriter, IEdmOperationParameter operationParameter, string paramName, object paramValue) + { + switch (operationParameter.Type.Definition.TypeKind) + { + case EdmTypeKind.Primitive: + var value = GetPropertyValue(operationParameter.Type, paramValue, null); + await parameterWriter.WriteValueAsync(paramName, value).ConfigureAwait(false); + break; + + case EdmTypeKind.Enum: + await parameterWriter.WriteValueAsync(paramName, new ODataEnumValue(paramValue.ToString())).ConfigureAwait(false); + break; + + case EdmTypeKind.Untyped: + await parameterWriter.WriteValueAsync(paramName, new ODataUntypedValue { RawValue = paramValue.ToString() }).ConfigureAwait(false); + break; + + case EdmTypeKind.Entity: + { + var entryWriter = await parameterWriter.CreateResourceWriterAsync(paramName).ConfigureAwait(false); + var paramValueDict = paramValue.ToDictionary(TypeCache); + var contentId = _deferredBatchWriter?.Value.GetContentId(paramValueDict, null); + + var typeName = operationParameter.Type.Definition.FullTypeName(); + if (paramValueDict.ContainsKey("@odata.type") && paramValueDict["@odata.type"] is string) + { + typeName = paramValueDict["@odata.type"] as string; + paramValueDict.Remove("@odata.type"); + } + + var entryDetails = _session.Metadata.ParseEntryDetails(typeName, paramValueDict, contentId); + var entry = CreateODataEntry(typeName, entryDetails.Properties, null); + + RegisterRootEntry(entry); + await WriteEntryPropertiesAsync(entryWriter, entry, entryDetails.Links).ConfigureAwait(false); + UnregisterRootEntry(entry); + } + + break; + case EdmTypeKind.Complex: + { + var entryWriter = await parameterWriter.CreateResourceWriterAsync(paramName).ConfigureAwait(false); + var paramValueDict = paramValue.ToDictionary(TypeCache); + + var typeName = operationParameter.Type.Definition.FullTypeName(); + if (paramValueDict.ContainsKey("@odata.type") && paramValueDict["@odata.type"] is string) + { + typeName = paramValueDict["@odata.type"] as string; + paramValueDict.Remove("@odata.type"); + } + + var entry = CreateODataEntry(typeName, paramValueDict, null); + + RegisterRootEntry(entry); + await WriteEntryPropertiesAsync(entryWriter, entry, new Dictionary<string, List<ReferenceLink>>()).ConfigureAwait(false); + UnregisterRootEntry(entry); + } + + break; + + case EdmTypeKind.Collection: + var collectionType = operationParameter.Type.Definition as IEdmCollectionType; + var elementType = collectionType.ElementType; + if (elementType.Definition.TypeKind == EdmTypeKind.Entity) + { + var feedWriter = await parameterWriter.CreateResourceSetWriterAsync(paramName).ConfigureAwait(false); + var feed = new ODataResourceSet(); + await feedWriter.WriteStartAsync(feed).ConfigureAwait(false); + foreach (var item in (IEnumerable)paramValue) + { + var feedEntry = CreateODataEntry(elementType.Definition.FullTypeName(), item.ToDictionary(TypeCache), null); + + RegisterRootEntry(feedEntry); + await feedWriter.WriteStartAsync(feedEntry).ConfigureAwait(false); + await feedWriter.WriteEndAsync().ConfigureAwait(false); + UnregisterRootEntry(feedEntry); + } + + await feedWriter.WriteEndAsync().ConfigureAwait(false); + } + else + { + var collectionWriter = await parameterWriter.CreateCollectionWriterAsync(paramName).ConfigureAwait(false); + await collectionWriter.WriteStartAsync(new ODataCollectionStart()).ConfigureAwait(false); + foreach (var item in (IEnumerable)paramValue) + { + await collectionWriter.WriteItemAsync(item).ConfigureAwait(false); + } + + await collectionWriter.WriteEndAsync().ConfigureAwait(false); + } + + break; + + default: + throw new NotSupportedException($"Unable to write action parameter of a type {operationParameter.Type.Definition.TypeKind}"); + } + } + + protected async override Task<Stream> WriteStreamContentAsync(Stream stream, bool writeAsText) + { + var message = new ODataRequestMessage(); + using var messageWriter = new ODataMessageWriter(message, GetWriterSettings(ODataFormat.RawValue), _model); + var value = writeAsText ? (object)Utils.StreamToString(stream) : Utils.StreamToByteArray(stream); + await messageWriter.WriteValueAsync(value); + return await message.GetStreamAsync(); + } + + protected override string FormatLinkPath(string entryIdent, string navigationPropertyName, string linkIdent = null) + { + var linkPath = $"{entryIdent}/{navigationPropertyName}/$ref"; + if (linkIdent != null) + { + var link = _session.Settings.UseAbsoluteReferenceUris + ? Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, linkIdent).AbsoluteUri + : linkIdent; + linkPath += $"?$id={link}"; + } + + return linkPath; + } + + protected override void AssignHeaders(ODataRequest request) + { + // Prefer in a GET or DELETE request does not have any effect per standard + if (request.Method != RestVerbs.Get && request.Method != RestVerbs.Delete) + { + request.Headers[HttpLiteral.Prefer] = + request.ResultRequired ? HttpLiteral.ReturnRepresentation : HttpLiteral.ReturnMinimal; + } + } + + private async Task<IODataRequestMessageAsync> CreateBatchOperationMessageAsync(string method, string collection, IDictionary<string, object> entryData, string commandText, bool resultRequired) + { + var message = (await _deferredBatchWriter.Value.CreateOperationMessageAsync( + Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, commandText), + method, collection, entryData, resultRequired).ConfigureAwait(false)) as IODataRequestMessageAsync; + + return message; + } + + private async Task WriteLinkAsync(ODataWriter entryWriter, string typeName, string linkName, IEnumerable<ReferenceLink> links) + { + var navigationProperty = (_model.FindDeclaredType(typeName) as IEdmEntityType).NavigationProperties() + .BestMatch(x => x.Name, linkName, _session.Settings.NameMatchResolver); + var isCollection = navigationProperty.Type.Definition.TypeKind == EdmTypeKind.Collection; + + var linkType = GetNavigationPropertyEntityType(navigationProperty); + var linkTypeWithKey = linkType; + while (linkTypeWithKey.DeclaredKey == null && linkTypeWithKey.BaseEntityType() != null) + { + linkTypeWithKey = linkTypeWithKey.BaseEntityType(); + } + + await entryWriter.WriteStartAsync(new ODataNestedResourceInfo() + { + Name = linkName, + IsCollection = isCollection, + Url = new Uri(ODataNamespace.Related + linkType, UriKind.Absolute), + }).ConfigureAwait(false); + + foreach (var referenceLink in links) + { + var linkKey = linkTypeWithKey.DeclaredKey; + var linkEntry = referenceLink.LinkData.ToDictionary(TypeCache); + var contentId = GetContentId(referenceLink); + string linkUri; + if (contentId != null) + { + linkUri = "$" + contentId; + } + else + { + var formattedKey = _session.Adapter.GetCommandFormatter().ConvertKeyValuesToUriLiteral( + linkKey.ToDictionary(x => x.Name, x => linkEntry[x.Name]), true); + var linkedCollectionName = _session.Metadata.GetLinkedCollectionName( + referenceLink.LinkData.GetType().Name, linkTypeWithKey.Name, out var isSingleton); + linkUri = linkedCollectionName + (isSingleton ? string.Empty : formattedKey); + } + + var link = new ODataEntityReferenceLink + { + Url = Utils.CreateAbsoluteUri(_session.Settings.BaseUri.AbsoluteUri, linkUri) + }; + + await entryWriter.WriteEntityReferenceLinkAsync(link).ConfigureAwait(false); + } + + await entryWriter.WriteEndAsync().ConfigureAwait(false); + } + + private static IEdmEntityType GetNavigationPropertyEntityType(IEdmNavigationProperty navigationProperty) + { + if (navigationProperty.Type.Definition.TypeKind == EdmTypeKind.Collection) + { + return (navigationProperty.Type.Definition as IEdmCollectionType)?.ElementType.Definition as IEdmEntityType; + } + else + { + return navigationProperty.Type.Definition as IEdmEntityType; + } + } + + private ODataMessageWriterSettings GetWriterSettings(ODataFormat preferredContentType = null) + { + var settings = new ODataMessageWriterSettings() + { + ODataUri = new ODataUri() + { + RequestUri = _session.Settings.BaseUri, + }, + EnableMessageStreamDisposal = IsBatch, + Validations = (Microsoft.OData.ValidationKinds)_session.Settings.Validations + }; + var contentType = preferredContentType ?? ODataFormat.Json; + settings.SetContentType(contentType); + return settings; + } + + private ODataResource CreateODataEntry(string typeName, IDictionary<string, object> properties, ODataResource root) + { + var entry = new ODataResource { TypeName = typeName }; + root ??= entry; + + var entryType = _model.FindDeclaredType(entry.TypeName); + var typeProperties = typeof(IEdmEntityType).IsTypeAssignableFrom(entryType.GetType()) + ? (entryType as IEdmEntityType).Properties().ToList() + : (entryType as IEdmComplexType).Properties().ToList(); + + string findMatchingPropertyName(string name) + { + var property = typeProperties.BestMatch(y => y.Name, name, _session.Settings.NameMatchResolver); + return property != null ? property.Name : name; + } + + IEdmTypeReference findMatchingPropertyType(string name) + { + var property = typeProperties.BestMatch(y => y.Name, name, _session.Settings.NameMatchResolver); + return property?.Type; + } + + bool isStructural(IEdmTypeReference type) => + type != null && type.TypeKind() == EdmTypeKind.Complex; + bool isStructuralCollection(IEdmTypeReference type) => + type != null && type.TypeKind() == EdmTypeKind.Collection && type.AsCollection().ElementType().TypeKind() == EdmTypeKind.Complex; + bool isPrimitive(IEdmTypeReference type) => + !isStructural(type) && !isStructuralCollection(type); + + var resourceEntry = new ResourceProperties(entry); + entry.Properties = properties + .Where(x => isPrimitive(findMatchingPropertyType(x.Key))) + .Select(x => new ODataProperty + { + Name = findMatchingPropertyName(x.Key), + Value = GetPropertyValue(typeProperties, x.Key, x.Value, root) + }).ToList(); + resourceEntry.CollectionProperties = properties + .Where(x => isStructuralCollection(findMatchingPropertyType(x.Key))) + .Select(x => new KeyValuePair<string, ODataCollectionValue>( + findMatchingPropertyName(x.Key), + GetPropertyValue(typeProperties, x.Key, x.Value, root) as ODataCollectionValue)) + .ToDictionary(); + resourceEntry.StructuralProperties = properties + .Where(x => isStructural(findMatchingPropertyType(x.Key))) + .Select(x => new KeyValuePair<string, ODataResource>( + findMatchingPropertyName(x.Key), + GetPropertyValue(typeProperties, x.Key, x.Value, root) as ODataResource)) + .ToDictionary(); + _resourceEntryMap.Add(entry, resourceEntry); + if (root != null && _resourceEntries.TryGetValue(root, out var entries)) + { + entries.Add(entry); + } + + return entry; + } + + private object GetPropertyValue(IEnumerable<IEdmProperty> properties, string key, object value, ODataResource root) + { + var property = properties.BestMatch(x => x.Name, key, _session.Settings.NameMatchResolver); + return property != null ? GetPropertyValue(property.Type, value, root) : value; + } + + private object GetPropertyValue(IEdmTypeReference propertyType, object value, ODataResource root) + { + if (value == null) + { + return value; + } + + switch (propertyType.TypeKind()) + { + case EdmTypeKind.Complex: + if (Converter.HasObjectConverter(value.GetType())) + { + return Converter.Convert(value, value.GetType()); + } + + return CreateODataEntry(propertyType.FullName(), value.ToDictionary(TypeCache), root); + + case EdmTypeKind.Collection: + var collection = propertyType.AsCollection(); + return new ODataCollectionValue + { + TypeName = propertyType.FullName(), + Items = ((IEnumerable)value).Cast<object>().Select(x => GetPropertyValue(collection.ElementType(), x, root)), + }; + + case EdmTypeKind.Primitive: + var mappedTypes = _typeMap.Where(x => x.Value == ((IEdmPrimitiveType)propertyType.Definition).PrimitiveKind); + if (mappedTypes.Any()) + { + foreach (var mappedType in mappedTypes) + { + if (TryConvert(value, mappedType.Key, out var result)) + { + return result; + } + else if (TypeCache.TryConvert(value, mappedType.Key, out result)) + { + return result; + } + } + + throw new NotSupportedException($"Conversion is not supported from type {value.GetType()} to OData type {propertyType}"); + } + + return value; + + case EdmTypeKind.Enum: + return new ODataEnumValue(value.ToString()); + + case EdmTypeKind.Untyped: + return new ODataUntypedValue { RawValue = value.ToString() }; + + case EdmTypeKind.None: + if (Converter.HasObjectConverter(value.GetType())) + { + return Converter.Convert(value, value.GetType()); + } + + throw new NotSupportedException($"Conversion is not supported from type {value.GetType()} to OData type {propertyType}"); + + default: + return value; + } + } + + public static bool TryConvert(object value, Type targetType, out object result) + { + try + { + if ((targetType == typeof(Date) || targetType == typeof(Date?)) && value is DateTimeOffset dto) + { + result = new Date(dto.Year, dto.Month, dto.Day); + return true; + } + else if ((targetType == typeof(Date) || targetType == typeof(Date?)) && value is DateTime dt) + { + result = new Date(dt.Year, dt.Month, dt.Day); + return true; + } + + result = null; + return false; + } + catch (Exception) + { + result = null; + return false; + } + } + + private static readonly Dictionary<Type, EdmPrimitiveTypeKind> _typeMap = new[] + { + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(string), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(bool), EdmPrimitiveTypeKind.Boolean), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(bool?), EdmPrimitiveTypeKind.Boolean), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte), EdmPrimitiveTypeKind.Byte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte?), EdmPrimitiveTypeKind.Byte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(decimal), EdmPrimitiveTypeKind.Decimal), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(decimal?), EdmPrimitiveTypeKind.Decimal), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(double), EdmPrimitiveTypeKind.Double), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(double?), EdmPrimitiveTypeKind.Double), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Guid), EdmPrimitiveTypeKind.Guid), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Guid?), EdmPrimitiveTypeKind.Guid), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(short), EdmPrimitiveTypeKind.Int16), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(short?), EdmPrimitiveTypeKind.Int16), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(int), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(int?), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(long), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(long?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(sbyte), EdmPrimitiveTypeKind.SByte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(sbyte?), EdmPrimitiveTypeKind.SByte), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(float), EdmPrimitiveTypeKind.Single), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(float?), EdmPrimitiveTypeKind.Single), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(byte[]), EdmPrimitiveTypeKind.Binary), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Stream), EdmPrimitiveTypeKind.Stream), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Geography), EdmPrimitiveTypeKind.Geography), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyPoint), EdmPrimitiveTypeKind.GeographyPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyLineString), EdmPrimitiveTypeKind.GeographyLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyPolygon), EdmPrimitiveTypeKind.GeographyPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyCollection), EdmPrimitiveTypeKind.GeographyCollection), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiLineString), EdmPrimitiveTypeKind.GeographyMultiLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiPoint), EdmPrimitiveTypeKind.GeographyMultiPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeographyMultiPolygon), EdmPrimitiveTypeKind.GeographyMultiPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Geometry), EdmPrimitiveTypeKind.Geometry), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryPoint), EdmPrimitiveTypeKind.GeometryPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryLineString), EdmPrimitiveTypeKind.GeometryLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryPolygon), EdmPrimitiveTypeKind.GeometryPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryCollection), EdmPrimitiveTypeKind.GeometryCollection), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiLineString), EdmPrimitiveTypeKind.GeometryMultiLineString), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiPoint), EdmPrimitiveTypeKind.GeometryMultiPoint), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(GeometryMultiPolygon), EdmPrimitiveTypeKind.GeometryMultiPolygon), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTimeOffset), EdmPrimitiveTypeKind.DateTimeOffset), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(DateTimeOffset?), EdmPrimitiveTypeKind.DateTimeOffset), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(TimeSpan), EdmPrimitiveTypeKind.Duration), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(TimeSpan?), EdmPrimitiveTypeKind.Duration), + + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(XElement), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ushort), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ushort?), EdmPrimitiveTypeKind.Int32), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(uint), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(uint?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ulong), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(ulong?), EdmPrimitiveTypeKind.Int64), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char[]), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char), EdmPrimitiveTypeKind.String), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(char?), EdmPrimitiveTypeKind.String), + + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Date), EdmPrimitiveTypeKind.Date), + new KeyValuePair<Type, EdmPrimitiveTypeKind>(typeof(Date?), EdmPrimitiveTypeKind.Date), + } + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + } +} \ No newline at end of file diff --git a/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs b/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs new file mode 100644 index 000000000..dbabe56fc --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using Microsoft.OData; + +namespace Simple.OData.Client.V4.Adapter; + +public class ResourceProperties +{ + public ODataResource Resource { get; } + public string TypeName { get; set; } + public IEnumerable<ODataProperty> PrimitiveProperties => Resource.Properties; + public IDictionary<string, ODataCollectionValue> CollectionProperties { get; set; } + public IDictionary<string, ODataResource> StructuralProperties { get; set; } + + public ResourceProperties(ODataResource resource) + { + Resource = resource; + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs b/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs new file mode 100644 index 000000000..3f3d6d857 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs @@ -0,0 +1,316 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.OData; +using Microsoft.OData.Edm; + +namespace Simple.OData.Client.V4.Adapter +{ + public class ResponseReader : ResponseReaderBase + { + private readonly IEdmModel _model; + + public ResponseReader(ISession session, IEdmModel model) + : base(session) + { + _model = model; + } + + public override Task<ODataResponse> GetResponseAsync(HttpResponseMessage responseMessage) + { + return GetResponseAsync(new ODataResponseMessage(responseMessage)); + } + + public async Task<ODataResponse> GetResponseAsync(IODataResponseMessageAsync responseMessage) + { + if (responseMessage.StatusCode == (int)HttpStatusCode.NoContent) + { + return ODataResponse.FromStatusCode(TypeCache, responseMessage.StatusCode, responseMessage.Headers); + } + + var readerSettings = _session.ToReaderSettings(); + using var messageReader = new ODataMessageReader(responseMessage, readerSettings, _model); + var payloadKind = messageReader.DetectPayloadKind().ToList(); + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Error)) + { + return ODataResponse.FromStatusCode(TypeCache, responseMessage.StatusCode, responseMessage.Headers); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Value)) + { + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Collection)) + { + throw new NotImplementedException(); + } + else + { + return ODataResponse.FromValueStream(TypeCache, await responseMessage.GetStreamAsync().ConfigureAwait(false), responseMessage is ODataBatchOperationResponseMessage); + } + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Batch)) + { + return await ReadResponse(messageReader.CreateODataBatchReader()).ConfigureAwait(false); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.ResourceSet)) + { + return ReadResponse(messageReader.CreateODataResourceSetReader(), responseMessage); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Collection)) + { + return ReadResponse(messageReader.CreateODataCollectionReader()); + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Property)) + { + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Resource)) + { + return ReadResponse(messageReader.CreateODataResourceReader(), responseMessage); + } + else + { + var property = messageReader.ReadProperty(); + return ODataResponse.FromProperty(TypeCache, property.Name, GetPropertyValue(property.Value)); + } + } + else if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Delta)) + { + if (payloadKind.Any(x => x.PayloadKind == ODataPayloadKind.Resource)) + { + return ReadResponse(messageReader.CreateODataResourceReader(), responseMessage); + } + else + { + return ReadResponse(messageReader.CreateODataDeltaResourceSetReader(), responseMessage); + } + } + else + { + return ReadResponse(messageReader.CreateODataResourceReader(), responseMessage); + } + } + + private async Task<ODataResponse> ReadResponse(ODataBatchReader odataReader) + { + var batch = new List<ODataResponse>(); + + while (odataReader.Read()) + { + switch (odataReader.State) + { + case ODataBatchReaderState.ChangesetStart: + break; + + case ODataBatchReaderState.Operation: + var operationMessage = odataReader.CreateOperationResponseMessage(); + if (operationMessage.StatusCode == (int)HttpStatusCode.NoContent) + { + batch.Add(ODataResponse.FromStatusCode(TypeCache, operationMessage.StatusCode, operationMessage.Headers)); + } + else if (operationMessage.StatusCode >= (int)HttpStatusCode.BadRequest) + { + batch.Add(ODataResponse.FromStatusCode(TypeCache, + operationMessage.StatusCode, + operationMessage.Headers, + await operationMessage.GetStreamAsync().ConfigureAwait(false), + _session.Settings.WebRequestExceptionMessageSource)); + } + else + { + batch.Add(await GetResponseAsync(operationMessage).ConfigureAwait(false)); + } + + break; + + case ODataBatchReaderState.ChangesetEnd: + break; + } + } + + return ODataResponse.FromBatch(TypeCache, batch); + } + + private ODataResponse ReadResponse(ODataCollectionReader odataReader) + { + var collection = new List<object>(); + + while (odataReader.Read()) + { + if (odataReader.State == ODataCollectionReaderState.Completed) + { + break; + } + + switch (odataReader.State) + { + case ODataCollectionReaderState.CollectionStart: + break; + + case ODataCollectionReaderState.Value: + collection.Add(GetPropertyValue(odataReader.Item)); + break; + + case ODataCollectionReaderState.CollectionEnd: + break; + } + } + + return ODataResponse.FromCollection(TypeCache, collection); + } + + private ODataResponse ReadResponse(ODataReader odataReader, IODataResponseMessageAsync responseMessage) + { + ResponseNode rootNode = null; + var nodeStack = new Stack<ResponseNode>(); + + while (odataReader.Read()) + { + if (odataReader.State == ODataReaderState.Completed) + { + break; + } + + switch (odataReader.State) + { + case ODataReaderState.ResourceSetStart: + case ODataReaderState.DeltaResourceSetStart: + StartFeed(nodeStack); + break; + + case ODataReaderState.ResourceSetEnd: + case ODataReaderState.DeltaResourceSetEnd: + EndFeed(nodeStack, CreateAnnotations(odataReader.Item as ODataResourceSetBase), ref rootNode); + break; + + case ODataReaderState.ResourceStart: + StartEntry(nodeStack); + break; + + case ODataReaderState.ResourceEnd: + EndEntry(nodeStack, ref rootNode, odataReader.Item); + break; + + case ODataReaderState.NestedResourceInfoStart: + StartNavigationLink(nodeStack, (odataReader.Item as ODataNestedResourceInfo).Name); + break; + + case ODataReaderState.NestedResourceInfoEnd: + EndNavigationLink(nodeStack); + break; + } + } + + return ODataResponse.FromNode(TypeCache, rootNode, responseMessage.Headers); + } + + protected override void ConvertEntry(ResponseNode entryNode, object entry) + { + if (entry != null) + { + var odataEntry = entry as ODataResource; + foreach (var property in odataEntry.Properties) + { + entryNode.Entry.Data.Add(property.Name, GetPropertyValue(property.Value)); + } + + entryNode.Entry.SetAnnotations(CreateAnnotations(odataEntry)); + } + } + + private ODataFeedAnnotations CreateAnnotations(ODataResourceSetBase feed) + { + return new ODataFeedAnnotations() + { + Id = feed.Id?.AbsoluteUri, + Count = feed.Count, + DeltaLink = feed.DeltaLink, + NextPageLink = feed.NextPageLink, + InstanceAnnotations = feed.InstanceAnnotations, + }; + } + + private ODataEntryAnnotations CreateAnnotations(ODataResource odataEntry) + { + string id = null; + Uri readLink = null; + Uri editLink = null; + string etag = null; + if (_session.Adapter.GetMetadata().IsTypeWithId(odataEntry.TypeName)) + { + try + { + // odataEntry.Id is null for transient entities (s. http://docs.oasis-open.org/odata/odata-json-format/v4.0/errata03/os/odata-json-format-v4.0-errata03-os-complete.html#_Toc453766634) + id = odataEntry.Id?.AbsoluteUri; + readLink = odataEntry.ReadLink; + editLink = odataEntry.EditLink; + etag = odataEntry.ETag; + } + catch (ODataException) + { + // Ingored + } + } + + return new ODataEntryAnnotations + { + Id = id, + TypeName = odataEntry.TypeName, + ReadLink = readLink, + EditLink = editLink, + ETag = etag, + MediaResource = CreateAnnotations(odataEntry.MediaResource), + InstanceAnnotations = odataEntry.InstanceAnnotations, + }; + } + + private ODataMediaAnnotations CreateAnnotations(ODataStreamReferenceValue value) + { + return value == null ? null : new ODataMediaAnnotations + { + ContentType = value.ContentType, + ReadLink = value.ReadLink, + EditLink = value.EditLink, + ETag = value.ETag, + }; + } + + private object GetPropertyValue(object value) + { + if (value is ODataResource resource) + { + return resource.Properties.ToDictionary(x => x.Name, x => GetPropertyValue(x.Value)); + } + else if (value is ODataCollectionValue collectionValue) + { + return collectionValue.Items.Select(GetPropertyValue).ToList(); + } + else if (value is ODataEnumValue enumValue) + { + return enumValue.Value; + } + else if (value is ODataUntypedValue untypedValue) + { + var result = untypedValue.RawValue; + if (!string.IsNullOrEmpty(result)) + { + // Remove extra quoting as has been read as a string + // Don't just replace \" in case we have embedded quotes + if (result.StartsWith("\"") && result.EndsWith("\"")) + { + result = result.Substring(1, result.Length - 2); + } + } + + return result; + } + else if (value is ODataStreamReferenceValue referenceValue) + { + return CreateAnnotations(referenceValue); + } + else + { + return value; + } + } + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj b/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj new file mode 100644 index 000000000..ada6fb2a3 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj @@ -0,0 +1,16 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461;netstandard2.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.OData.Core" Version="7.9.4" /> + <ProjectReference Include="..\Simple.OData.Client.Core\Simple.OData.Client.Core.csproj" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/Simple.OData.Client.V4.Adapter/TypeConverters.cs b/src/Simple.OData.Client.V4.Adapter/TypeConverters.cs new file mode 100644 index 000000000..c38c51b4e --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/TypeConverters.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using Microsoft.Spatial; + +namespace Simple.OData.Client.V4.Adapter; + +public static class TypeConverters +{ + public static GeographyPoint CreateGeographyPoint(IDictionary<string, object> source) + { + return GeographyPoint.Create( + CoordinateSystem.Geography(source.ContainsKey("CoordinateSystem") + ? source.GetValueOrDefault<CoordinateSystem>("CoordinateSystem").EpsgId + : null), + source.GetValueOrDefault<double>("Latitude"), + source.GetValueOrDefault<double>("Longitude"), + source.GetValueOrDefault<double?>("Z"), + source.GetValueOrDefault<double?>("M")); + } + + public static GeometryPoint CreateGeometryPoint(IDictionary<string, object> source) + { + return GeometryPoint.Create( + CoordinateSystem.Geometry(source.ContainsKey("CoordinateSystem") + ? source.GetValueOrDefault<CoordinateSystem>("CoordinateSystem").EpsgId + : null), + source.GetValueOrDefault<double>("Latitude"), + source.GetValueOrDefault<double>("Longitude"), + source.GetValueOrDefault<double?>("Z"), + source.GetValueOrDefault<double?>("M")); + } + + private static T GetValueOrDefault<T>(this IDictionary<string, object> source, string key) + { + if (source.TryGetValue(key, out var value)) + { + return (T)value; + } + else + { + return default(T); + } + } +} diff --git a/src/Simple.OData.Client.V4.Adapter/V4Adapter.cs b/src/Simple.OData.Client.V4.Adapter/V4Adapter.cs new file mode 100644 index 000000000..a489cd15e --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/V4Adapter.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client; + +public static class V4Adapter +{ + public static void Reference() { } +} diff --git a/src/Simple.OData.Client.V4.Adapter/V4ModelAdapter.cs b/src/Simple.OData.Client.V4.Adapter/V4ModelAdapter.cs new file mode 100644 index 000000000..6e99c90b3 --- /dev/null +++ b/src/Simple.OData.Client.V4.Adapter/V4ModelAdapter.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.Client; + +public static class V4ModelAdapter +{ + public static void Reference() { } +} diff --git a/src/Simple.OData.NorthwindModel/App.config b/src/Simple.OData.NorthwindModel/App.config new file mode 100644 index 000000000..caa1b9ee7 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/App.config @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + + <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> + <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Services" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> + </startup> + <entityFramework> + <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> + <providers> + <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> + </providers> + </entityFramework> +</configuration> diff --git a/src/Simple.OData.NorthwindModel/Entities/Address.cs b/src/Simple.OData.NorthwindModel/Entities/Address.cs new file mode 100644 index 000000000..90a35fe99 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Address.cs @@ -0,0 +1,10 @@ +namespace Simple.OData.NorthwindModel.Entities; + +public class Address +{ + //public AddressType Type { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string PostalCode { get; set; } + public string Country { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/AddressType.cs b/src/Simple.OData.NorthwindModel/Entities/AddressType.cs new file mode 100644 index 000000000..17af566cb --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/AddressType.cs @@ -0,0 +1,9 @@ +namespace Simple.OData.NorthwindModel.Entities; + +public enum AddressType +{ + Unknown, + Private, + Corporate, + Delivery +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Category.cs b/src/Simple.OData.NorthwindModel/Entities/Category.cs new file mode 100644 index 000000000..3fcb755f9 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Category.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Category +{ + [Key] + public int CategoryID { get; set; } + [Required] + public string CategoryName { get; set; } + public string Description { get; set; } + public byte[] Picture { get; set; } + + public virtual ICollection<Product> Products { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Customer.cs b/src/Simple.OData.NorthwindModel/Entities/Customer.cs new file mode 100644 index 000000000..ab65399ae --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Customer.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Customer +{ + [Key] + public string CustomerID { get; set; } + [Required] + public string CompanyName { get; set; } + public string ContactName { get; set; } + public string ContactTitle { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string PostalCode { get; set; } + public string Country { get; set; } + public string Phone { get; set; } + public string Fax { get; set; } + + public virtual ICollection<Order> Orders { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Employee.cs b/src/Simple.OData.NorthwindModel/Entities/Employee.cs new file mode 100644 index 000000000..32a53a090 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Employee.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Employee +{ + [Key] + public int EmployeeID { get; set; } + [Required] + public string FirstName { get; set; } + [Required] + public string LastName { get; set; } + public string Title { get; set; } + public DateTime? BirthDate { get; set; } + public DateTime? HireDate { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string PostalCode { get; set; } + public string Country { get; set; } + public string HomePhone { get; set; } + public string Extension { get; set; } + public byte[] Photo { get; set; } + public string Notes { get; set; } + public int? ReportsTo { get; set; } + + [ForeignKey("ReportsTo")] + public virtual Employee Superior { get; set; } + public virtual ICollection<Employee> Subordinates { get; set; } + public virtual ICollection<Order> Orders { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Order.cs b/src/Simple.OData.NorthwindModel/Entities/Order.cs new file mode 100644 index 000000000..3a3e884c4 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Order.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Order +{ + [Key] + public int OrderID { get; set; } + public string CustomerID { get; set; } + public int EmployeeID { get; set; } + public string ShipName { get; set; } + public string ShipAddress { get; set; } + public string ShipCity { get; set; } + public string ShipRegion { get; set; } + public string ShipPostalCode { get; set; } + public string ShipCountry { get; set; } + public int? ShipVia { get; set; } + public DateTime OrderDate { get; set; } + public DateTime RequiredDate { get; set; } + public DateTime ShippedDate { get; set; } + public decimal? Freight { get; set; } + + public virtual Employee Employee { get; set; } + public virtual Customer Customer { get; set; } + public virtual ICollection<OrderDetail> Order_Details { get; set; } + [ForeignKey("ShipVia")] + public virtual Shipper Shipper { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/OrderDetail.cs b/src/Simple.OData.NorthwindModel/Entities/OrderDetail.cs new file mode 100644 index 000000000..8c8dcc815 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/OrderDetail.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Simple.OData.NorthwindModel.Entities; + +[Table("Order_Details")] +public class OrderDetail +{ + [Key, Column(Order = 1)] + public int OrderID { get; set; } + [Key, Column(Order = 2)] + public int ProductID { get; set; } + [Required] + public decimal UnitPrice { get; set; } + [Required] + public int Quantity { get; set; } + [Required] + public float Discount { get; set; } + + public virtual Order Order { get; set; } + public virtual Product Product { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Product.cs b/src/Simple.OData.NorthwindModel/Entities/Product.cs new file mode 100644 index 000000000..6a7e5a62e --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Product.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Product +{ + [Key] + public int ProductID { get; set; } + [Required] + public string ProductName { get; set; } + public string EnglishName { get; set; } + public int? SupplierID { get; set; } + public int? CategoryID { get; set; } + public string QuantityPerUnit { get; set; } + public decimal UnitPrice { get; set; } + public short? UnitsInStock { get; set; } + public short? UnitsOnOrder { get; set; } + public short? ReorderLevel { get; set; } + [Required] + public bool Discontinued { get; set; } + + public virtual Supplier Supplier { get; set; } + public virtual Category Category { get; set; } + public virtual ICollection<OrderDetail> OrderDetails { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Ship.cs b/src/Simple.OData.NorthwindModel/Entities/Ship.cs new file mode 100644 index 000000000..c3cc35e2c --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Ship.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.NorthwindModel.Entities; + +public class Ship : Transport +{ + public string ShipName { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Shipper.cs b/src/Simple.OData.NorthwindModel/Entities/Shipper.cs new file mode 100644 index 000000000..1e80bb88f --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Shipper.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Shipper +{ + [Key] + public int ShipperID { get; set; } + [Required] + public string CompanyName { get; set; } + public string Phone { get; set; } + + public virtual ICollection<Order> Orders { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Supplier.cs b/src/Simple.OData.NorthwindModel/Entities/Supplier.cs new file mode 100644 index 000000000..fd5e492f1 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Supplier.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public class Supplier +{ + [Key] + public int SupplierID { get; set; } + [Required] + public string CompanyName { get; set; } + public string ContactName { get; set; } + public string ContactTitle { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string PostalCode { get; set; } + public string Country { get; set; } + public string Phone { get; set; } + public string Fax { get; set; } + + public virtual ICollection<Product> Products { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Transport.cs b/src/Simple.OData.NorthwindModel/Entities/Transport.cs new file mode 100644 index 000000000..991c178ed --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Transport.cs @@ -0,0 +1,11 @@ +using System.ComponentModel.DataAnnotations; + +namespace Simple.OData.NorthwindModel.Entities; + +public abstract class Transport +{ + [Key] + public int TransportID { get; set; } + [Required] + public int TransportType { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/Entities/Truck.cs b/src/Simple.OData.NorthwindModel/Entities/Truck.cs new file mode 100644 index 000000000..469d7ddfd --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Entities/Truck.cs @@ -0,0 +1,6 @@ +namespace Simple.OData.NorthwindModel.Entities; + +public class Truck : Transport +{ + public string TruckNumber { get; set; } +} diff --git a/src/Simple.OData.NorthwindModel/NorthwindContext.cs b/src/Simple.OData.NorthwindModel/NorthwindContext.cs new file mode 100644 index 000000000..7295eb750 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/NorthwindContext.cs @@ -0,0 +1,75 @@ +using System; +using System.ComponentModel.DataAnnotations.Schema; +using System.Data.Entity; +using System.Data.Entity.Core.Objects; +using ActionProviderImplementation; +using Simple.OData.NorthwindModel; +using Simple.OData.NorthwindModel.Entities; + +namespace NorthwindModel; + +public class NorthwindContext : DbContext +{ + static NorthwindContext() + { + Database.SetInitializer(new NorthwindInitializer()); + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + modelBuilder.ComplexType<Address>(); + modelBuilder.Entity<Category>().Property(x => x.CategoryID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Customer>().Property(x => x.CustomerID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Employee>().Property(x => x.EmployeeID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Order>().Property(x => x.OrderID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Product>().Property(x => x.ProductID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Shipper>().Property(x => x.ShipperID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + modelBuilder.Entity<Transport>().Property(x => x.TransportID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); + + base.OnModelCreating(modelBuilder); + } + + private static int NextId = 1000; + + private void SetKey<T>(ObjectStateEntry entry, Action<T> setKey) where T : class + { + if (entry.Entity is T entity) + { + setKey(entity); + } + } + + public override int SaveChanges() + { + ChangeTracker.DetectChanges(); + var context = (this as System.Data.Entity.Infrastructure.IObjectContextAdapter).ObjectContext; + + foreach (var entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified)) + { + SetKey<Category>(entry, x => { if (x.CategoryID == 0) { x.CategoryID = ++NextId; } }); + SetKey<Employee>(entry, x => { if (x.EmployeeID == 0) { x.EmployeeID = ++NextId; } }); + SetKey<Order>(entry, x => { if (x.OrderID == 0) { x.OrderID = ++NextId; } }); + SetKey<Product>(entry, x => { if (x.ProductID == 0) { x.ProductID = ++NextId; } }); + SetKey<Shipper>(entry, x => { if (x.ShipperID == 0) { x.ShipperID = ++NextId; } }); + SetKey<Transport>(entry, x => { if (x.TransportID == 0) { x.TransportID = ++NextId; } }); + } + + return base.SaveChanges(); + } + + public virtual DbSet<Category> Categories { get; set; } + public virtual DbSet<Product> Products { get; set; } + public virtual DbSet<Supplier> Suppliers { get; set; } + public virtual DbSet<Customer> Customers { get; set; } + public virtual DbSet<Employee> Employees { get; set; } + public virtual DbSet<Shipper> Shippers { get; set; } + public virtual DbSet<Order> Orders { get; set; } + public virtual DbSet<OrderDetail> Order_Details { get; set; } + public virtual DbSet<Transport> Transport { get; set; } + + [NonBindableAction] + public Address PassThroughAddress(Address address) + { + return address; + } +} diff --git a/src/Simple.OData.NorthwindModel/NorthwindData.sql b/src/Simple.OData.NorthwindModel/NorthwindData.sql new file mode 100644 index 000000000..f1e5056b1 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/NorthwindData.sql @@ -0,0 +1,8811 @@ +set quoted_identifier on +go +set identity_insert "Categories" on +go +ALTER TABLE "Categories" NOCHECK CONSTRAINT ALL +go +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(1,'Beverages','Soft drinks, coffees, teas, beers, and ales',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000000010000000001000000001001000000000000001010100010000100100000001010001000000100100000100000010101000100000100010000000000000000000001000000001000000000000001000000000000000000000001001001000000000000000000001001001000012507070100000001000000001000100100000010000001000000000100100100000001001010101010000000000000000000001001000100000101010101000000000000000000000000000000000000101020525363777777777777753530100101000100000000001010001001000100100100000000000100000000000000000100010001001010001000000010010000000000000100000000000000000000000000000001014343577777777777777777777777777770100120001010100102000000000000000000000000100100010010000000000100010000000000000000010010000001001001010100000000000000000000000000000001021617777777775757535353525777777777777770150120000100010101000000000000000001000000000000001001001000000000010010000010010010000101001001000000100000001000000000000000000000001417777737617376377775767771707752777777776340161210300000000010000000000010000000000000000000000000000000000000000100000000000100000000000010000100000000000000000000000000100503677577571705014000000101070717775777777775334101400010101010001010010101000000000000000000000000000001000000000000000000000000000000001010001000001000000000000000000000000010357353000000000000000000000000000171777777777470612101000000001000001000000010000000000000000000000000000000100010703010101210000000000000000000000000000000000000000000000101034350000000010653435777570477474700000107757777171000000101001000101000101010000100000000000000000001041477110131035750020040477301000100000000000000000000000000000000000000000010004014176577707000067777777776560404007371734361701400001241000001000000001000020400000200000101747767777000101073777577777775372100000000100000000000000100100000000010000010000037676476700004000577470416717477421405000434140343000565120510100301014002107171370701437777777775777777112103177777777777705757771010000000100000000000000010000100000101000470440440671007477776777777614060600742524001777777747646776752060250003021716737777777777777774747727574777001016777777777767173317703000101010000000010000000001000000000000420460200077427477767777777775677777746474656606767777665746776757151253507166737777733746777577777777572776771100517777777767776015713141030020001000000001001000000000010100067440044047761477767776706767777674765673470657505767375664746757777271252167717733771737776777677567476577577121103775777777776717027753121010101000010000000000100001010000010767060004776747776776777756776777777777042477676067777467474747676777565256531311771177376477777576757777747710110701777777767777401717340000000000100001000000000001000000101004776540666050777677657777677470774777776747664607777376747476777777677717173735377717737747777777777774774770011271077777767777763171735210121010100000000000000000000010000000300406767757676775077006767477774774777774747770476777656706746777657777777777777777777737667777476574774777771001031777777776767741371771000000000010000000000000000000000101005707442567656176006767004770476707700767770000477747734656446745677676777777777777777777375667777777777777777773100010777777777777771753521010101010000000000100010000000010007777712152503004670077774767427047247776577564700076737747670474277777777777777777367777777765777777777777434777750757775377767676770172773100000000001000000000000001000101007170701614204046007746040676167470774167743656777740077776067407465677677777777777757717777737476775716161243410303077777777577775210000011350001001001000000101000100000100002100171525675070074340670005004076700706570757777767770077744746466567777677777777777777777773776777610000000137775350317777773777737750701000101021001000100000000000010100010010300067777761650604065047604760746404776406705656776770077764750474747677777777777777777773733747777773011735777777777777777757777777777767412041001001000001000001000000010001000577744140000607406706767676776777776477756767777447700774076646764777567777777777777737373737764677747753527777776777777777776365735353513010300120301010000000000000000001000107000210006147767674646040404040066667767677775476777046644644044456776767777777777733737373776777776774244777377717712777165357577534242040010010010000010001000000100010000100300050000146664000000101030734352101100065677767077770047604774377676777767777777777373737333756477657075377100770770177776525271673001012101210301001030000000100100000001000005000060046160004000125343510110101000000000007740000047744733737377757677777777777373737377737656757777777373101676770777717775671773001010300000021021010000000000000100000000100077400000414021414000000000000000000000000000300000777777773737377677677777777777373737333735677677777377710177777717774705271767340300000010101000100000100000100100000001014005660000000737560600000000000000000000000000004730777773733373737777747677777777737337353761666777777737737017771677077353777574735310012101000000010010100000100000000010004300065400000000400141254140404000000000000000000037737776773777373733777677777777777677646746565756747777773773017017710765654352735770017010303031010010000000100001001010030704000660000000000000040000000000000000000000000007777514673373373737777777476777777777474644764666776777777772711031076117307374357477373010341050043030012100100010100100012500000047000000000046742000000000000000000000000077776677777377377373733737767777777777767645676507574777657610057121101731611574777637735105270125213010050210100001070210301650000000640000000006776406776464000040641434177777767667614737337337373777777767677777776564767474664667477761775271112116101002331211101052721016120140161034106010173075617770000570047400047400446000000467770504777767173573756767776767737737773737377776777777777776564746765477576777176700774656474731010011000001250165214716170121012011070777173777400063770040000760467600000000740760600777067777777676767676767337333373737377747677777777776767747424676747677157701677677676131331213131301371317310312161525053073077777777700047577700000006006760000640400006474046740777777777676767676737737777373777777767777777777674746767467477777743670175305325352527135335353170143414371617130131211777177777777001737770006760476677047064466400047640077747777777767676767673773373333737373776746777777765467674704747674765375610731773573752534737417017035303130101010030001427777777737770047777770047460704644064400004640067004767077777777767676767673377377773737777776777777777766565665670767767775077007563153347370731013213617034343434307031417121177773777777740257737700027447000064000000000640064006760777777776767767767773373333373737777476777777777746765674464747767763477027172753717175777757757357171717171717433616163777777735737400737773400460660046000000000004000600676747777777776766766767377377777373737777747677777776756567467746765777117100537153353773777777777777777777777777737757737573777773773772047777350000474044600440000000000040047774007777700667677677633333333333737777766767777777777667476564657476760600007353375373177777777777777777777777777777737777377733753777740007177770000664024640640000000000004646700477777007767667666777777777773737777777777777776777446467565676777535373525317137177177777777777777777777777777777775377773753771737700076737350000000474664665646644400400464000077700067677677773333333333373737776676777777777767777766767765677771713175217037173777777777777777777777777775375377173753777377773700057777004007477667764766767667467600000004770000767667666677777777777337777775677777771777772604000404067761171613131535353717777777777777777777737753777777777753773717735374700000500670446677777776777776777776561004661000006767767777333131101100777777666567777567704040505140777716536353147173135371777777777777777777577577777777777777777353753777371700000001776040404040404606076767776170000470000071101100100000000000110157177776777776470124100002530004777111301313017535371777777777771771737377773777377753773717353252165376164464265700400000000000004040040076774000440000777500750000000000000000017347766777746564100000000400300652513530753303170737777775777777777777737777777773777753757035353134317137313533000046440000004400000000053770000000000077343100000000000000000004135777775676176000700000004044213052153115353371357777377737737775777777573757777777353213503161617163521657257000006700060042400000005273710000000000007577000000000000000000531117777665447405244000000040031501313030721353537737775777577753737717737777777777777035343343131303103171317337130100000567000200000031756000000000000000077771012100101101131117133375466747465707047000071502161011531534353517753773737353777737777777777737537713503353170717173561343105307030525370047014161717433700000000000000000000101011770000006402737373767456467777777773065773510137343531317073737773775777773777577375735737577777343375377373673071316352731717173137000007737352713574000000000000000000000000464000000046733737373446647777777777740007373737110310343537171773565373537577177375737777777777773353737717175357727753717163737357770000071735371677700000000000000000000000000460004004676173737374745777777777777004631713112031213131317337177737777777377777777777777777777775377737777377371717353773571747737377617771677773570000000000000000000000000400400000000406337333464673777777777774007733373311001013135317177737775377377777777777777777777777737777573777377777736771773773716717535343373525773700000000000000000000000000000000000000037337374433373777777777700007740010313133173137337357753777777777777777777777777777777737737775375737373717367171653735727367374753737174000000000000000000004600000000000000000373733643773373777777777404073000000000012137331737377777777777777777777777777777777777577773737773757575735317273353531757535737377576300000000000000000000424400000004000040007373375733337333377777770000700000000000000000070477777777777777777777777777777777777737773757753757373737777775357273673373773535737357000000000000000000004406000000000404004037337333773737737377777700400000000000004006404043777777773757777777777777777777777777773773737773777777717371737357171752573473721777340000000000000000000006446400000000004004337337333373337337337777100004705340100016503777747717717757777777777777777777777777773757757773577173577775777577377773777373757777177700000000000660000640047674000000004000003737337373377337373737774040077760004000000044004737777777777777777777777777777777777773773773577377777377377377377537177535757373537710000000000004040004640604600000000000400073733737337333737373777700000047477420000000000435777777777777777777777777777777777777757777777777777777777777777777777737737377577777000000000004600000460064600000004000000000373373337337373737373777600000000000550043617777777777777777777777777777777777777777773777777773777777777777777777777777777777737737777000000000000000000000406400000004040000003373373737337373737373770040000000002777357777777777777777777777777777777777777775777777777773777573717775777777577377777777777777757340400000000000000040004064000000000000000073373373337333373737377750000000000057777777777777777777777777777777177775737577737777777735777773777773773775377377735735735375737737000000000000000044600406060000000000000046337337337373777373733777007460000000377777777777777777777777777777777737737777377777377777737371775353753753777777777777777777737717750000000000000000000000444404400400000000063733737337333337373377774067400000000777777777777777777777777375773777757777177177377735777777777377777777777777777777777777777777777704000000000000000000006000666066000000004433733337337377333377777700676004004407777777777777777777777777777757357375377777775777737777777777777777777777777777777777777777777772010000000000000000000040004404440000000000373737337337337377777777704600674660077777777777777777777777777737777777777773773773777777777777777377377777737777753777777777777777750040000000000000000000000460460000000000463733733733733737777777770047464067000777777777777777777777777777777777777777777777777777771737177777757377377753777777777737757773737000000000000000000000644640000460000000000073373733733733777777773750660760400017777777777777777777777777777777777777777777777777777777777373773777357173775377735737777377757777240000000000000000000606400000000000000000373373773733777777777737604746400406057777777777777777777777777777777777777777775775771733735377757177175737753737537777757777777777750100000000000000000046540000000000000000007337333333777777777771771066067674767677777777777777777777777777777777377777777377737777775737573737736373717375773777373737377777371200400000000000000000046000000000000000000073737373777777777777737700656476464617777777777777777777777777775757777777575757735773735371737357737575357635733577377577777773777775000040000000000000440646000040000000000000733733377777777777777137106606476400077777777777777775777757357777777757577377375777775737777577735737377371735773757073737175777777370000000000000000046764656546400000000000007733737777537777777777774474407467005077777777777775777757377735737717737377777737777371773737373773577535373437073737757577737353777700500000000000004676474266640000000000000047333777074747777777777776567642766027777757537775777371735777777577777777577777775377777777577577777737777577737757757373737777775777000000400000000067407604040000000000000000077777103716173777777737676665646470577757377775777375777777177377777777777357357777773737777777371735737773735753737377777773577377370004000000000000666424604040000000000000000777777007677477777777767676767474003577777777773777777777777777773773573777377773777777577773777777777771775773777757353753577357777770010000000000040406404000244000000000000000777370141477567777777762476767660067777777773777777737773777753777777777777777777777777773777777777375367377375357367767767737673477140240000000000000446400004660000040000000007737520077772757777770040047667767177777757777777777777577737777757777717753717717777777757753535357777775775777777535753735757177357005004000000000000000040400476440464000000007773401616575777777006440004764256777377375775375735737777777737737737773777777777773777777777777771771777777777777773775777377577773000000040000000000400000000000067400000000077771425777367777700400060006765377777377777377737777777735735777777777777777777777757777777777777777777777777777777777777377377353770070040000000000000400000404000040000000000077770525765777777004004040440065773775717377777777377777777777777777777777777777777777777777777777777773737371775377773775657527777500004000000000000000000442424400064000000000777724077576777700400600007000373757373775775375375737777777777777777777777777777777777777737777377373577575777777573575373733771737300700004000000000000004646440000672440000000777507567657775000444040644047777377777773777777777757777777777777777777777777777777757377771777375773737373737373773377753575377577400004000000000000000000400000040440640000004777407757777700404246044604375777757737777777777777777777773777777777777777777777777377775773575737175717175717571757253372734372773007000040000000000000000000004600464000000007772525677777004704064240124373777377577777777777777773773777777573577777777777757377737373777373777737367363727373735356171737177175000400000400000000000000004600000400000000047710477777700676006564640577777777777777777777737773777777577177777777777777777377735775775377757173717535357174352537737373717717730070040000000000000000000040046000000000000077777711357047600446500072777777777737777777377777777573573777777777777777777777737777377377177377757773777377737777343574356773737710060040400400000000000000000400000000000000771571715356770446002470757775773777777377757735735773777777777777777777777777735777377777777777777737573577177535357773777371747527710160000000040000000000000006000000000000007771353777767600056440042735373775377375773777777777777777777777777777777777777777777777777777757377773777377737777735777537577373717700104004000000000000000000440000000000000077171357777674006064214357577775737757777777777777777777777777777777777777777777377777777777777777777777777777777737777373777737577777300424000400000000000000000000000000000000777174777756765404051425373735737777777777777777777777777777777777777777777777777777777777777377777577777777777777777375777737777353777100100400040400000000000000000000000000007717137577764767404061777777777777737737777777777777777377777777737537777777777777777577777777773773777737775377177577737353753737770737100400400000000000000000000000000000000077717177777467760030065377577777777777777777777777377777777777777777777777777777777373735371777775777177753777777737717757775375753573536100050040404040000000000000000000000000771717177720767000043737737737737757737773773777777777777777777777777777777777777577777777777737773777777777777777777773773737737377357753000004200000004040000000000000000000047773537777504004104375777573757777371777777777773777777777777777777777777777777373777777777777777777777777777777777777777757777777377373777200504040404000000400000000000000000077153577770000016075375373777737177777717717777777777777777777777777777777777777777777777777777777777777777777777777777777375373577177573535300100040104004000040400040040004000177353577770070007277377777537777753757777777777777777777777777777777777777777777777777777777757777777773777577777775377537727576377717252734120050040400404040000040000000400007735353777005006535357777737771773777377777777777777777777777777777777777777777777775737777377777717377777777773777777777753753735752771775173500007000040000004004000400400000477717177775004353777737377773777777777777777777777777777777777777777777777777777773737757377173717777773577737777773777773773777773771773136343700000561040405004000400400040400775317777700367771737577537757777777777777777777777777377777777777777777777777775757717777777777737177577377777775777773777353717773771776535353716000047000404004000500050010001735717777761717777573777777777777777777777777777757375777777777777777777777773737737773753777177577737777537537737777757777777771757372537737271717100005252004004040604004040077531717777177777777777777737777777775777777777777777777777777777777777777777757717753757775377737737773777777777777777777177173777737753770775363774320000416524100000400400004773717777777777737777777777777777377377777777777777777777777777777777777777777737773777773777777777577757377377777777377377777753737753771775375757377577600000106141410143405007757537777777777777377737777773777777777777777777777777777777777777777777777777753777737777777777777737777777777777777777777377777573777777377373775373735373000000000400010000077377717777737777757757571777777777777777777777777777777777777777777777777737773777777777777777777777777777777777777777777777777777777737775777777377775777777777161612161637777777101777777771771773777777777777777777777777777777777777777777177577377577757777777777777777777777777777777777737777777777777737737775773737717717771737737537777777777777777775717177777771777777777377773777777777777777777777777777777777777777777777777777777777777777777377377777377777777777377577177537777777373757737737735377735737737377737775773777377717177777777737777777777777777777377777777777777777777777777777777777777777777777357537537777577773775753573577577537377737753757357757357571753777171735735775357537737571777771717577777777777375777375735377377775377777777777777777777777777777777777777777777737777771773753757377377777737777777777773777377737737737377375377777737573537737753773777777777177777777775775737757737777777757377777777777777777777777777777777777777777357777777777777777777777777777777773777777777777777777777777777777777537717773777777777777577777717711737777173737377777377777777177377777777777777777777777777777777777777777777737377777777777777777777777773777777777737775777777777757777775373737777773777377377537737777777710101417777757757377777771735377777777777777777777777777777777777777777777777777777777377777777377377777777777775775775775737777717717371735377575735373757175365737777773737777777773617377373775737773777777777777777777777777777777777777777777777777777777377757177573737777577773575373573737737777773773737777777777777737373777175337637173573537777577717777753775777775377777777777777777777777777777777777777777777777777777777777777773737773777573573753777737777777777773773777577577737353717353577175217437753577377377771737373773777375377375377777777777777777777777777777777777777777777777777777777777777757153471773737373773771737771737377777777777773777737577777777777377737733717373717177737777777577777375377777777777777777777777777777777777777777777777777777777777777777777773737773771757577573577377717777575717377777777777377773717353717357175717577717753777175773773537777777777777777777777777777777777777777777777777777777777777777777777777777777753473535377373717353717171735373737777777777777777737777777777777737737737353735371737737777377777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773535000000000000000000000105000000000000C7AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(2,'Condiments','Sweet and savory sauces, relishes, spreads, and seasonings',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000777777777737125353313731773543110105302502105313321714317343717135371373147317317171717121135301610131217777777770146765074747776567616774776565774040371737031611737710110100007777777777717435357353531713343030301103112161705353317353343717135371370317717737371734125031131352171777777714066544724767776774747657700577764774340735757100371507530210777777777777777731737317353731704311151303112110431731305317314171731717171354731713535373107131703011317177777770664576076567476404776147676777674174074740573312411002173611137777777777777353167171735337173531163125351615307173171737171707373173733537023177373737351611010113521737777775245006047474747407777777767657775747477416560075141200115351103077777777777777377143161735717353463107113131303343353171317373107177317173171477135353717370737312503173577777344760547061604760777777777777764677776007470774033001010035212100777777777777777173563535335371731053130707071351165343171701773417357717177130177173717717134101713353173777747640076047447000777777777777777775667570467760774040301010101053107777777777777773712531335337171735301531313134334135353361371350735331737137707137353731737433731717377777776040000407647604777777777777777777460547743565054776011001031213010077777777777777353561737534717337161352171712717103737335137137061373573171711073531737171710351171735373777704740460464746777777777777777777777040667746776007751300530101301300777777777777777373071713713717135241311030711317605117533517171075353357373734173173537373735373773777777770460464740406757777777777777777771777640577740457777000131035310701007777173777777775353431613717357131630731713735311637317173737171235353353535725377777777777777777773737777567404706425046777777777777777757777775246577777767711350131030311300177777357777777737350771731171337510531071351613735534317131717305737357377373077777777777777777777777777776540060405646777777777777374777377777774767777747771076035031110121000173735777777773535307131717373513243357317073171163353712571735073171733535735777777777777777777777777777704600564064077577777777777737777777777424577756771147741121161037100017357733577777773731603521725153251071335213317077071335373371732177373573737777777777777777737737777777776460464604046473777777777777777777737777567776657167647421121121103001035775737377777571711613531337353371435135351713131471731171735716171773753777777777737777777773777777777774740405674747777777777777777777377737176567757370470067070121121100010733531717577777371734173535353353107127713631735370371737173537107377373777777777773777377377171377777777444006640464677777777777777777777777777756777774747047741137112116100305737161373777737173107313531735352471713171173537017173717353731637535777777777777777737737737337177777770760650406047777777777777777077777373437777770567674776012101611210010131717135357777713253425343525353131031717373537171617171371717750537737777777777773737737733713537777777744404656440467777777777777777777377771577774764044774470717131071301210161335253077777757131035313137377534721717173537371637171733737343537777777777777777737737753713137377777764604646560457777777777777773777373001777574777764477611301121010001017135131314377773131716317353135313001717353353717165317371713573173777777777777777737573533373353717777777465404006400767777777777777377735000137776067664707640341216131300300035253521707577135271653531161773716173371375335373531717173757316773777777777777773773737377171313773777770460000440066757777777777777773700010577756764100674031311310100010103131313521073777731131052773171371310715377135737171773353353337717777777777777777773773737333131353353777776764007640456006777777777737371000013576644566565671341210131300010103521703170073735371730311173171371352735377335373725357353757177177777777777777777773737377173317173773777344564046466404444056477777537301000373405606746764011331352171001201013523152107177735303504373171357017005335217135307107317371337377777777777777777773377373137317133353353777706400004400676000640677471001000171464767444564031301052117100301001703117211617173531713035316127331710737171717731734071737171777737777777777777777777737377735333531737777717746654047046440044700465700016113000564440676653130171311303001010303152311340217173613530435313513531210717313613535312131713771777577777777777777777373735333337113713131377777344660240404740064000007003012446064000065641301430121217100303010117214341305030713521770035312153431340315251703537140713531737773573777777777777737373737171337311317171771777714540440064600464074764547407644764474661061711131171213001100121311331330433171353713107121713013170071631331353113013073173537752777777777777777773737337373131371731317707377776646600000000400464006460040000476461100121212163011710430103104341170510350307131714035353017317034353153417125240735317537717377373777777777737173537713137113133135371377737771404047400000000440040000046564612110016111211111303013012110331333130343135134352334031251210717107353213717131300131733737777577777777777777737173713737133713717131774353737777776646444600006000046442564670513430031611030301700012112131170552530043032531351307171335313137007153513035211071631535737716173777777777777737373733733531313133713707375737737757474604640746406546442411030301104111210110303104012112533130313134315113171371407135031707110712313253121520031173733537777777777777777737737373717373313533531177165373577777737777574746445652413513125110130012121121210110013152113152531725005303616343160335303521310243535161134112143537371777777173777777777777731737737313171731353137350737173717352573717737353737171343070110212100210130101013020210311612313171134121711311353134135311353531061303116113010013535373537370777777777777773777371737373331371335117340537153717352573737517340707317351130211011201712103103011001312531711725371124301253717135035215271212170171703130313030703535373777757377777777777773735733717171311371333173163537353707142570532717161352513307111211211401113502101211041713030371135363105331301212530431731135353107031100110411000713737177377377777777777773773733771733317131335353170143417217317073173535317071353250303071021120120301311303124330171711371133150435053537171703713107031316053160317031301071371717717734777777777777777377377337371331351733137124331335351700717053530700714351131501103112107111131030105001153012125363757312131303113121051707131716110210110101100300317137373737713777777777777777777777777377373331537174101170535321705713725353507331216121312110710003070125103130061213110133151317052521716161370213134310313514310303121310140307171717735653777777777777777777775341307071331313130060130305313003411310303014105310101012101214311130121103130131412130757377735213171213135105350311251212021030110101030035317337735731777777777777777777757171310101373535317100112535321610613161035110031310130103010131003030013112105007031301011317731730717031711612012135035335310503110212130104713535713737167377777777777777777737310010135153313530003011010511001212117121243001030012101103010051013100301130011030130077737771750731731631350717133031035302110211010121303533733753773177777777777777777777510100000017335331711043030312121041153010101001121031010102103010303100311012100121010010731737773731731711531300316153171307116111035031101433537533771774377777777777777753012110111000015617137200103110311121203103031210021110010030101010000103110121013000130131017771777771471352373053525313317037130612102103121312573713753777377773777777777735035355371731510001717701100314311430100101311011021102031211011010130010100312112100030012003037777737377335375317330131351631713150110311301535017353777377377177777777777773513513130111053351101771130070131303131053170161307050311101030102121000121211010010101013101101777777777716537131731570716331531352352311210713013343773777375377577777777777713171310135371315373103520010113161311032072113131110311212121012110110031101121213030003100100307737777773717137171731310315331707353014301311253353573573717377737377377777773177125353131735335357103131202521135271510113412163105211111113110121210003100111011100101301010177777377775637717331737071735213317317431734121314317373777777777757777777777317313113107173777531737150101013173031133043713353110631777377777373111001310312121030012121000210777777773733171316171611073135351731703101013171733525777777652104277777377731713535341717353537357571310100010351353250310351317377577525010505357730301031010112100210100101037377777777757335735331734353717371371707131343121753177050001040014077777737713713011331357777775337175000100010370351314771377775713400100000000000417531013130313051130100010077777777777345331735353125353310375313430521353531377770000400140014057777777351717351071353771775357331001111111353353211377777434001000000000000000003531051014110030100100210777777737735335731735217103341737137353413110313535377104700106756207747773537371710325175375777317735110110001107317351677771611013400100000000000000000703121313003012100010017777777777773433173131710735333113710305303431073737770777406456065570014777753103535113137773711771101110010100171771737777171607000010001000000000000000130110300611101010011077737777773717717353731730537516371737125313173171777575646747676566756704773757110717757777773773130000111001110771377777516101105010000000000000000000000532131101721000012000777777773777717317353431343133317171717035307173773777775747400456556756701773737711010343571513571110010010001001777777777357343034341010000050000000000000150121001121100010107777777777771635371353735343535353371335431713535377777770006047606677674073777777771711113173753000001000010100177777777535305141000000401070000000000000000313500310100100010077777777777373537037331530173537317137523173773737777777747650460447465677777777777777777777777300001100000010110777777573530530374175353107057310000000000001710071030010101010777777777377753713713573716137131733533507171353777777777774640540761465477777777777777777777575000000000000000007777777753577575031035257053007700000000000003100121121000300007777375777737343711713131716137171753533437173773777777576700766704465625777777777777777777777737000000000000000077777777773537077577561763571001000000000000053010121001000110077777737777773531733536173253717373373711717353777777777755046564476767477777777777777777777777111300000110101000777777753577753712707100142070070000000010010300713110100010000375771777373534371353317315171731717171707353777377777774766474677644747777757777777777777777717370100013000000007777777777777350574100005251007100000000000000611210030001000017737371777773716135271711732533537373737307377177777777777752424464765677777777777777777777777777141010011100000077777777777770712170710301701617000000000130010531031010101001071771735717777136131173731716173531717135353737377777777747654476744644777777777777777777777777713001011010100100777777777777570570110414161600071000000004170003071011000100000371737137773733417373171371217137373737737771777777777777777467444604677777777777777777777777771700000001010010017777777577757353052431201001015340000000012100171121200100101011735717773375353735317137131613717171731717377377777777777600742076565677777777777777777777777737100010110100000077777777777305705251525034000702100000000005037103101100010000037133710775737352135237317350713737371773777377777777777765046546046467777777675777777777777773710113110110110001777777777775730701006125010100050000000010030013103000010001010717717373737735357135117717334353537373773577377777777777567746644650477577775777777777777777750131100000100100077777777771775711753010530400001010000000010010703113100010000003710735357353737037333713317137373757377173737377777773776564745204646757774777777777777777773313010010101110007777777777577771650341252051012104200000000007001352100101000101017373171737373531617171371713435317337537357777777377377756470064404657777777776567777777777751111101000110011377777777777577161035214105200040101000000000101031013010001010000735377335773773535373173173353737737737737373737377375377777447476704677777775777777777777771371301001001011017777777777537577134104034001001000000000000000700033101000100001003171357331771737160152173171351733717373717177775371737776767460446044777777467774777777777771311111001101017777777777777577756134311012161401000100000000010101012121010000000077337335737377373137335353737363573735373737735337173177756104700046567777777757477777777777117131000100113777777777777776717351410401450101000000000000000016017110100010000010357371773177735371613533371353537373737717353173713717775654065400004677777774707757777777735311010112113777777777777777535757161252161210000010001000000010010310210001001010007335377377353773530713535337337173537373735377311713737765670000004004777765656577777777777531311010111777777777777777777536352141010014340100000000000000010000311010100000001071775335377373737170733735717537373717373735317373717775725650000474046777577777677777777773711311313777777777777777777777575757161050000100000000000000000001001210000100000000377335737737777737313571733733717373735353737731353733770567000007400077777677777577777777735311177777777777777777777777573537010116310100000000000000000000000131010010000010105335173353777371353053331353171735373737373713177737777770016140740004777757777747777777777531377777777777777777777777757347753777717400000000000000000000000010103001000001000035736317357357377317271737373735337171737353777333737377716140141003473777776757465777777773537777777777777777777777777775771757761601000000000000000000000000003100000001001010173317717377377373711373535353734737371717371377777777777502112007047377777756777777777777777777777777777777777777777777771777771501000100000000000000000000000003103010001021016317431635377377173727173373371313531373737377737737777733714005001737377777777777777777777777777777777777777777777777775777776142140100000000000000000000000000110001000101012017713173537377737353117317137137343777373737737373773737373737137773777777777777777777777777777777777777777777777777777777775011210010000000000000000000000000001200100010301211431617353717737353353613733537335373337777733737373373737373737737373777777474240567777777777777737173302137777777777777753435341410001010000000000000000000000010010003010101003173617313737573753353435373135337773333777733737373373373373733737773777756101000507777777777777776140500001377777777777753525210250000000000000000000000000000210010010210303117351314771737373371321733173737733337377333373333373373373733773773777714000404070747777777777400000000000400257777777757170714141001000000000000000000000000001003001011010100617335733135377717137152357333773337333333373337373737377373777377377777435777707477175777777700000000000000005377577777716171430300100100000000000000000000000000010021201210311314121353737173737313253333733337333373373337333373377337373337737777710777775077574707777700000000000000011007377757753717071050140000000000000000000000000000001000101310310035737171253537177317353057733737333333333333337373373337373777737777777775475725777770477770000000000000000003005777677757717070102101000000000000000000000000000121010100310311121312135353343737733337373373333373333333737333337373737373373777777777773470052574177777700000000000000000010077575777771751016010000100000000000000000000000000100030310130307171353433035353773731717373333333337337333333373733373737377777777777777747125352757657770000000000000000001250577777753571252501410100000000000000000000000000110001011013010112130313117312777733323323332337333333333737373333737373737737777777777777140016050257407700050000000000000041003777777777357103000000000000000000000000000000002030003071301213353413437017717737373333333333333333333333333373733737373737737777777777777375017257400747100000000000000001000075777577575307505101010000000000000000000000000010101211035351010313703113733337337333333323333333733733733373333373737373737777777777777777477405670067777000000000000000000007743477777737530302500000100000000000000000000000130300313121213013431353673377373323333333333323333333333373333737373737377777777777777776747640424000474775200000000000000007575707705753553141410010100000000000010000000000013011035217131301703137331373333233333323333333333333333373373733737373737737777777777777756777004774770576705700000000000002177677057777777347130012000000000000003500000000000013125035217050131353137337333313333323333233333332337333333333733737373737737777777777464644640004047406700677505000107161756505777000575357316153050101000000000017100000000000707125131213130137333273313332333233333333332333733333373737373733733737737777777777656740000074067640000575767700416500416777777775777777717535214010000001000005370000000000424133530351302130137333323233333333333333333333233333333333333333773377373737777777757474000004656504704756524057470770071257777777777777571771341431001010000010117430000000007406753071034111013273331333323332333333233233333333733733733737373377337377777777774246740047000064704706760077077574774774577777777777777775347131020500010000035210100000000675740243103130303033323233331333333333233333333333333333333733337373337373737377776564404004064000474404004104747724740776776777777777777774735317435102100010015035700000000004642440043101010101331333323333323333233333333233332333333733373733373737373777777706400000670400000000070470477777577074757757777777777775675775701520510521001431500010000000700040056103121312103233333332333333213333323333323333333733337333737373737373777744470000004041640560046747477757556777417677707777777776567467171353413001006143043401000000074000004640210101001033323033333231333333233333333333333733373737373737337373773774676740460000640646406756777477776775774675447407776774052467747257253143525012107100000000000464270047040121303121333333323333323333333333332333333333373333333333337337373377640444004000004004000046777770707756767775677777657574256477567057357057177171410507110100000000054640676740101001003033333132333332332333033333323337333337373737373737373777774040000600004640000470047677434475034774434774750676705657740400645717377753430001214730000000000600004404042101301333323233333333333333333312333333333733733333733373373737376420000004006040420006406767767477042457707407047765774067764740064163717575251010000573500014425604450000046500210130333131323313233333333333333333373333733373733737337373777745400044004040000405447747747577774050604077447747465765044747604776445777775200010101350102467406470640000046041030113233733312333323323323323333233337333373333733737373373774664400000004000000460467767676776770675424770747725046565677654004476064065351777777777770005470474004000600470001012031323333333333333333333333333333333737337373373337377777000400000000000040000006767477676777765702576004765406770464004604700440000577777777777777750076000000000007407646001211733330332332313333333333323333333733333733377373737373744040000000000040647400477676765657656564047645076567656440756425674004704047777777777777777710400007647600540044650030123333333331333233233231233333337333373733737333373737777000040000000000040004000445740400676472470041674004740400042447560470424747677777777777777777760004047044064600000640171130337303233333333333333333333333733333733737373737737765400400000000400046004600064000400400540470047040076000470047646404004740004377777777777777777040077047707400740000740121333331373323333333333333233333333373733373337373733777046400040000000640040074006004367400407601647400764045607404650470576474040654777777777777777770404400746440044674046002117303137133133233231233233337373337333337337737373777704640000040004040000004400440674400046764064740040410065247000006746645647704427777777777777777700600047004704670400674013031377032323333333333333333233337333373733733373773737400000000000004040074567202400460000007400564706776656065646406004007247044046577777777777777777040460057706000400005674001137117313330333333333333333333333373333733737373377740400004400004000004464044047004747440046564006004454045640474654004744064760006777777777777777777400400674147700707604060307032313733333233233213233333373373337373373737377737740004000040000040400070004406640460707656475004006020064047441600474007476500077777777777777777740000000047464064074004400117313073333333333333333333373333337333337333737373770600460004604000007006464640045061046404650640560056440540064674070465647400406477777777777777774000420000760000434007060003313753533723331333333333323333337337373737373737777704700040640004000044050065000460460074004604006544640046700470640470744006647040047777777777777000400404007704000467444044013073312713330323323323323333373333333333337373737377466400404400654060006460460447474050060000460046064740004474400564464024045240640004777777656744000640074047777047446056700053531713733333333333333333333337373737373733737377774400000000047676404746540000746447465440047406704504004467404046746540470564004740046567765656424064040060777744040610674003312731353333333333333333333333333333333333737377777400004440000464640004044604464647676766746560404046000476776767677776004646400404656676646464644400400640404777600004400460011713000000000000000000000105000000000000E0AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(3,'Confections','Desserts, candies, and sweet breads',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000113330735737777704000000000000006060000252000014131315311716037070021240161075371617637506357172512171357170173537160000025214002070000012436167777777173333737171773737377700001111131330131357737700000000000010000050040006331131313310705073430040000003070761617433514356537571773171771716167170604076776775677064253437177777737357531737373753537337113313111111113131235777000043712006767773677777711131531311777377077043125361707171177773563737373563777177371374735716771707717735637700016777476777737531333733537371373717531111313130131316131112163035371350007753477177311137133171331777777770734772516177777717777352575777357377717537533173777160277767777777043635673717737533337171353735737353773713111271131130317013111111131131670073677776771733113113135137777777771470777616777777777175377375377357177773573757073577775677777677770365635777677533753537337371737353377377313111123130131313103131313131711770477670777353533133531331177777777763777177717777777777735357377757777737777353353553737737777777777761771637535733533333135317373753371317371271131111313521313310112131171337003717377771313117113171131777777777177716777777777777777777735353773777777777775773365777777777777767160677747673173717117337335373777177775311123103121113130371131317113313143047765767171715331313133137777777777677777734377777777777437577777357777777777737357530735777777777776071777737317371733733531737177313733737131113313113303511130153311311317343077777773131331171353153137777777735377777777777777777777537737177777777777777777737777767777777777717061617717331337313173371737737373573773103111313103132130133071311311313000617277173171731331313111137777777777757175377777777777736527577173757775777775257537171777735361777253525616717373535333171371737717173753713313121011313113113153131131371310000604167113131171131713131177777775353737736535777173773753752767757377737737777736757777177777776165206353735331317337133335373753737373773111311131311301312130331303113131701070127013353133131713113113171773737773571753773527657765274371717737737777773773753637177777707177716535273533173731713717133717377317177373121131111121130313131031313313531600076507711317153131313113117777777717163763777767753717373136161634777577177757757777567075717776353613437473353131737313313353373731373735311131103111131111301731115313313131120012507317133317131713113137773577737753753435373777675756537535736173777737773773577377736777777677617437173337331737313353353753771335337131111110131303121731073131071313134107612771313535313531311313573757373535375377777567743527253473434357677537577375777735717771717171771707167317131733537317311331373337137131103331313113111113113312133131313503071650131313131531311313173757377757777737437773717377775367343717773537777375773737777777777777777167736535333373173731313133537311313313311111121353011303310335313111331312161677373135373133131135311777377777373717537717777777777725357343634777777777773757757777777777777777716573733171317171733313713317331331313331331130313311113311133173311531371753777717131171117173131311777777777757737717777777777777776347757737777777777777377377377777777777777773777173133333373531313313313331331311121773313311031341373053105313171773777771313537133713131311137777777777377777777777777777775357777775777777777777777777777777777777777777777773313713535373313313131331110103131137701710113113131317331333131337777177731731311311317171131177777777777777773717777777777377737373737777737777775777777777777777777777357777131331313331373131313113111010111773371600771213011305313171143171137777777131713131731313171131777777777777777777777777773577737777774770737777173737375777777777777777777775737331313313137353113103113331111117701677000071513131331353133131331177737753131313531371313131117777777773777777777353535777377771773773775737177777775377777777777777777777377735313313131313373113110111131113171607777000072111111134337113131133771777735317113371310117113177777777777777775377777773777535377357177377777777537777735777377777777777777777133313333131313131101011131113111677077700000000003373131013353533713777373131313135135313631317777777777777371737573773777373737717337317737537373773777773777753777777777777737331311113133133313111131353353137777343400000000000113113111312111717357713171313133131717531177777777777375377773771771717171713707531753573735371777373777173777773777777777713173133313113013313131113377377177701353700000000003113713121313131317371371311317173171317131377777737357377735371771373737371771333533723171735373777577777777773777777777777733133113111113101313131757173173343410111313410000041371353135313537375335131731713117135377177777377757377577173773777773535333171713531117373537173537373777737171737777777777313313113131111111311173337357131353131301111343035363131317133113317137133313113313313531631177377753777773313717353121013131717171312113331313312113777753737777777573777777771331333111000101111130311771733110111111110311317525753173113153035337713535317317315313171533157773773735375353717353113313131331310110110131311313101313773573737773771773777771133131311111131331131371373713131313013111311313737371173713131317137713131315317313531373513353577757771337317313133313121111313110110131111111111313033173753773777773577377733133133331331331331011171717311111111303111131353537737113312171313713713135333713713171173711313737331371731313313111111113030101210111110010101011111110313371353737753077777313113131333133131131313373775313011031113013131317777713371713131131311353733171371313107171131131135777137113111101011011011111311113100011110101000010111121131377777377307377131311331013113133713131117131111313503113317035303177353131713171131731311171137131353131213171153131137313313010101001011010101110101111000111010101010101101111317377357757077111131101013313713331133110171031131352115213131313131317131353031311353373371137171313131713133131131331310113111131130121111110313101211310011010101010101100011337177737737173131111101011173735333533331313501013111631131735353173533533313135313135317137313313171713111111111111101011010121012111110101011011131101011001101103710112110101117373773777653113101103137173133533353133131313171313113073130331213353135353131303531733711535353131311313131313170101101111113111101010101101101010311010110110351310153501011237175377771377111130111313313353335373311013113101213713103131131317335131352133533171711733313313131311111111211331130110101010110110101000101101101013030010131031131313531011137337135370527131111333331353335333171313177307335112153171725353711131713313513530337331717317171131313113311017521012110101110010101001101000101111211111101013170170103031210135337377737147131331311133317335373731113111711533113313331131310317131311713313171537171371713131311331311011313113111011101011110101100100110101011131301317010113131311111113331713317777323131131003131331333131337307131130310311213533173131131317173171253133353137131313131131110101353531010101110101101010100111010010101112101101313131310101010312111113351731777507111110313133133113373111711103131135371713413107112111313131311353571373537131311103101013531131211110101010110101010110001011010110111101310101130113111311113010311331733537707331111310113113313171131173171533131313133173133713121713535312133171173533531313111111031121111301011101101010101110111010011010131031310111110112101010121013110311331737737707713111113313013013131103113131013131313111353171353171353131113517137317173173773301013113130311111010101301030112110101011010110103101010101010111101211111312111031173131717127731303311210101313173171311131701616017337335331331313317130353373531733317717311113113011131030301010110131111011010111300101011311131110100110100101101010113101133317173777077775775311111130117113170706070700005200101731731535351731171353173171757733717310313011011011111311110111101031013110101300001011010121010110010110110101100101311111313353177577737737713131111371311777777777716705347253531731313313731135353171373317753311351011101011101010010110101311013101011011101011013131110100010100110101001110100230011311377137037777777777777377770707725777777610634305277353535353731737137137137177731310131331310111010111111310113111011101131011700101101010110110101001010010101000011031371011373131717777077737575775777777777773677761071777520735373713171773535353717313713131013011111011001010101101031101011010110101073113110111011010010100101010113010311301107333013313773770777747773773437577725777777777707767036571737753735371353137353731713731101311303013775311011101111101111011010111111710100010101101111010101001011011131121100331311011311171771777375777777537777776776776777707716537371713717135377377171713533111331113011111313377751001101011100101011010101013311111010101101010011001010101010121101100110101011033735377777777777577777777777777777777070773535373773737735317177373733113131101711300101101113733100101101110101001010111011010101010110101011001110311010111101100110012110103117377527777377777357776776777777777770525313371717353713171737335371713311133133110111110131310357710010101010101100110101701110101101001010101110001101010010100111011111010010335317777574777777775377771725707777772531715373737373717377535771737351311111011310100111010310313371011010100100110010103101010100100101010101011131111011010111211001011311111131237777375777757777777704725707436531713737177173753535377637371713331313111101111101301111131011133010101100100110110111010101101110101111101013013011011010011011111011101313011753777737777777771725073520717753431353537317351373777071757373311111111301110101110110310113101013110100110110011011031001010100110110301111301101101101011001010101101110101071371777777777771704720742577634367125313531717377575707737375311131313131101011101011011013010111010111011011011301101101101010010111011110310110110110110101131310100101011113117177717577753577073512753471777707531753773717737737735357777731113113133101010101011011011110011010101001010101110101100010101010101010110111010110011010101113130110101101013031777773437777770742616343061617707672717177777777777767377371713113111113110101101001011101111011010131011010101010101110110111010111010110101010111011011010111110103101101211771777777577777712755257777777770735357677777777777771735735737313111012111010101101111100110101001010111001011101101010010010101111010110110101010011011001031011010100112111177377777777777757616327777777777777567773577777777777777537773535313100111101101100110010111010111100111010111100110010110101010110101111011011103111101010371713101113111011107313537771717577775257507777777777737377777377777777777773777377331310113121130100110011010001010010110101011010111011010110010111010101013013121101610101217130110101010101103131717771777777171727777727777777777477777777777777777777771735375331010101121110110111010111010111010101010101010001010100101010011101101011011101311371311525110110101013101111310317775257377777507776577777777777777777777777777777777737737137131310171110010011011110101010001010101110101011301010110101011101101011011101131311111703130310110101010110101031753777775777777727353777777777773777777777777777777777353753713571013121011101101101010101001110110110001011110111010000101110110110101010313010112121353411011011011111211113153775375377535776574347777777777757777777777777777777773713331313353535131000110101313110101100010101011101100110101003110110110110110101111011352111531113701101101001011130113317775777777777353774377777777777737737377777777777777757717131777317331031110101101101110101111010111010101110113111577777370110110101100101013131613536111305301011101011010317017737777777774347034167361757772757777777777777777777737313133111371531113111101110110110101011310101011101010301077377377710110110101110113111531353113635130171010173101131713777577777777774373436756572773757737777777777777777773737131011311713101035010101011011013107101011101100101311117737775773130001011101013101213317134311113717217073110113131317777717777777034141617373777677737777777777777777777777777131310303103131131773730101011101313111010110110101010137737727170131101000101101311311037135031701315313152111013112757777775777773436216167567535777777777777777777777777717373531311153110110737777537131031311777713110110110111110737521717310101371310101110311017101131431315311713313011013113737777777777741615250716352773777777777777777777777777777313130107301031013513353173511111035331717017010101001011713537371011135377510101011101713110353171301301110111011101357775777777777216102527777777777777777777777777777777773735773513111111101101315335317301035130101311311110101117727773777710112112537371301010330110317131135311113071121013137775777777777775250753477777777777777777777777777777777775733133717730101121101031535121331134111301711212511121713513773531312113111305377771735110101213170101303011121171101013777735777777702527673477777777777777777377777777777777737717113317531121101311131121711521131215131251113031112513411777701111010311310135371121031117152131310111011103171331357735777777777753473743777773777737777777777777777777777371737353533101110101012107111031110111133111312111103013103121331310101011010533531121113101213111110110101101353131111377777773535777673757777777777777777777777777777777777777773131313305311011101311311213101211031251031011101351710101111010011011101311351317111301531113012111011010101311301257777775777773773747763477777777777777377777777777777777737777131315301011301311131211101311131111131011101370130351310101111071103110130310313161713121013110101011010131301111377777777577777757737573777737777777377777777777777777777177353101311313010110121051303101121012130111010777173111210731101011031101130111310113131211113101112101011031101121071777777777717577763572757777777737777777737777777777777777777777131317101111031111315310101111111011011377353117121177101100101170101111030131211111121301101011117017521113113137777777777777737577257277777777777777777777777777777777773773731121735310101013030130531130301211301777717171303110310110111131371100101111101113030110110301010731713112111735777777777777777572775357777377377777737377377777777777777737753531171717010111011110113130111311101137777131171110357713010101011130111101010111011110113011111310173717110131737777777777777777257276353777777737737777777777777777377377177373713537313510011010131010131010301101777371731121110373053510111010113121101110101010110111012101311173137313031777777777777757775355717777777377777777737777777777777777773777713137717131311011011003111011311110177735331071152117771313210101011010110101010101010310101011101437113717353137777777777777777276373777377377737377737777377777377777777735777313171312535301101101111301301101037771731153121211735311435112111301013131101101011111011131121313310301371311777777777777777775717777777777737777377777777777777737373737737777130317113031710110110101101100101771731521311111317731213112112101111101030110111010101010101105015315301377137777777777777777773777777777737737377377773777777777777777777337777531313111131312110010101101110117771731131303110173111010717117112101101111030103110111011101131211313171313777777777777777777777777777737773777377773777377373777373737371777773131350307105351011101101101010773121121010110017211011313130311251310101001111312113013101301011121371313777777777777777777777777777777777373735737777377777777377777777737777777112131113130107110110110101137112110111011013771101014352535211130713111131271011101110110121130113137357777777777737777777777777777773737771737737777717373777717373737717777773113573773531310351011011101713111011001101073570131313113131213113152121051111101111010111110135711153777777777777777737777777777777777737373437737737777777377637773737377777777313173573535310311211010173010111011100111773171035253143151707352111113121031101211130101735737373377777777773777777777777777777777737717353577777777735737737737377737177777311177777317353535311121110111010011001131077735303513101313131311113030101113103135121413131733757357777777777777737777777777777777773573737377777777777777777771737373773177777173733531735371307030111031001011101110503171521711213531703703130311111313105314103531316113715331737777777737777777777777777777777773772737370777777777717777733717377777177777311773771531735317110101101101010103013113773111211713121311110110121210101121131713535317313331737777737737777377777377377777777777770753573534357777377771717752737377777777777731531731735735317312101101101031111013410717031701107111303110111111311121125371773535371711777777777777735377773777777777777777777377373727373734377577777771737377777777777777773173531737173535351330100111103013101311211101130313030110110103010101113537137177377171377777773777377777777777777777777777777777707773534365737716375357163717377777777777777777313771737753535373513171010101110131071112113011101111011010111113103071717753717717335377777777777737373777777773777777777777773707167335327777714177371727377777777777777777777711335353737137153717177711110311011130113011303101011073711012103113131313353773771737777377777377777773777737777777777773777773737376335353517730115073537377777777777777777777731537353537537371737137370710131030130113101101101033717735317177571615353353573777173777737377737377777377777737777777777737773435317237277735341617317377777777777777777777777773535373537177171717537731313017113513050310110117575773535353713731331357373371317777777777777777737777777737777773777777777773363735353773777535371637777777777777777777777777713137717177713735373573534307121703035371031037773737173735373777171171331317527777773777773737737777777377777777777777377777777170736357353032525637377777777777777777777777777777513737737771773533573531717171753537173537537173537753577717137173131171637177737777373777777777773777777777777777377777377777372537236353533531377777777777777777777777777777737353537531771737537773571777731373537173537537153717373335377173537170675242477773777777377377377777777377377777777777377777773712717737252163777777777777777777777777777777777577737737773173513717353777371435753717173713173735375357533133317373001024107343777373777777777737773777777777377777377777777777371210101217377777777777777777777777777777777773677753537317131371735371777713773335373571717717171737733113100137100000100074347735777377377377773777777377777777777777773777777773737377777777777777777777777777777777777773471757373717707175371735373711757357537173737713737335353531216174213000000000160137737177377777377777777377777777377777777777777777777777737777777777777777777777777777777775773472777573717707025371735353733717337173537531717175737373171706353471000042107162473637376373777373737377773777777737777377777737773777777077777777777777777777777777777777737753577777777770735317171737371753735717353713773737333531370070714253600000010616150377177177377377777777737377377777773777737737777777777307777777777777777777777777777777777777767177777777775040603121317177377173311317777131311010343107347435341041061061777276536363717737173737371677377737777777777777777737773777017377777777777777377777777777777777777167777777777727371707576713177377311060131313371763434340347737767761207161007077573713173771776375675271735377777377777377377737773777707677737777777777777777777777777777777777177777777777525677020753673135311677166072147777140774340377677777741676167077773767776172723377373737377377777777737777777737573777370761737777777777777777777777777777777777777777777777777773577527777172531770167107757375676372537734777777777275347712777677777037017757137373735235237377537773777372777353537777173577737773777737777777777777777377377777777777777771776172577777777607077070777677777314775610477777777720536710657777777770503303323743707073773577733637777377773436777670007677377777777777777777777777777777177777777737777777774176142770776777307077070773776777430637270777777777512416370376775777727765301703353737371212537771703774371773535213170001077377737777777777777737777777777777777777577777777736012147777753574007052525777717763410505003437707176012140505717727035001000600343303030035353637163775377763477637767007000375273773773777377377777737377777777777777777777777610400030707276301000000072504761700020000077410776701600210063600534720000201006304343037020071707707127525353703170716100007737777777777777777777777777777777777777777777777101073001675250534060030104352430170507016125703676010000050002714177043401401400751437070500143163740707703727343767070700001437735373777777777777377377377171777777777777777777777777705207772521014060707617767070305204036571717771610012415636707371423000210727052572002007707307007707163701010070760002053677777737773737777777717777777077777777777777777777777775307077560210110717617167761615314172776707761670717271610707671507014252572572570500740700434300707161677677770107001671737373773777773773771677777717171771777777757775357777777525252105060601671616170105204216357071770101034725777777771060701610777777777252070307077700071616177777777770707707373777777777777777777373777777777777177777777777777070777777777770707171777777777777773573577777777777777773577777777777717770777777777775257770434000000000000000000000105000000000000E1AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(4,'Dairy Products','Cheeses',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000777777777777775773775737773773777777577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777173434716174361735707353436571717377235700007777777737777737777737653777757377177737537537777777777777777777777777777777777777777777747657252103060206042434777777777777777777777777735777375374361705253432163617075727777777737777777737777777777777757775777773573777777777777777777777777777777777777777772524141210000040604004000000000004061677777777777777177763534736175370773527577757777737577777777773777773757717717717717373737771777777777777777777777777777777777777777777127052430200400604200000000000000000000000000077777777777771776773717237077052707271735735677377737357775773577737777777777777757753777777777777777777777777777777777777775251076502410040600600000000000000000000000000000000000007777777777171756757577307371717076734737177777777777773577777777377777777777777777777777777777777777777777777777777777777676107412042000000000004000000000000000000000000000000000077777777773773637075352525617357737576177357777357777737577777775371735737777777777777777777777777777777777777561600000016700604004004004000000000000000000000000000000000000000000777777777177777377677773765725772737777777777737777777357357377777777777777777777777777777777777777777776536177777777650060000000000000404000000000000000000000000000000000000000077777777757377671717075377777577573777377777777777777777777777777777777777777777777777777777777777777172577777777717777040040000200000202004004000000000000000000000000000000000000777777375775777777727171777373577777777777777777777777777777777777777777777777777777777777777777567537775767775600247142006040404040404000000000000000000000000000000000000000000077777777737370707567677774772777777777777777777777777777777777777777777777777777777777777757572536577727757700000164250400000000000000000000000000000000000000000000000000000000007777373775673773717353773577777777777777777777777777777777777777777777777777777777777756376357616767577777700000025020000000000000000000000000000000000000000000000000000000000007777777777174347777775352717777777777777777777777777777777777777777777777777777777777374357635737576167061652007560400000000000000000004020000000000000000000000000000000000000000777757377737716177767757777777777777777777777777777777777777777777777777777777777765374357434777077752161257003434246040000400400000000404004000400000000000000000000000000000000477377347563777071737377777777777777777777777777777777777777777777777777777777775161434243652527777756140007403400004204000000000000000000200200024040000000000000000000000000000377757737356177777756777777777777777777777777777777777777777777777777777777761636342707165256775777777777777000000000425200000040000000040040400402004000000000000000000000000000077373525617271617735377777777777777777777777777777777777777777777777777771775414340564167014707777777343576100000000004752440004000400000000000004204240000000000000000000000000077567773615777725777777777777777777777777777777777777777777777777777777770736340703167047025200777757202172507060000000652060004000400404004004000000040004000000000000000000000077352353634371737177777777777777777777777777777777777777777777777777777670504250746014304004043434275710050725100000000047004000000000000000000404000200000000000000000000000000077775743537477476777777777777777777777777777777777777777777777777777071072435274212420424200240041427060030052473400000000420000000000000000000000404040000400000000000000000000077172353653717353777777777777777777777777777777777777777777777777177477043425010410400004040043607404140061253043612000000040640000000000000000000000040400240400000000000000000176775253777777777777777777777777777777777777777777777777777777776537043471724202420424003043405607024240040243043416100000000060000000000000000000000000240000000000000000000000735077253434353577777777777777777777777777777777777777777777777773467743424014040040000604306521604000000000000100216034000000042500000000000000000000040004000000000000000000000527014343537072777777777777777777777777777777777777777777777770743535360500606034034070434702040000000040040042410501434020000000656504000004000000000004020400000000000000000003714363527707357777777777777777777777777777777777777777777777775347765160610014024072452400504042000400000000000200203030506000000000616160000000000000000400000000000000000000001634107107717777777777377737777777777777777777777777777777577767347724100424204070452521602002004000000000000040004000030314700000000042470040000000000000604000000000000000000061527077316703777777777777777777777777777777777777777777773752577716524612500563472524040040404000000000000000004000404004212520000000000047002400000000000421400004000000000000172016125613757777777777777777777777777777777777777777777765677741607521040256056152434306120102040000000000000000000000000040357340000000000650040000000000060000000000000000000705253573757277777777777777777777777777777777777777777775371777760524747025617256250004404464040000000000000000000000000000000000716707000000065242040000004074000040000000000000725363757257777777777777777777777777777777777777777777765671671702503244707657050656125212120350000000000000000000000000000000000001616520001060546006000002070400000000000000070707577277777777777777777777777777777777777777777777777371677564652645217771616070216525674774301000000000000000000000000000000000700712107700112034610000040470000000000000000170707257753777777777777777777777777777777777777777777776565352535214120747774343417470753537531000010000000000000000000000000000000070041650030677400046000253640000000000000007070737773777777777777777777777777777777777777777777777717374240607420547356534343743773676573000000000100000000000000000000000000000057252121013577777000040643740000000000000007071757777777777777777777777777777777777777777777777777656534343416520347736747343743571777741010000000001000000000000000000000000000217010000203177777742041677740000000000000725242737537777777777777777777777777777777777777777777753737470042430476770571734775376777177300000100000000000000000000000000000000034161001210102777777750000567704000000000003525375776777777777777777777777777777777777777777777777765743004341043177177365777167571677770000000010010000100100000000000000000000003002100010617777777600600000425600000000056102527377177777777777777777777777777777777777777777775363742524242147576525365777772773576710100100000001000000010000000000000000000000100210211037777777007000000000424000001200614357176177777777777777777777777777777777777777777775752542505252167537565372573577577357300000000000000000000000000000000000000000000010010201077777770077000000000000000025300020216177777777777777777777777777777777777777777777727772142525042536743534757777772777774100000001000001010000000100000000000000000000001210121777777700000000000700000000704034175777737777777777777777777777773777777777777777777577054252420356771776777273477777477710010010000000000001000000001000000000000000000000012107777777400000000000000000434303403434341577777777777777777777777777753777777777777777077025241504252563575257577775777177300000000000010000000010000000001000000000000000000001217777770000000000000000000000701612537363777777737773777777777777777777777777777777777167061626143473576377727573777777747100000010010000000000000000000000100000000000000000000357777770000000000000000000000761612535777777777777777777377777777777777777777777777776714161416007076175673572747377777730001000000000000100000000100001000001010000000000000000277777000000000000000000000000170777763777737357353757357777777777777777777777777777753422507241707716437757757775757777500000100000000000010000000000000000000001012400000000000021776000000000000000000000006707343575777777777777377777777777777777777777777777777767450615242506717653672771777377737010000000000010000000100000000000001000000001000000000000404070000000024000004000000016107777377357777777777777777777777777777777777777777777173070625042516705657757767167575770000000100010000000000000000000000000010000001010000000000000040100000176000377000770352525347777777777777777777777777777777777777777777777777656071425252435635270777777772777710010000000000000100000000011000000000000100000000000000000040252400007610004740007077602537737777777777777777777777777777777777777777307757775307406160043463527577757753577707000000000000000000000000000010000000000000010000001000000000025240000007000037000007761757777757777777777777777777777777777777777777774716773776502534165241756752707677767757770000000000000010000000000000010000000000000000010001001200061420000000000000000000003161207052777777777777777777777777777777777777377717617747777702436125260743657753777777257730102100001000000000000000000000000000000000000000001001000061400000000000000002506061657127052777777777777777777777777777777777775770777065707776561405601416165252765777577777100010000000000000000000000000000000000000000000010000102567060000000001773774352100001206107357777777777777777777777777777777177777073701752756177347360560605257653563477777070000100000000000000000000000001100000000000000001001010216100000000000606043437777777777535771677777777777777777777777777777777777775777720253617056704076161425241652577736577710100010000000000100000000000000000000000000000000000001636160000000000000000000424343437763071777777777777777777777777777177777777721747570257077717725036163425243652525777777700010001001000100000000000000000000000000000000000000101404000000000000000000000000000001757277777777577577577777777777777777735773577737051207430653524507041425241616525074743101000000000000000000000000000000000000000000000000010202020600000000000000000000000007477375777777773773737377777777777777775773576777752025070161347770240724340160652567371773300101001000000000000000000000000000000000000000010001040040000700000000000000000000077767777777577777777777377777777777737777777717161743507076146161657070524176050065256563673730000000010000100000000000000000000000000000000001002040075017700003740000020000077772507777773777773573757777777777735777737777007007342100170352573657070524016070024343571733733210100001000000000000000000000000000000000000001000077760077200007600000750000743756173777777773777357373777777735777777765307701635250610616070052725242525607043410706074773773610010000000000000000000000000000000000000100000777777700774000177000017600077774216775777777777737735357777777773777707534160060070521061001725250577752520140707060407434373333321000001001000000000000000000000000000000010137777770007700006770000777005777425621777773737777717373737777777743777777034177171030060125614165252552752576034043470702434277773732301000000000001000000000000000000000000000377777770017200017700003770027777001567377775773537351717537777777705053770436143434070104030612101612416070757434343434707056173773737321210000000000000000000000000000000101007777777430000000035700007761657777023057737736153434370703777777753027777072534341603436737410707061613611616252524340610707256173773737361000100100000000000000000001000000000177777777000000000000000075425367700456375773717273537073171777777361417777050616030141410041271527170040065255352534161460525024377377373337312000000000100000000000000010000103777776740000000002020340702576770612734736157777577577174341777770521257772171616577273430034020142534352101207614216167376167534217337377737631210001000000000000000000000100377777777700000000000140000252753470434717717235377363777373771777770525277576507177775001412535160342100052405205214704175070177777777773337333733733000001000000010010000100007777777576700720000002102141652752430525637777777535757375775277770702525777773777717120302050767050104777253721610610212527416777777773777737773772733312100100010000001000003777777777770057400000056000200256341402527535377353773735777377774030050177677177777772514101200103777777775705050161241470412707777573777373773337337373733250010000010000010177777777767700272000000374000175770002016752777557671775777375775377470276717177777773712037400142057740217737727060041020003040775773777357373377737737372373333431010001010037777777765776105750000007770006027740012452777353353771737177777377737775357777777777657571763002100212710612410535161061434343000737777577777777337333737377373733332303003037777777777777576002700000007740305057730003052557677771777477717377775777777777777777757373070104104000417651251243420107072534000437775737717377377737773737333373736373373377777777775777727770371000000777000026777400006357353777176717353775777777537777771737777377740170000630000377025724103416000057052573775737777777535733773337373776373733337377777777777777477577000000000003770002517772000534727771777717777777777773777777777775717777571270030010750304161407100617070012006100777737753535737773777377737373337333773737777777777777777777777000000000000300142437740002437577177777717357353717777777777777777777773751734000007614300037707010074010401000703717773777737435353717373737377337733777777777777777777777767765200000000300030303474340107437777777777775735777777777717777777777753567721737000000037430070707352037421000125075761777177717737271737373737337731437777577777777777777777757700000000000000404043076120001747777777777777777777777777777777777777777730507430001000753401000006004143100340003773777537712771717535277373717531343777777777777777777777777774100000000100003034307410002567377777777777777777777777777777777777777771752013410025037700000100104002016070000001771737753757172713617116352733077317777777777777777577774777772016000006000007000743600012074777777777777777777777777777777777777771612052412410735700772000000030100010170100070775717371736173753737353711653107057777777777777777775777777750275000016000007000347000074377777777777777777777777777777777777375377775210241277727777050000000000000000700000375363743563537152317071253731357317377777777777777777777777777061760000770000770024370000035677777777777777777777777777777777177777771421434120500143417007006005000000001600017527357377353716375613535352534331707777777777777737777777777776174300007700034740535770003473777777777777777777777777777777777773534163503430752142100025001010206000000000003073717717535341735133573617353531743177777577777776577777775777700374000077700077702476710043657777777777777777777777777777777777577672507701617742104371020060000100100000000000707352712737371736532535343172521343777777777777777777777777777740770000777000777012577600143777777777777777777777777777777771737761743700161614100630407050107050610020102500017716353753525361713533533172531717117777377777777777577777777774300000000700007770607775004256777777777777777777777777777737777770017171700000030601750300216100210061412517211473471735377173534352570347153170707677775767777777777777777657730000000000000017270537760021617777777777777777777777777777777771710024361614000001700250757576014070121612745763771372573433053713753177132352171311774377777577777777777577777430000000000000005027060000525677777377777777777777777777775771671600015300031200000010003002016030052410417320177774173437577070712352117153070352707777777177777577777777777777420000000000000205007030000435777777777777777777777777777737777161001020502404116100700700351701403001243524177777537073713137171751357216357171351377777757767577775277777777770105000000000000125614000161637377777777777777777777777775777712716000012100300600610601617206060340704100617777777253535256517343136131735121214325777357677776776777757757757616720000000500002070200000027477777777777777777777777777377717050705000400100101010071610404101100120120701777773771617037313725307717251123717335167777777775737771777737677777007700000027000014070000025017777777777777777777777777777737773010300001242520002000000030300607740165100777777777771617147707135301717367510714325377777737737757777677777777777475600000077000030770000024247777777777777777777777777757777340200030301010143414003416500010161034020773777777777771707331352717375215313671635101777717577777775777577577777703677000001770000047740000107377777777777777777777777777737534100100000020030201021343212177060002503177775777777535770731475251617031736161101016367777777657777277777777771777077340000077700000375200016074777777777777777777777777777777730000010001010001021000153534317173412147717777777777737771073031631617070517036373614177777777774775761777776775770054300000377600007777000250077777777777777777777777777775735701000001000001001003012153535637173577357777373777377777777071611613435272035014010337777717717777777777734777777770200000000777001007770001607077777777777777777777777777377773000100000010000000100017013531353572717737177775777771777717161631611201017037737775777777677777777537775773577777061000000000000020077700007007777777777777777777777777775773500000010010000010010001213343175727353773577757777377177777776173052163577777777777777777775347753777657777777776776100000000001070000024000700777777777777777777777777777773777000100000000010010001001715317031717757177173737375777777777712141253577373775737777277777777737675777776375777717716000000010020000030521430601477777777777777777777777777775373100000000010000000000121303535371713737177357575773735777777752173773777777737777775777777777577777577177776717777616000000200001210002402417423777777777777777777777777753777700000000100000000010000116152135073752577356737373775737777777777353777357377777573777777777776357276377777777777777017000010000024000052503402547777777777777777777777777777770100100100000000010001010311313437305317125373567175733477777777777771717735777777757777777777357777775777707757677706774000670001434005200342704377777577777777777777777777771734000000000000100000000035230533111735737737173537737577777777777777777737777777777777777777757707757777657777737577707770001775020777205274305216777737735377777777777777735777130000000000100000010000111531417251235017153537525737137777777777777777717777777777717777777777777771617777777577777052770027767403775600774704257577777777777777777777777773777000100001000000000000103030121301375137352370713737537577777777777777777777777777777777777777765727777777775367777770775216177703477761657770705237737777777777777777777777775301000010000000000000000013517171717013615357173757717343777777777777777777777777777777777773777537577777771777777777616563407777442577524377707027777771777777777777777777717373500000000000000100001001312303112317351361307153313717177777777777777777777777777777777777757777777777775777777717777012142147772106776106776524147777777777777777777777777774352101200000000000000000000111116116112351353533747717335377777777777777777777757777777717777777777777757777767777777756042142052142507706107770707071777777777777777777777777317016161100100000000000000016125213513515361353453313635707777777777777777777777777777777777777777777777777777777577777734304343252052052050617070607777777777777777777777777101521613016134301000000000001713531701212121116171335757171357777777777777777777777777777177777773577777777777775777777777400434344047025205261602434167777717637717777777777777702503507107010521210300000035371161735753534312134530317353777777777777777777777777777777675777777777777777777777777777770703434034307504361420410706177777777577771637777777777753503016107030505250103000071673535331361735717133517107103777777777777777777777777777777373757777777777777777777777777770600616034202704161430612506717677773777777577777777777777775210703503031216101717171163525677171723527507343712577777777777777777777777777773577777777757777777777777777777777401771616005614306025070416017777777777777777777777777777777777771410307041610777777777717171103525357353735371717777777777777777777737777753777757777777777777774777777777777776167760414777070615706003601677777777777777377777717777777777777777774101301777777777777777777771717015253437161777777777777777777775777777777577375773773777777777777777774777702570772430776061427741605261777735371777757777777777777777777777777777761777777777777777777777777777771717107127777777777777777771777777777777377737777777777777777777777777777742400412477775243477341615067777777537173777777777777777777777777777777777777777777777777777777777777777777717577777777777777777777717577777735677777577777777777777777777777777053761610077705243777600260135377703677777737777777777777777777777777777777777777777777777777777777777777777777753757777777777777777773777777773537777752577777777777777777777740276160607770425257740165016777577753177777577777777777777777777777777777777777777777777777777777777777777777777777777777777777777676777777777777757772777777777777777777777777705070501607721605277342032407703777777377773537777777777777777777777777777777777777777777777777777777777777777777777777777777777753535677277775773771753617777777777777777777777200020601400401240160104052777757777771437777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773535757377777777075777777777777777777777774343430703430705216070612410777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777377777777707377777777777777777777777700040040240060420400000007067777000000000000000000000105000000000000D6AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(5,'Grains/Cereals','Breads, crackers, pasta, and cereal',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000777777740043734074373737370737777043707777777777777743777777777000534040673577777500740000400050040042500000777770004217073737373773777730040407073377307373725000043374053000003737373777377604074377777347737377047637777777777777547777777777400750250573177777505350700050000000040004000577770404033773737373773370400040407071214377373736100372000073777777777777377704404427437307377777734341777757777757477077577777771040075000777577777040614340000000040000000003777700007773737737737377040040000007061637373773536173040004003737737373737520404040453774777737373777777767777777777705777777777770004770477737777770051004100000000000000000047777700737373773773737200004004040407173737377373737340004000777777777777736440406404247073737777777737777577777777745761777777777750017770777537777750065000000014000000001040005777733737373773373771604004004000063773773737373730000004040737373737737700406040604007777773737737777777757777777770742777757757777777757777577777601734000000213000000040004167777763737373773773021400004004005373737373737373400404000007777777773753652444040404737373777777777767567777777753475757777377774077777077713777771561410504351750000000000000017771000437373772007003040000400737373737373377240040000040473737373776345340042440573777777377377777577777777777767527077357777717737775775777777770140040037077100000000000040477770703373772253733704304000071637737373737603104000404000777777773617370744044043777373777777777777775777777777577757477737777717777777737177777740000005753176001000000000000077710007373351273773334304037361603737773773506000400000407373373653773773734040772365777373777777777777777757777756770577577777705776177777577777005000127357710040000000000400077705011340361433071214015730001061733770003717000040000377777765343763770704077344032737777777777777777777777777775752777377771377704777737777773001057517375000000000000000007777001340004373737370033723710360273773173733733434004037373640436777377070773734537477777777777777777777777765777525257777777175754007775717777740070030777700000000000000050477775377310000073773207373376004005336036007256352000033507765060470737737707377772407073777777777777777777775775767775417577777737600017737117777101400573777000000005000000000007734170771371052371337373337010033404017373337253434372040430440475617707777737352507775277777777777777757777775775637777777777771404077777357777003537157700000000000000004340007734351005021050077373777373773700004007177373003737370060440440427603737373777777773465657777777777777777777777565547777777757770000077717777775007167375000000000000000000100577515335701507130036373333373340040400436334307773735300440040060471777777777377373746175767777777777777777777777716377357774277040417773777777710731717700000000000500000040000750072571173053711001067777324000000400435430773373723440444044040463737377377377743475677777777777777777777775375657757777714074000617753537777715731775000000000000000000140006734150163413041405031100337004040400400423077377737373040040044041777777377777737443475657757777777775777777567477777777777737434005747777777777777777701000000000000000000000017737350141741030017521110100000000400400437337373737374044444040773737377737377761674367767777777777777775656757777777777777400405521077371777777777771000000000500400000041043775775214170171413710052177111040400440053737737373737340040004376377777737777752574577575757777777777777777771777777777777753540436040777577777777777100502500000000000000104167527101507006121477105010713040000040007377373737373716444074407354241737737372777772567767777777777775777757565775777777777770714054050777357177777777010050050000001000004707573517040350514140717010711771310040040737337373737376300004016777365347737777573737777565777777777777777777767777777777777777777707016177377373535777770500160004014040000015707777071357300717152503537700103610000337024253737373014074407737374074327771636777777777777777777777777775777577777777777777775353757757657777753777777710143505000000000000420077505357314141361050341510153533000707700500273737043233016773777734004776167717777777777777777777777777777577757777777777777777777777735704777735777777052050000056100000000504573417215614170516135170077352700373373042125377352373577737773737737773534407777777777777777777777777777777777757777777777777777717777407707777737777701050000400014000000050030753751701016153050434037135310137377352104037304250732373777777737737772404406572777777777777777777777775777777777777577777777777777777045177777537777701000500050400073040070577053653507317053171714177534316373373734317304000303737773773737773772444061652775777777777777777777777777777777777777677777777777777775067577377777771070050014000077141017500773141250714705257371304712411017377733637724000404343717777777777377040407440657777777777777777777777777777757777777775777777777771777770572777777777771052500400007104040470077714105073531505346525035353104313523773370004040000340273733737377174042443470747777777777777777777777777777777757777777777777777777777770571771777777770014300007314000010140534107014143560734110505107173117703161137004000004040301777777777776377440641474377777777777777777777777777777777777775707777777777777777777765777777777710014005054000000404007717053430501141416350167125776143535377100000404000040773737737371616525341464077777777777777777777777777777777777777776577773777777777777704077735777777771401420000000000000771752140410716100715371711507010000705734340040000400033377777777563773736442537777777777777777777777777777777777775757717477777577777777777507105777777777700040500004004005271456105313410415351040507170100571050143410024000400017377737371736173777753544777577777777777777777777777777777577677657743477773777777777777057604353553777040170500000000005473116535441710430701313507173100071016110037100400403736337777760416773737763777777257777777777777777777777777777775777756543577777777777777777075070402741470004070400007504071457717731061770415061701161775014014017340336030000370034271730406635377761777377347777777777777777777777777777777777757777756777777777777777777743040057121741405000005500007700370571414141051734140534135301731421410037713005377003001760440440576527377777777777777777777777777777777777777777757777561635777775777777777704354100177717353400050520070577144007061735305301531073417770141040143000000347733330040020406044042437757777777777777777777777777777777777777777777777777775777777737777777777507377770377757771004377750525305335711507535377042561717101710350140053053100003777610040340444004040407377777777777777777777777777777777777777775777777575775657777777777777771777777777577737774005770061775254177721703405171010141712500404250143750414000100037361353044044424404777737777777777757777777777777777777777777777777777777777377777777777777777757171737353577700376107577771034351570514176053416077141301001104141000001004000737373204004400440563777773777777777777777777777777777777777777777777775657757777777177777777740257777577677377357414773777777514043052412511241710535035101070004100711250031003737204044420444243777377777777777777777777777777777777777777777777757777767757777777577777777055614016141014014707617571777777717107113414341530417101430417171300001071351410173714000400472405773767777777777777777777777777777777777777777777777777757577777777773577777770061616140164400071417773531743777777577414341041410716101410000471711400050031007373210400444041773743527377777777777777777777777777777777777777777777777777747577777777777777147141450706100165065675353435357077777701617134301570510700005710040043115004140002405200072407773774256577777777777777777777577777777777777777777777777577775777677777777777770434343070414147707173537753777717177777775353410467313050100053050010000401000015013303504041773777375616177777777777777777777777777777777777777777777777775777757777777777777750541404050404165047171653717777777753537777771711107507170521414070140100007100030077372007773777377737777774257777777777777777775737777777777777777777777777757757777777777777070043434252177165377531353717777777777571777777777173516530570101050101710417104103307353073777377737777776174767777777777577775777577777777777777777777777777777775753771771777057041405057416717171775353357777777777777174765777170253501071404340561013710000073733200777377737777372416477777777777773771777777777777777777777777777777777757777777775067774707143077257771777077137714777777777777777735173477535140407400101000104050000005343250177377737777377454657575777777777577773777177577777777777777777777777777775777475707575735707354145735371717357717371777777771734777777753507777311403140540505010000010002143027377737773777773652477676577777737777575777777777577777777777777777777777777577725707725675747777377775377717353715377737775775735775777777717174001571003100005610007710402007737737773777356165257747577777777757357773535777777777777777777777777777777777757577757575377571311177777761757357731177577173777771777777777777717161035040530001710510000053733737773777376737777756777777777757777777357777777177777777777777777777777777777777777777737753361037717171177335371107777737775357777777173777777717537571001041140040004000377373773777377717773777775777777777777577375371777777777773777777777777777777777777777777775771375113117717177175735737717777577777717777777571756571607573431405040000110000172137373777377436727777777777777777777737357775357357771777757777777777777777777777777777573737771133513137777177375734117371737717371717777777777717505170541401210171043500036373637377377700453577777777777777777777757777334357777777571771777757377775377777577377777357535177152103577777717537537701777571775777735777777777707352052070535050404173037100003737377430464367737777777777777777775737715153717717773777777777775777777577377777573571713117310311313735371773753771177777377537353077777777777775757715000143100130103724000073737700440404407777777777777777777737717734357777753571771753535371717777777537753777370171301711311017771717171717537357177537757775352577777771776717771571077300510733100700303720464040604745777777777777777777757771735353573753171773777735377777537177753751775373015311210313117777377777713517777177537371735352567777777717750773700571412513772300007340040404404524277777777777777777775377573537777357375357177771717535773757777353777531117131731533010717775717117752713777777757577137153177077777777104144353000751273373533700000040640460475777777777777777777777537357717535771521737573535353773775353577771753371713073503151137771731753771371477735375373717712714717577577777310000411410303737373360000004404140474377777777777777777777177757717537773173171717171716171757731073775377357130371753710370177775777375377173175777371757713717717052537177777771110061041737373360404000040466340477767777777777777777777717777737153577177175777713531071717771171775317357171171717711310777737175375317171371757573717717537777050547535777777710171103737375300004000140475253777577777777777777777771777753537777357717735371713171173753537771335757317173303711310117777777377175737177777737757770531773777770107677777525752570373737020000000406340527777777777777777777777777175777371753535371353537573017017315373753177573731713511535370311377777535717733531257353577773137373047377377771505043504005017737200105004000075257777777777777777777777777777173575716357771775353753153717171731353737173757171713033531110301777777777735753571377777753757535350004377377777777140105300373610373320000400527737737777777777477777777777757177773515353571371713773717113035775357173577353537171531437111177777777177737713175353537757337535314000377341273777361005343243043343734000037777777777777777577765777777777735717773617777375373757753535301537135317537317131717131353173031777777777717753716377777753735753530704044204377777377777735004004337333000373737737777777777476757577677777771773757771573717317571737373130121717531713753531053530107317513107777717771775353535377757373571373531000003537373737737773400000437432700137343777777777777777756767775777777775757377573577757137377575173511535313531253713413103113115313711377777771717737717375777375753775173530404043737373773773640040400003352177373377777737777777777757576777777777777357773537777357175173735013301317130313535713177117103710353217777777777717535717377777773775377171700017373737373373730040000404040012337373377777777777777777767757777777777775735353507517317777171373515311717115153530353533503111035211177777777773777731717777577777537534371007327373737377342504004040000037373736373737777777777777777757777777777775773577371731371775317177111321703130312135351313571313503531317777777777757377177777777371713717371521720500737373730301600400004003737373737377777777277777777777777777777777773577357535171701735777177771511353510116171310112131103111353135777777777377177717777777777757735173173700300373732161733400004007773737373373777773747477777777777777777777777773717353735301717317777177373771313135317171731717171313071301735377777777577377777777757777371735341373004003725240372733704002120063737373730777244345657777777777777777777777575775757134353715777777777177171617101137371121130131015353137777757777777775777777777777177535121737214001730000127337340003737003003737730003747434727777777777777777777777777737537371711135773777777717537171711312577133513713171331330757357377777777777777777777777753103571733733732040040613730034373500404373732013344346454750747777777777777777777777537575353716135356177753773535313035111352513711711350171117377377377377777777777777717153737171333773737040000000343430733736300003372000272434707256776777777777777777775777777537377717317125310177771535371715137305313153713712135330707537175775737373777777777737357577357773373700000000040000737773737030370040000336454745614757777777777777777767777777757535735711535317717073537011313411137171211351353531175353757737377757777777777777775737317333377370000404000000733733373733770004004037307257165677777777777777777777574777775373537571373130171711353751371371373571315353125313713537777373757737775753753777777773775773777307000400000400537377377377370004000000000745677725777775777777777777777777777777573537377177517170535353131071511053534331353535710172571357753717577373773777577577675033373337030710000000021237337337337000000404004007165747777777777777777777777777757777777777535777173135133531353571123713353135530353137313573767353777773777753577537437737070073777003733250040021373737737377316000000004000377727377777777777777777777777777777777775353537757171733513175271317151351357133535317111777171717775353777577777737773535753007340030733437300003724000323737300401600000000037747777777777777777757577777777777777777177777717737175351343531152531337135373171313535373707771771737777773717371717177737377733000030373730073771000007373702533121000040613737377777777777777777676777777777777777777737717517757125371353171353515113435353535353313571771770775653537577775777377171657173573400437233070373270000037342503363707000031343077777777777777776757575777777777777777775757737717777135357353171312312513133537173171703471771771637777777753737175377173377173773500005030373373303407340002527373000121720000777777777777777675676767577777777777777777777571717717107135352171715353710513113177161771347167171753537537375757377137757176170773700030737373737373300000043713250727372004007777777777777777567757576777777777777777771753773771731713535317073537131131251347537177175737717777377757777572735717771737717735357340373737373737304000040000605233737215000277777777777777777756776577777777777777777777777771717471753537531153513516113161337567177637571707175717736173757563707173535217537717170737373737376000400004000303773737321211777707777777777777756577777777777777777777537175775313531317777773533752137153175773574175737371717377777577577353575352527535737537763737373737373300000004000007733773737373607777777767777777777777777777777777777777777777777777531775777535313571317113317177577377537575670716177777352537777165753517172516153535717337377034014000400005733773373737300007777734347777777777777777777777777777777777577171753175713773771757173531735777777375734347371171617617575777757016133134361615217277173752737303703000400002733377337733734000777775674756777777777777777777777777777777777777773775303753757171377177171777717175775775174777071717763777534357715756717535125017137343737021633737300404310242337733470000007734241434757777777777777777777775777777777777777753777153757317775353353777777777777735734371771617717577773577357020115213434171257417353535001733730700037700004337733032420075676564743647777777777777777777477777777777777757775717717125777735353777757775752535767577576171771773717777147707152527571007055213735373730061673700373730000033610403713100241450470745357777777777777565747777777777777777775373771753537177173777753777773777776117717717707077175775707370535211357000505321756171617050033030377373600005340002372372006564773464767777777777777777767775675777777777777777753573717537177777575775777777534157434717757717167737737757173531525353410125570716135317304043437737373735320000405373310150473775341777777777777777775747675477777777777777777773573737577777577025677777577777353534357375777175775771616516503134353434121534357434315300073733737333734000400020342063773477434777777677777777777777757477777777777777777567777757777777777707571775777757525257357075776177737177141753713040535251000572515235315235173737773737770000000040004017333775773777777477777777777777770743777777777777777777756577775777577777753675777577737753525707777717753757734004005340017253505035251637512521163033733373733120004000004033337777437477773773717775777777777777777775777777777777777777657777577777757775777777357753747734100775701657370400005341153415343005071071410710507115063777373560000000040000377733773737777777777777670747777777777777727777777777777777757777777777777775771435777757775357534175377751774340000007342161617141000570161710712527031003373712134000000001373323737477773777777777741674777777777777777757777747777777777777777777577777777777777577377177735716107577377775100000014105141707107000000101071351117140377250073733000000360307373737777777777777761765453437577777777777777765777777777777777777777757777775777777775756717563475777657717534000004770506170716500100014303125306736037000007372730000173000003373773777777377777560563647467777377777777777536577777777777777777777777757777575777777735763753535717347777400100001536514175010140505211141507510517340040437373730033270000037207777737777773636561441641773777777777736464756577777777777777777777777777777777777775771757777770755353537500404167536170177710100005250003103712500040000043700037731300003000077777773777747573464344377777777777736753574356747777777777777777575677777777777775377077777577775277747743452525353516156150741410001000304341250040004040000737732736331200000737743777737737377504437563477777774757746065670777777777777775657677757775254777777717717357757535705371757341757765251617275100040000100517165000004000004373773373733120000007773743737707777703737776173437777777737357561477777777777777777775757675777734757777737757776376777775777357350717175071757524050100100052050100404000004006377377373372000000043770377604737377747737374467777370737777725477777777777777777775677675777757770757174757753575357717725257657756756177161613531214015000050040003304004003717337373377000000000743777704061677343737777737173706577777774773773775377777777777777565777777775777277731343777774735771757705770735717056140561405001700041000005373030403720727737377300200000000377700404043714377777373777744656277373737777774767777777777777777777777777777575757574315777173577775075773577571653535257170500534001100400337340003171000013773720031000000077707440442404277737377777340614045077747737777773577775777777777777777777777777777777535777777577765777373477537775256525507414341710406500016737370737234040273370177273040000700406160040405377777377377704607064343777777773777774725677777777777777777777777577536525735771077561775753567525775375707143705376501010400030400373737300007340060335370014137440604454040737737377737434740544144777377773777736161475757777777777777777773777777753416567167707176576757357577777525716141735710040400040403777373737737704004075737203633606160100600437673777773563434042424637377737777777456576706777777777777777777475777777777771714141414753571775737252777571657177525705040004000737337373773340000000020201737373604437340443700047373772537737404417477777773773617252414750777777777777767477767677777777777777777770777774165475757773477377470521400004000433737737737374004040404070737373730100737003737070027742563737717707737070737777477777756740777777777777777757475757077777777777777777574757777737773774161037373073773160000537527737373770034000040000073737373737347700737734043770406177734707373742563773743737371614377072777777777375253434257777777777777770707070737737773777352407740407073237000343600000377361073434004040717373737373737077737373737370000404361773777777356177044377777777777777757777777777777747475777777777777777474565654657777777737373700000007373703173373000037302527373300400030233737373737700000000000000000000000105000000000000E5AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(6,'Meat/Poultry','Prepared meats',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF00000000000000733431247777777777777777777777777777777777777777777777777777777777777777777777772577777777777777777777777775677750043507777777717677777776343737737172736373635337373373727300002407477737777377377777777777777777777777777777777777777777777777777777777777777777777777777777777776767777677777775247757777776775761707373737237372737173717377373777363737733477777777777777777777777773777777777777777777777777777777777777777777777777377777777774777777377777777776777767677760104357777775673372737373737737373737373737337373337173732407777377777777777777777777777777777777777777777777777777777777777777777773777524000000000000004165777777777777777527750435677777773734737371737373173737373727372736334737337377777777777777737777773777777777777777777777777777777777777777777777777736140000000000000000000000000040507777777777777770041757777777733737273637376373736373737373713733737637777377777777777777777777777777777777777777777777777777777777777777777734000000000001404160746740040000000040657777777777775241677777377737373737373373727377373737353773737237377777777777777777777777777777777777777777777777777777777777777777735210000000044767773777577353777777652040000043777777777774161577777737725373735367373737317371737233373737737377777777777773777777777777377777377777777777777777777777777774371600000006177737534247043414747416171777737000004077777777770043777777773737373737337371737736372737776373733737777777777777777777377773777777777777777777777777777777777756370700000004577616506461407404740043406060407437760000005777777775241777777373737363737737373633737373733335273573737777777777777777777777777777737777777777777777777777777312777700000407773052507005040400000040040414052525041775340000537777775340777777773727373731737373773737373757337373637777777777777777737777777777777777777777777777777777753434777000000077757047040404004000400040004000404040406524177704000477777774177077777377353772773637373373737373237737373733777777777777777777757777777777777777777777777777437243772500000477725242404000400000000040000000000000400050412407772000057777777407477777737373337337363736537343737773373737377777737773777777777377777777777777777777777775373607346750000047750404140004000004000400000400004000000004040443400577700007777777001477777737277737737353733637373733377363734377777777777777777777777777777777777777777176372577747770000077725257040404004004000600606070745424040040000000400561617700004777777403777737737337337173737737373727771325373737737777777777377777777777777777777777763617253476347370000067745040400000000406574757577577577777577777704000000040040407770001777777754777777737537727372733737373733367373657477777777777777757777777777777777777535375361767356776000047710343400040042456535377777773752713637777757774000000004043430770004777777037777773773633737373773737337177735657727377777777777777777577777777777773537270365763565252710040775644040040042457373765725730577757757577577777777640004000040450776000777777414777777373773737373172527536725727373577777777777777773777777777777373436071675364743363770000077205340040006577707161775735476177343777373776773777740000004000434170400777777434777777373373737363733736717737776563477777777777777777777777770325253437767164733256577400047705404000004753520712577073527717707775252572537575775774000000040042573001777777057777777777373525737747773770771737373777777777777777777777352137563767743706733565777700007714742000407573672171657617161753770773537357357757777777776000004004050774000777777077777373716373737743737167077273434777777777777777777737716376562570752743712567776776000477600144000256171353435753707167370753073435257743727737777577400000004250376007777777007777773737477773776577737717773737777777777777777750730707077576772703725777747776700007705640000057177071253437617343572534771717077717353531653737777700000040040577005777777757777777773716577373727537772377733777777777377301273472777616312171774777567677770000770561040004347712165617561340177353473563435752717073431307171777400000004340370007777777077777777777673635365373673757773777777737163434767747374161631676765677667747776000077524004000534712161731347317037725347172153772710725343574716167177500000404004770007777777517777777773777777737737377337377377777727073777706347436373477777767675767776570007700534000004716774352164357075053534363717257713770125352131616107037600000000700770057777777657777777777577737377737377737375337164177474617716303434767675675675767577437000077564040400034353316171356371237773057170717717703073527074777777777757700000050601740077777777727775757477777737377377737737377727077607273630716777777577567767676747237760007702014000004770774317070757071407307277353653631717143577777777577777774000004041403700577777737575777777737577777377163763576374177670734307076657677676777676775370737461000570655600000061177130707165217121770775317075377143434377757317177775777770000000040477100777777777777777773753777737737771777735777601271616777777767477476767757363437073770007341600400004576174353160177707525371737613777316317177777357736134361677770000004161077007777777777777737170300777735673773737777670761677776776567777677776567347163477477000477041400000037716334343170537103525356535616357316167770537305070537171777770000000040077007777777777773507140500777773777777472731271777567475656776767727037352736752707630043707560400004547357435252077416343036373721775325217577072534373172534361757740000004340770047777777773052500100005777775617617357761677676777767777656350343761674775274731400074040000004056371753121735701735171715717177733535773713535215257053437173773700000404107700777777775705210434770007777773773777777777577476767777257316377341765770725321633041734304000000775772765343521763532070737677375343436570761253725217343107252577400000042407100777775210705070057750007777777777777777676767777652707306716407665361635325333700077054704000007525351734303525172553035253534737353577731743071717053167153173777500000141077005777775615250575257770007777777777777777477773435270724735673725326121633736173000734214000004756572737571613472573257125777273171257713430353521613707316361616176000040060530027777771614377725437741017777777777777767774347361437573467342530713373361337300067425400000401653715257303425357705302537717577617776161735252535241736534171737750000004106700577777777435477752577704777777777777777773337325277462567134312733727353373733400171443404000741745635217753524735737171637773713777717161435353431360512712073577700000004217300777777771603577743077700777777777777774346164775637572126127373633733273370733006721040000000747375735250717134731707031527565703757725363434361655372510717073077400004054075007777777775743477747077750777777777777337357736473402163713731733573537316333700017547040000051617436525377616571743717563577377775737170153537171325052070707147375000000001720077777777777051777705777005777777777776164625653343337373373273273233633737373004770605000004060471753752171770367125752317777537167771617637053436503735371737335700004007427100777777777777476577500777007777777777757735733252373731327337335337373523731734007701424000007147430743717071755707737357707777777771721613537073513752525252525777000000401437007777777777777053577614774047777777777625620707373361727336137337335333731723300037525004000007057717147677072705353434375735775775375717617073527703717173533521774000000400730077777777777777456777403770077777777775733737337353733731737327336336373723737300772434000000447675637717177153652757737073577777777737731743577170750707052503577000000402407500777777777777777251777147770177777777720703333613273363363733732533735233371730005705405000005357177170743416365351271577356377777771653565317217371273735271777704000000050532007777777777777775467776017740777777777737336173377317317331271373373333537323700067007244000004776574173577355734777172357375357775773763737635634375353435370777000000404002710477777777777777777147775077700777777773333337373337237337373363373072732717733700177141000004034717372532516375734352541257377773777777177535735735271617070777740000000025057000777777777777777776147774077704777777736177336374337336327337373273373373323173000716064040000473617577053617527757773375375307177777177737773734377173753777175000000000404330077777777777777777777077770577437777777337333713333631731733633137337317373737270043705500000004775776175301712557765357432525777777777737657257537707161677577770000004040033400777777777777777777774177770777077777777336363377373723733371372735732733631733320047406040000005723573077770353253177273573737177717777753735363753777771777303400000000050471007777777777777777777774077770777577777733713372336173732730373373323733613732737300017014204000025707170014774353043417753575777776777777777777577777777777774353000000040403700477777777777777777777775077743777777777363373173733371373737327373731733733733517000770605400000477716527021775707353771763736573535357777777777777757317777530740000040020070007777777777777777777777770577747777777373372336333536336132733533163363373363172270004350500004000571205710170120775735077170717253777771775777773707374775743070000000004507100477777777777777777777777770777773752536773177337363733737371633727337337343136175370005704244000000775207770052501030437177777777777567777777777757756177777352500000040400071007777777777777777777777777777777763777757336337137333713337333733737137123347436327570007705340040004375301772102161430525071717775363717777777777777777777352017400000002401700077777777777777777777777777734373577777777337723635363727127373731323612547323575716300053404044000004770707170014121043035377773537577777777577777777777775251700000000450070007777777777777777777777777370777577767727337133373337333733737300272561252361756363637400077007000000005771616570612525352527753777777777777177777777777771725364000004040007100677777777777777777777777534777776777353756723673353633773733030735073076777776777735773700437405604000004771610771701020353717677577777777577775777777777773537100004000404370007777777777777777777753736777777737257777773373372333730312163434261677353535737775777773400437005040040000771630777775753757617537475777757145735777777777777774000000400017000777777777777777777773775777777161757777767773353373733437256143737163534372737573777777777000570524140000045775771614361674217343563777777534735777777777777714000004040407710077777777777777716353653677753437776777767777372334330343704307234256352737353773757377377777000770416004000007777577777577535747773757377516043577757777577753400004000005370007777777777777777777777777772777777777777777773373336161720736714737357737537373777277777777777000572407404040007777775777777773731777374777753557577777777757741040000650427100077777777777777777777777473757777767776777767734334072525734716300077371737737353773735777777777400353416050000407777777775777777473475377753502537577777577777361040400407710047777777771657777777777777777777777777777775337336137252721630616737717673633437361773773777777777040770407060400057777777777757777753777575752757757777537717775004161400771004777735256161352535777777777767776777777353637474072725256163073733752773317173737737177377777777777000777054142400077777777777775717777777777175535777536575757534704142573100776150505001050041430375777777777777777257677777737253525236177173477771353737317131737377777777777777400177206414240047777777777777777757405147537777716553577777405256053700007150000000040041001414125377777777737177777777777725207337177372373773777353014307471657075373777777777424057516414340000577777777777777000065217575777616757177707074017770006500000000000010000100210525275777777777777572534333525737373337337377371301201637737373737725477577777777500077701654045042525743452540500400534577777775751777750474057770005010000000000100001050215050105177777777777763773737707333707377273773737525034373731737777771513707757777777740007774006524004000000000000000007507357577771777754707017370000100000000010000010100001000030712107577777777537377373737373736335370343533125373501434143113170755757657777777774004377500416504040434000000000043565737777742570525405775000040000000000000100000010140121411053503177777373773237373707373737336172777043731003471077756740010217717777777777777004137770416165240404040400400043575757775756164007773000141000000000000100010110010100501421052507177777773775737373737371725616252127530047741647077657777435005775757777777777400407773404054165210207040404247177777534004537771000460000000000000000000000001000010121143017107137737777373727373730636163735717753057777064704775357477706135777777777777777740000577771600404444540525041404757752407573752000447140000000010000000000101010011410416105710713577773737373737371671437170763653007004374014707764652574404431577777777777777777400001777773500000004040600000001757777740000477740000000100010012011000001001000121103530171053117777773737330631637436370343743704074774060565735656571606470757777777777777777774000041777777776716350747777777725000004477777400000000101010510010350101041034143501537171070737737773737671477073616177770340416007706560077440617764040435377777777777777777777440000004161753757775352507000000407777777700000010110121013013525201705103501210712507071171773773772731637212525777777075000610477040056775775776504746475777777777777777777777777404000000000000000000000404777777777770400101001201010701210111171013041035070351717127147777377173777077777777777770524041470775076005761474756765777677777777777777777777777777777765616442406146567477777777777777410010101010101010105112530172053171417155071717503177377737373212577777777777735004200420764054065767470757776577771777777777777777777777777777777777777577773577777777777777734010000101010000000000010035153101731713071352513543777737737377777777777777774360404041457704204074543474765677656577777777777777777777777777777777777473043547777777777777777410001010000000000000000001403016171071653161717752177737773637377777777777777735040004160077004702524246056565765656777777777777777777777777777777565173516170034173777777777771000100000000000000000000000105010001711317170735017737773737373777777777777777470040400070774000404004147677775777775777777777777777777777777777777777052710734537575777777777771014100000000000010001010000001061520343435353537017773777373777777777777777777354002404040770400474256157577777757347577777777777777777777777777777777150705010527771775777777775210100000010100001000001010001000140151435357153073773773723777777777777777777004040016016040040005057677757675775734717777777777777777777777775374347070034273417347777777777777530000000000010100010100201601014134303534307705374373173577777777777777777752400040640404004140524775775775777535553575777777777777777777777707535712016531750774737377577777777740001000101020014010011101125030411753411711077737567777777777777777777777712404040160404424240534175376175357563743525777777777757777777777000473417013400301717574577777777777775000300001010010014004004101413061071701077377777777777777777777777777777752400040525024141700434165757075347577577577777777777774777777770071403016701250077073737707575777777777700170500410010010101030521615171307777177757737773737777777777777777777300040000406502524141435716175717537573743757777777777777577777025420350011077006516174771777777777777777750010011041043016161052141034377777777767727777377777777777777777777777174246740440750050343570717521617757575757777775757577777777777503505000000734717217717577717777777777777777161000100105010105214377777577773777773777777563777777777777777777777014777777700050304101034161755705277777757777777777716377777777740300000401413714770737057735777777777777777777770716125252525777777777775777773777717373777777777777777777777777125777777570340102407537161617775417577777777777777757077777777104034000720407217714717365771757777777777777777777777737777777777717637737737757357777777777777777777777777763536535074752050014251716757173565777743757577777777777777535777756010010037053505771771657717677377777777777777737377377777777772536777777777757377777770777777777777777673717176777034347205007061125071307545773777775737777777777777777773777703400007041272125367165341773575777777777777737777777777773773777777377777377377777370777777777777775253747776776777735075703414104025347753731757357776577777775777777777757777410000171005714734177177743577767737777777777777777777777777777777377537367777677347777777777777673677657776773717074777714710034375373312301610307707577575777377777777777773773474040061730037716170773776177177577777777777777777777777737773775737777777673577777777777777777577577777253475677777767771067377337107351171310110713577777775777777777777757752100000173407750777077357717777737757777777777777777777777773777377777771735777777777777353673676772763617767767776776573425736530712730303601013031165375777777777777777777777605200716152570177716534777775177577777777777777777777377377577177777773777777777777777737777577777773757657777777776777571773533377731713101173011103125375777777777735777777777005721712073706136173525347767707737777777777777777777777773777777772577777777777375737777776777437477777677767677777776077373563167723010767753031101134377777777777777777777777701703417161177417761777177177077577577777777777737773773777777253777777777777775377775677777777777777677767777767717617725363353713111771110101410310135357777777757777777775770340147350167701673577707737777757737757777777737777775777677377777777777777277377777477177437776777767777777371716761771737135361774765213031713371431016777777757777777777777774034217236530777143761772577177377577777777777777777777735377777777777772737167767167337677777777767777767757677777343737037635330135771011101215073537353777777777777777777377377041605753053770757177752577757707777777777777777777737777777777777377375777777577737477776777777777707777677767675775277717325136127773012115301102114353777777777777777777777777353731257770177307771777073777777777777777777777377777777777777376377777677673725777777777777437777777777753717327537177735373517157741311210125311613077771777377777777537777735671477730077716571277717757777537777777777777777777777777773717357747777171765777677777777777776777770737363737577373637103016330371770121313530567101777567575777777773777377777167301677716377347571773437777757777777777777777777777377257677777773737777777777767777477777777773373437372733735253127353710534371353101017713533125777777677777777777777777777716771771617771737077577707777777777777777777777777774377777777677365777677777657377777777777353743733737173727773353530343773135161253531277030103527777777777777771777777777777717670777741677525723757771777777777777777777757353777777777717347776777777437371777777737257273737773737373577716303771717170121311727031731135312577777777777771777777777777777771771717377177773577377577777777777777777773727777775763527777777777777373707677777773477737373737336373737377331734770307353177163513177503031253777777777777177777777777777777777072777716177177057777777777777777777757377777777277177777777777732537347777727737777373737737637773727373343523131371307773477353703437313431477777777777125777777777777777777777570707777167777376177777777777777737377577777477377777777677637773657777735773477377777737373737373737367373561343071703477375301713101713167777777770125777777777777777777777777773752537171777177777777777775737777576777773757776777777735737577777347637777377737373567353737371737337373316131371173773537730353330350717776101577777777777777777777777773737775377776772577777777777753777747776777352777677777773437737677737776371777377773777773737373537373537735335731352536313572163531234117077771717777777777677777777777777777777777777716173757777777777773777777777737737777777767777377752777377761735777777733753737373736372736372733363730525373535273173173435137253677777777777753777777777777777767357777777767777577777777777753777767777767735677777777735377172757757725377777777773773773737373737373737373763731731125737331343152173727101057357777777753777737777777774377377737777737177777777777775637777777777737177777777777737736167777777361777777777773753773773727373737373737373373727352112521637336377353116167777777773637777777777377773777757777767527777777777777773737777777775370777767777671771707777777572343777777777775373777373253735373537353713735373736377250575350531710705617377377376177577777377776573577773777767737777777777777772777777776777377777777777777376377777773772357777777777777737773777377373727363727327363736373737337333016177161071737777776356177773737377775373776777776777717777777777777373771777777775377767776777775277717677773752177777777777777253637373377377373737373737737373737373737317373737074377777737252177377737777756717377777777774734377777777777777275271777747743767777777777776375347773770743777777777777716357375777377737377373737373733737373737073034725616527377434361617377733737773737373777777777373737777777777777773707377767767373777777777777712717277736577373777777777777713737737737377373777373737373737373737373737377773773773737773737373737773777737377777777777777777777777777777777773777777777777737777777777777373777777777773737777777777777373777777777777737000000000000000000000105000000000000A2AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(7,'Produce','Dried fruit and bean curd',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF0000000000000033273373337373373373172177765677143477212657777776567776777777747077777777777777777777757777754757777777777777777777377777777777777777777777377777777777777777102136770007770000373373373233373373372173613777767773617717725777776777777677777777771777777777777757777777707746757777777777777777777777777777777777777777777777737777777777777752412576706033277337317373737237337373303763470777675672730737677777677767777777777777777777777777775777740447575677777777777777777777777377777777777777777777777777777777777777771252637616373333733733373333733737337373137377565777574777271756777767776777777777777777777777757777706070047565477777777777777777777777777777777777777777777777777777777777777777701043777337733732737317373373233737337375236377276777617677374347777777676777777777777777577777777405771065772577777777777777777777777737777777777777777777777777777777777777777777300333733732733737237373173733737363373535275752777775367377774777777777777777777777577777777404177774065746577777777777777777777777777777737777737777777777777777777777377777777770733773773373373733273373773733373373733123375656767574737377767777777777777777777775777406546746750074756577777777777777777777777777777777777777777777777777777777777777777777773732333337337333737337333233377377373737734373777776777477737357777777777777577577777560654257757750475656577777777777777777777777777777777777777777777777777377777777777777777773777373732733773337333773737337333372733737343707777777616577737777777777777777777760475604047770640465756567777777777777777777777777777777377777777777777777777737777777777777333337333733733373737633373737337376373773737373770776777777777777777777777777777770045253404047475240434756152767777777777777777777777777777777377777777777777777777777737777777373337273373372373333737337237327337373373737377377717777777777777777577757757774040404645256561764571656747671374767777777777777777777777777777777777777777777377777777777777737333737337137337237373733733737373733737373737737737777777777777777777757777771404250041435614044406774475475277635177777777777777777777777777777777777777777777777737777777377337273337337237337337337273773737337373737373733737737737777777777777777777777642404040040404044000447770477465635267252477777777777777777777777777777777777737777777777777777773737373737337337317337337333733737373736373737773737737777777777777777577777741450404241000000007440777770475747475257353701777777777777777777777777777777777777777777777777777773333373337337337336337337733773373373737373733377373773777777777777577777704067000014104000000740067775740474747765624721676577777777777777777777777777777777777737777777377777373737363733733633737373733373337367373737377377737777377737777775777777770474757645650000000444005776563704657452777752567312047777777777777777777777777777777777773777777777773373337373273733373337333727372737337373737737737737377777777777777777774052474775347050100557000477757447750076544347772524677300677777777777777777777777777777377777777777777737367737373333737377337373737373737373737733737737777377377777777777777006440424675747446577604077774607446774476564342477717077731257777777777777777777777777777777777777777777337333337373733733337237337373373737373733773773737377777777577577777404704250450476400247400407777405440045704056547707047677404673025677777777777777777777777777777777777377777737377737373273363737373733737373737337377377377777737377777777777400474040405246750045404040757040640045426504674763736342567773447312107677777777777777777777777777777777777733333333737373373373337337373373373736737737377373737777777777777740045404040464144244343440577644044040060456714074454775256347477256256313077777777777777777777777777777777777377725213737377377373737273727372737337733737377377773777575777770004061604040564044047440777740040000444040444654565275677365267347356346243066377777777777777777777777777777773333737721235337333373733333737373737733773737737737377377777774004240474104340404004750775674074004140000040407706565477767537124765674716527135677777777777777777777777777777725217470773733733777333777773737373733377377373773777777577774004414043414004770040047777465047504070400004074757744656565777652532126167653652463150767777777777777777777777777737773773470723730337773333373737373777737377773777377777773400004647751000004740000467774164074000500000007404777714742567677777656116347747677167273705777777777777777777777777470163573777561735323577773737373773373777373773777737777740434004041601000016400005777704157700414000000040477777604756565677777776617307247167734203630357777777777777777777773777743675273776727173333737373773777373737777377377777740000470004351140004440007760746576770400000000004077777775504654747676767477765325727756565743070727777777777777777777163572777437577717777637753637737373737777777377777777770004047416405040000400005774054056507440040000044424777657652447565257674767646777430347656376347632531677777777777777777743353437777252773537656371737777777773737377773777777000000507471401100000400776140424075600770040004000577575750657006565647765777776777777737274074771643673134777777777777772777737125277777476777377777737377373777777773777777777000404404743400004000477547465140005405640044000477764774250756506565677767776747677777701277160677743466330147777777777353473777737132537777177777777777737777377773777777777777000000040040004400057706704100000561404040000457760536047740640456474767764765677676767761216770043777114636334176777777737777373777777771777777777777777777777773777777777777771000040004050400047777444410400004044000000057671457654565340477047474356777767647677474777610036764647673652437213677773773337773777773777777777777777777752544644647777777777771000044004770004774340007410000400404250747775440675000044000477447437271667777765777676777773531212716471673707243177777377777773777777377777777776756040400000000000657677777776000004000400177454740001000001400404777777737400770000040404770567473475375677767777656777767470712616674747657343063337733773737377777737777775250000000000100500400040147777771000040000577407604044140000070000077777414440475010000000077774047747276167347767675675646767677251213434717274767377777777377777737777777765000040500725656572571414004004537770000044716565604500401000000404005777750640057105000000447775704776775616735636567767676777747677767343732667477356733776177777777777777775000400070775777777577677777525000405770000004774041406470700000070004064777740040247105000040777770400775677671663570747777676777747477774761617136346657777377373777777777775000002577775774757776575656757777741600570000004704040414040500000440005074477140044041100000077774400043737765675743632342771656766767665676767616137353676177777777777777771400007777656565777773577765475647577774140470000004042407404400000040004774405676564004100000007754000007377771777767765656353077674777767567777677776530343377377777777777777040007774747775777757056175357640757675777701040000004040447340050004004474040065750400471000004750400007777777777070756565361607603436747776677574767777677337777777777777777740000747774145770775311110535375744654567775765000000005040047740400404034074161440675040044040757440000577777777777776372765677761743613716777676776576767464777777777777777770000777744776452577525343010105071741650575777777450000040400440404000004465406560045640040000777400000067665677677777756753774360767253652716056776776756777776777777777777777000177543474453457757115115014100165665676565657777000000040040040000474047500040045000474004757400000054745064040604656777674377574707675247273734677777677777677777777777777100457756744045657775315773701211400157575757575777777500000044000007577404710400005240043777574340000747664646476474464042407777406373465436734342437147677656665677777777777774003776054656161657775771775351521014377777777777565777740000004405047473404400000044160447616504000044747475675656476566546404467770437327657474773432737167657767777777777777000577056404047577757735775571353510015777777777777775777710000000777407446100000000074400775404000056767656674664676474566474424064776035307276676567476163437277777777777777740017747475675774757777773430014116171077777777777777776757740000044750605014100000007040475040400047747474656477475656666747467464046475727307135256353617253617477777777777771004770747477577177777775351117113105105777775357757377575777700000004740560400000004754707504000005674767677777767767677574746746546400066435332523725665765670723030777777777700077775777177177177777775071010141107127777777717777777777757740000007704071000000414604740400004677777777776767777777767676774746656464047663733703071725661671747677777777774007774775777176175357777711075531305105577757175717577777777777700000045704461405040405714400000777776776776777776776777777776767656656474040561733373030721765467253677777777700177577777177535377777771035312150110127775737370753517775657577740000074400040060407740400000777777777777777777777777677676777777765665646044642737373372163127345765777777770047757771717717777577777701515715310300577777754153534775777777777000000470004004047754040000777777767777777777757777777777777767676776566564600470733337333312525272567777777500077675777735717573577771103031710514100775771731356571717775775777000000040040405777400000077777777777767676466656747477677777777777676566564640463737337173733321252777777777007775777535707773577177761511430713012102777775534317775635734775775400000470400777540000077777777777656404405416414707407460656777677776566565604460737033363737373303777577700077577753771717577356177530161151715351057535773515777711577475777770150000405777400000077777777776400441753777111373511701454206467776776506746400452337373333233337337777775004777777775075777375711573117111214311110777777150377717077775777577704770000044540000077777777764004167377777710535751305157335501044677776640656540663733337335373533777707770077757571735717575777771056111715315707017717157357753471757477167777700770000000000007777777764000535357737773131173315121717533757100406777746066400473372536333233633775077500777777775701772535777777157141215217500007777357777413575357477577577505770000000007777777774014171717375777771121753121525733513317711404776756164640407333337337333737770770007775777531771517573577777731315131530011075777777773777307777757757776007770000005777777760407773131617737737131113351151173153051713771004277674674404633737333733733377507700577777717057053756357777777141717077501000177577771715715757575677777750577770000777777764053577115171353777753010377101217351313131353177300467764067404373733163352337770077000775775771317161715777757757170717537011100177777775735777777777575777700777773477777777412537177312135357377331111311315353311511050117357710007777446044333277373337337700770047775777575017571777715353757175753501070100577775775725771777577777577705777747777777440513537371117131335377112117311130357131311317153737737004767065044373333373337377007700077477757353573577775121514377173750351010017777777777577475777777757775077777777777740713712575730311435137313111035301115331011011503717113535006776442407373737273733770077004777777775357757777531510135757775357507103777777777777353527577577777704777767777764171371535337111131303531713013131134337113135303171701711777000767640433372333332377700770007717575777777777773010034131777777773101157777777777757504153777775777705777577777517371113537737312531713433111015131111517111111153531131537377500774640673371737173377007710077777777777777777751711010415377757575177765743577777773534747777777775167777777744357371703111171711311111053131037121303131313012173111103577373700677440173373333373770077400777577775737777777131001011205777777777770171715347777741417175777757760577777774173735121153737331310121101316113753111151111011717310301773317577104767046373373637337710771004777777177575377750100100501577777777777417501534157775350747777777777157777777413535737113131101171113112111111353735103134353131311111173115353777106764413336333732777407770007757575377777777171010013101057777777701777701010015735250153757757774077777734171733713141053171035317313134135371773110113713535312103171301353777107762437337173733771077740017777775075357777171001075317137777577577775340311025775340757777777754777775431311753711313111131131357717131031737777131713773771111173111301353777006740437333333737770777300077577177177777711101005315014577777753777530111400537534110777775777417777743535371371731111210113101373311111173573731713743157131107111311535253777007643337373633377747775000777775715257777170101173503173777777377710153701300753515257775777711777770311317137373110301131315377315313035317353121071317337101311301113131757775076073732373373777377771000771537771177777170053510150157777775747105341141101773705357765777647777541735213530353311110110131117331111013737313513135311577717311312134173777770065233737373377775777770000777575756177777710153100050357357761710717101370065757165777777775177776171313533171353313131311073717121313103533512153535313777771211115135777777775265233333373377777777700004756377375757771753010010315375775110531717161517737357737775777507777705353531353131311317711171113731311111353713111213130777777771130537733535373700703507173373777777777700005304735171777147710105001435047137351741410117777575737575177752577770537313131211312135771103105371153112131331301137173535313131131013531151317577146742333216337777777777700004004577017743105310111011161077505301101014357777777577767777741777543717135171131311037771111301173313111101711112113173313110131117773171314317177106374247313277777777777500004000537417101005710001071540473525357100017761775777577577775177777013737133133111311717373011131153113131317313117373111111311010177113110715377537014377342061777777777777000004000753504110771011353561317751050012177757175777577657777507777701713533113110311173737111131013110771101777101735313130110131137713510351351737770673434356167777777777777000040004775311657170777410110477777535757775777107777755777764177777071713435311131013353537301011311053713377353537531110113013113571713135135277577700343473616377777777577777000005000617571777577751757751177777777777777057753576777775517777741313531316133171353133531311010101373735317337773111313153117077731105137135173777506363061617777777737277777400061000425655377777701777765777777777777757053577557775700777777525713153131531131352513531311010153735737317135371301113353317777735317175735777777417163563607777777777536773000057000441657577771777777104777777775774777770747777560577777770533171317133113113113170171031311253533135313135771135271315351753531737331737777770277352341677737757777771775000007500044753771417775750407777575777577553575777716153777777437117125313110312101353113017125135373717131351177313131101121131377373511153575777717737735373777733777777777737000000771004465753507770142407777371753573747177777450777777777477313111313531111171303111311130117371335311301257011131131111101577711312110313777003733333377757773437377777777140000577300042571153750054465775771770541177777040177777777750771713131713131301131153011311110335371313711311317131131011213533771301111311141777433777727333773373716777767777300000057535014304351005243543477474071777777404177777777777707113153101313101133413111301031017173134311311131313512131371353571311110130170113501373733737773477373737177775777740000007777535011000464444644450517577775040435777777777770771353317130113135311311301131101737317331130103535353335317135373331112533511113577127327373333373337273737253736777735000000477777735315141615353777777770404001777737777777770171315213135311135311211310101317317311113131317737335317135131775112113513737713174007134377377377737373737370735735773700000004057777737777777777777744040005777777777777777561335313517131313131311311131101775717371311111777717135313131577737113533511535777771216337257337233737373737333723527377770000000004056575757474440400000017377777777777777777057113153335353501773531031113177573313131310177731131131716173777713513101313073777007634605327737377373737373773773372537177700000000000000000000000000567777777777777777777770731705315113131357773113105311577371311210137773113103111177777531311311131115357770773561362533737337373737373373377373736371773521000000000000041074777777777737537777777777704711131336317111373535351331130375775311131737353713113121157777131131131112101777506167374356377337373733737373373373737373727777777770707134373777777777777777777773772577777707731141111113017777331011170117131177375777531313713113113017737171161135111101776072525276377337737373773732737373373737373733077777777737671777767777777777777777777777737775077713135313111357735171371131433531357777713105111135311301057713131113533530177717352527525237373373737337373637377737373737377307777777777776537373777777777777777777777773770477713111310131373713011013113353101771337711131213733131111377353537377751111771477777352161737337372733737333736333373373737337737077756777777777775375777777776777777777777730777353301531171171311317311317313111035110353111110177531301577737353531377777770777777777373373737373773737733737772773737377733737343773477377675777737777767777777777777777714757353131171121171711111301735353313131311353131131037371107777373313110177777477777777777737373737373372733733733373373737333773737370347374777776777773477777777677777777777433735317133131113131031311173573311111131111317131101353131377735311300115777750777777777777737373733737737373773377377337373773337737377333433073777777777737377777777776777677057131713511101017131110173373331731307113010731711311173537777131130111217775277777777777773737337373733733732337337337737373377733737337373737352352777777777777777767777777777037531310313110217131313177171731111137311111531311121177757733131537311777765777777777777773737337333773773773737377337337373337737377337373737377373437777777737777777777777775013535311110111371711177373371373107173531037171311110171317531031777711777077777777777777337336337773333373373737337736337376333737337373373373337373734356777777753777777677760713131131010351131373717171331113533713101177317131131311113113177531777707777777777777777337313723337777337373637733737737333773737727337337377737373773735775777777343777767710771717113135303513535313173533313177131137577717173531521301315737777771777777777777777736336363163712337737373733773733737373273733733637736333737373373737273677777773737777740773717353731713103131353113535371317713512577717173531111101337777777747777777777777777313777176163737337337373773373733737373737733773337337737373773737737353736777777771767760753507353531113107171117103531371317773713577313537135311105777777770777777777777777776363737777752527316737373373373763337373733773377337733737373373733373737171777767767173100753535373531711131313311113171131135353151253111107131131137777776577777777777777777777177476377377756733173737377373336737337377337333733377373727737277737373736161757777777400711535313121107135351130107313121777315305351030117353113577777717777777777777777777737737134347777373567133737337373733733737337737273377337373733737333737273737373637777677700773535353131317131253131117371111375311311371110017317101777774777777777777777777777476777773725277777376753437137373733772737733737373372737373737377737273737377373752735637740771311353111317131311101017331307737715341351310017131137777077777777777777777777737137373737737167737735273327237373733373733773737363373737373735333737337373337373373433477300777131313053535351353111735310117771701315331101617135777547777777777777777777777777770737373777373477777756537430373737373773377373737373737373733773373737377737377337373307500477711111301313131311333531311777173171537110101777777540357367777777777777777777373737677577777377347727737473774343537373377337373737373637373373357373737333737337733373733730077773535353711171310573711113777353112157110077777734376347377777777777777777770733437033237377373737527773767377727032353337737373737373737367373373737337733737333777373737370006773131111353011131713713011777353513773110177770457436343436177777777777777737677777747537377777773716161777773777757273733733737337373737337363373637323733737733317373737371214375313531311317565351311177177311357775377700063767757777716252773777777773437716577372761716373777737373436747737725252173373737737373737737373733373737363732373637327332737000435713111131537773121013777753535777777550475353617676777271634343434777777777737074771772737373737377773713707477777777072373533737373733737373737337733733377373337337373733730000757777577577575113577777777777776740247677761707375675674777616732617716577777370777777747743477373777773737343773777756172733737373773737373737333733773337373737337333737373700050577777777777577777777777777010747777677767765271671676347774770727737777777773434743737373725361737337773777074736377252521637373373737373737373733373733733733737373373373371240441675777777777777735614045676777676767776777763434354776076576577777777777777737377777777777373777773777737737777777777773733737373737373737373737373373373373337337337337337333161434565747475656561616377777677777767777677777677637257777677777700000000000000000000010500000000000092AD05FE) +INSERT "Categories"("CategoryID","CategoryName","Description","Picture") VALUES(8,'Seafood','Seaweed and fish',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E5069637475726500010500000200000007000000504272757368000000000000000000A0290000424D98290000000000005600000028000000AC00000078000000010004000000000000000000880B0000880B00000800000008000000FFFFFF0000FFFF00FF00FF000000FF00FFFF000000FF0000FF0000000000000021312121001212103012101120511213001003031000000000001001201000031434130127125003036131617112161707121633525212434101612140103000000001000010000001000000000000010000000000000000100102120005212143012525002070011030101770000000000001001200070431030521125306171134303436170643125351431717043523421052136001002010020100200001020100010000000000000100000021310316114104031050307010303401035203003073000000000001002101000031071430161771407072535353717341752534363761634352153525252411700000002100000100000100000000000000010010003000100114211021201343030103430100312121010301710000000001020010001007007021316161302717353434371734367377371717173525257616137171360000100104002100007000000000000000010000200000100316211203104250103016101125061614121201437600000000000103003004101313534313177500717373535773534717535377777174071301216516165170070600030100000000100000000000000000001000000014211251007100212107012306121001303410301371000000000000001001006124252134343137437775373737777707737775375377370477777532735327124010100000001000002001001000000000000000001000211230303112041352101214130106121071211037500000000100010020102043513353437177703753737753537773477777377737537563010103471634716412520210121020001001000000000000100000000000001251014304204120016125013016001413001243772000000000012001012054303614353717371747377777377777347777777777777756357777777177171610252141060000000000000000000000000000000010210130303030311006171212130305210121341301317710000000000000120010025351734353777770777777777777777577777777750602004000000016124371675252161010410002010000000000000000001000000000014316100253000125050030301204120300341377000000000300100121034070361373753777377777777777777767672525004241447420704046004100400435353070212000400000300100000100000000002100003030310351204352121217050341420150350337770000000100010210103007171375357377777477777777777752705464464604766640446464644606460704024347125001000010030000000000000001000010003016100021021001214130103030120013021037577000000012010010121610657375737377777777777777774040644466567600406400040006000000476746424400212534120430000000000000000000000000003000310313521705241212016310161003503143533770000014010030216101341735737777777777777774740404647460406040042040004620040000000440240467504040025000000000001000000000000000030000000021001001200214316110701030402143031777700000212010010107161347737737777777777727000606676764000000047047640000444644640002040000466464040020041200012000000000000000000001010013523121311041310112530303042112035373770000001010201034312170773777777777777600444664404040070416000000750000000000000000046400560000046744004200001001000000000000100000002000001000525060120430612011610015217135377700000520001121011071737777777777774040476767400000206400640425675200000000000000064000046440000046767400101000000000000000000001201010043121312121124131031215201216025125371770000024012120161637353477777777770464676440000700004740400777777700000000000000000007747600674640000446740002000000000000000000001002000000520012121006030011211201007021317377700003070010121311717353777777524476777600067046404006730331777716101031000000000000047777704040000000044664014121000000001001000000100421312113041706011413705205312101350717373000104030120534371717347777444676460420000464006421171531537133131313133130100000000077700000006740000067400002000000000000000000030041000012241130001321300121130404034333717100000603016113137173775775647767400047400470000703417133113313713131135313133100000000160000000000000650467460010000400000000000010000020013041302112430520712161033007135353637000131430314343537371737674766765000420476000065713337113301311317337333737313110010000100000000000000640046540000002000100000020010001010241101306110431110353125013002537351710000161410331353535377747664004067607400404777521111113101353313337737373337333301011300110100000000000000006620100000000001000100200020001302305112003161212102533404353353737000137061371535373777764677000702444660000077760103131212133337311773737377717310313130130213011000000000000476400060100000000010010040010001300121216142125350713001025335371700003703173173737777767777640046740000470527777012112101317352710033773331773001331371011011101301113000000006774000000010000000201200121020305116125000351210330107124137173527000713547357377777777746464000006460000677777730113111203131311300013777373172101073131030121301313011200000004674004000000000001000000000100121301031250215214136103106117173531001733717377777777676400000075000000057777776101313311133737337310003777377317271373130113101310312111100000004460000002001000003004210000016121031304071211213012507017373617000371753777777777767670006746460000773737377300131373733773001717000003377733721037310131213131213013031300000006740000010000001200010003030301007061002121025341703300737171700017537277777777777767400074006777377170737735013137773373100000330000017177773103373013101303031311301110000060474000300000000301000200100001031131121417017110303114343537373016333771777777777664000066470171331333331737720013177773770000000730000002003773737330003121131313331303310000006764000000001000000041002010007060021520013012730707210073777771017533777777777675000000002533131737173737337100113377773773310100110000010001043735300101133133735371101210040047764000100000030001200100210131135132106107251013101777777777073713777177777747760066000173307371313331337373000311377773777770017200000001000331031000031313737731000131012774066400012000001000020120030000021012010612310123716173716577717171777717777777776006500077317133333373733737710013133777777777310031000000000131303130001313373750000000101304600474000000000000007010101001035131215300114313501210370712530777373737777777666440764617337333017371313730333700013113370737777301170100000013131373010001337377300000000310000000460100001001200000020021020012021210706030612353017710712531377777777777777400064001737131373213337331371733000013013510437377773332101007770131343000001777371710170000030040476520012000200041210010000101215141210013011215213710131253075777373717777760000000073733737371217133521333770000100313000347777307310207777100600010000131777373737310013104607764000000001000100061201200021213030300705321521435207701347777777777777766704760007333533733335313313337173300010010312000103773731031177310211111700000127773777777001210070067600010010000420210101000100141203150430120512121370070077131677377777774776007461033733733717333335317133337000000013113000053717731003375311303373700003113777377737101004670447400200000000101020000300303030142130433130717037001701700771177737777766000006043173733733737371303033525373000000013113131313331031177731311153777710003031000077733714000400642000000000012041012100000003152112103050031211770070070077007377777776400474404333733731733331331313132133331000000013131130311213037773131333377777771311021001373773000000076410100000005001020000210100142111250241307125377103107701700377737777740000060031753353373735337130303013353530000000011313311131131377313537377777101107003112121777300600027640000010000020303012100020002112341304170314313770077073037007737777766700067427533373377333337137131313352333531000000131311333123537373313137377777373713103011100070067600474600200000010100400000010100011250301202170307317300701700700137777777777400040442153773337371333131303052317121212100000001311131133137773313777373737737717133313100040047000674101000000202121030120020000341330701407035317770073070077007737377776400200000053333373737337173130313313312131030231201301213523173377111217377773737737733111210000645644046600200001004110102040010100400301010300313521737205701701701773777777460047400601317177373313713313371361371213002113173130331303353337733333137373337373723734331001000066427641001001200210602010121000020330703431140703171771031063077003757777767400246407643737337353733371711131331335213112030217313071301337777310103123777737337370330101001000400465603000000001201050020000200410010303072121717373702560500700173737777767004006046013537333313531333330731731213030317131212353303737337717313131113230717735350733100101000000764000300000001021210101210401213431103100431217177053017037007173777774676470000700533737373733373171731333131303530303031313210313333713731210130311010313133333130100310000064003010000000702500002000000034003070710613353737301300700700173777777767406464046653353735331317137333132712521313211313035311337373731217371000000000000000000103010005600054404300205210210010012000100243413103111210417353535007012071037373737777640006700004217313333737333537317313131303011730301231230133133131213773000100000000000000000420064046676030535301001021212010142041012200710217302412173730300710300435377777765600056400744737371713137313317335313031713231313331331337137131311337777003500000000000000007406400076434777777777773500016030100006015011211210143371217007013007053173737777767000600064072531333373713737337333733121311030310331217133313131337710001003000000000000560040670004677777737337373777353001002000413421217307034215071710700700700317353777774764000052006653535353373373333733531353312133135337131333313131353770000130101000000000466460000600247773733373737337336165102500601200121210117104333173001030042143717377777767000006650040033333371337373533733733313713103033112173131313121333000177773301100000016400077404444777373373333333333337326100010301430007032121214127171070030140313035377377764000000600005735373371737373733731717331373131123312133131313133771137777777721300024600004660067673737373373737373373333107202410421070117110710433512103035000007161737377777400000046460463533135333733733533733331731333733131313073121131373377777777733131110400004640004767777373373333333337337312301401203007012121071243341253070100702317173537777747600250000000771353733373373373373737173121731353533131310076037177777773421713131201240007000067777773737337373737333312330020160500707010713031041371343134310505303173537737766704640400066121273735337373317137333313131373333353031771771002777773770001313101000000046146777777373337333333333327206676160120121021071217070250361343130700305352173717777576000006700041111353337333735337317373735303353131331377777770017777070110313131311101000476777777737377337373733367764747476764106161403031013004335170307071021734317353773776640047606000131271237337373131733737313131313337121035777737701677700016131313131000300006777777773737333733333376767656476747416010030317073701631433031713125052131635373777774000064000003011313533737333731373137337333537313131777733777740100000013131313000310000677777777773737373737276767767767676765601243400013010301433143431617006316171735377357776604000067053073133353337353737373737313533313313137777771777700000000001313111310160647777777777777737333337770746776777777760341212103701711600523131613037105317034377177377756700000006000161053371733333337331337313133353130013733137770600000000000012301316777777777777777777777777575652105274777677740250400010301271073516161343500612527173537357477764600076400007117373333717373537377337335353130017373707310040000000000000311130676777777777777777777775252000040705010677764705203000711635004301235317171253171717353717737373560000640404771331371713335333335333533533313121231131313000470000000060004003447777777777777777777772524040406170707061057776124100041271037125371521612534247373717377737477777744000007600135371333737331737333733313113131001137171057200674056000400067746777777777777777777777440442400004070707165207474030000035005030425231713713716171753777777777777777747640040007131311713537333317331717333717121021121200064004604600000005666777777777777777777775652560404004124143507175707074000430037133516135353071253714373777777777777777777746700000717135331313137171735373331513331101000040006500670067404204467777777777777777777777765646046527424470743707070706021402005030150243534373535734637777777777777777777777746000024373313513173537333333135133371012121000675004646560042777466777777777777777777777764564654746440407065254525257750000010133512335061350353731735777777777777777777777777774404400071313313113313171717133171707000464064460067006000047667777777777777777777777774776565646142400041525273535253774020000150215307073371717777777777777777777777777777777776767600000113537353353313131171060000007604700000040047444677777777777777777777777777777777777746440604061615067617057734161202335721607171737373777777777767677776767676677767774465600007117353371313313132006504640000006000000007766767777777777777777777777777777777777777774740402525637141747257700014115303171617177177777777777647777767677774747766776777464047776025335313171317750076467000000000666040666477777777777777777777777777777777777777777777404041653450772535777701202721617125373737377777777677777777777767676767777677677777464674001731313137004600000046004000007777647777777777773777777777777777777777766676567777777774065257274357707770205013171735205371777777777777777767465445465446506447677676777774646476775210476400004762000676744664677777777777737373733737377777777777720456446474676777777075257174717157750020017121735373737377777477777746476766767466746652704667677677777747647465467674206476740447464767777777777777777737373773737777777777720456444747665474777746165705253676777701012735273707777777777777777476777775777676774765644470047767767777774776766746465447464764765777717777777777777373773737337377777777774046646676765646464777707560725771517770207001735353567373777777777476777777664765656465644767474000767767777774777777777767672574567773777777777777777777373373737737377777777004654656767665646444677563570573472777750106173703733537777777777767777747654765647656065644646476444247677777777777777777177576727137777737777777777777773773773730707777777740076647676767664746404477562537473557777030300353571743773777777767777774764264424244406424740656446765647767777777777777167707717536537773777777777777737377274340577777777774006656767676764746442460656156743143777752505213733373353777777777777746466404402465427650424074240474765007767777777777016750770773753567777777777777777777414121437777777777000765676776767674644644040771635356777772010321471747374777777777777764670404720744067406470004656560464767407767777777756777360777753763577777777777777777616034103077777777740056767776676746465464464640775774357777417070521373317377377777777767464400004446700467400656706606474240767647777777777007757177777761742577777777777777765010121410777777777024667766777676776666464440460734357777770203030527374737177777777774760000464420044474646744642474577065064777427677777770757767774752577173737777777777776121216030301777777747567776776766766674400000000047577777774010141430117373777777777777464404600002466067067476464747466646566540677647777777652775775737377617756777377777773010104101050167777771676776767676677675000000000000077777772000252020343737173717777777746400474606444044040046440046046147416740670477527777770077737737057017727737777777777750306030252120177777647656777777777767664000000000000777777410010000140143777173737777776564020640407600000000006056424066706465724470677477777752477747573077077177017773777776100101011010520777771657677777742460000000000000000007775610000010100212073717735777777746406440060440474241200046460404744470724477465676477777007077773777107716776777777777710342125203021013777567767775402050004014000000000000061430020100202001000173733777777776400044246404604665424000004656476467656452742564777777774747777771710637777517737377773020105010141101257760776776020605224707421604200000000042014100214010000057735753777777747400240040604707466456000004656647647677656740770774777737777777737731777136743777737341052120302124210777756777040414524570617461670700040000010020310010010000233773771777776046074740044424464467601000004656465640477600700646777777477777777777703776537771717776121010150510110703770777740016724724256425641474700007001250100612030030041753773777777754604464600606406470440464000000647467042763476525756777770777777773373377733743173733753403430212030201057547760017605434165070520742434760400000030701014007000303771373777377660472000614040646464706072000000046746174147616476677777777777777777777777775737353175200300101001410102736370056760562506506076474257425700470010000125210300070473775375777775474444044644004044046440640000000037777776747477077477777777777777777773777372517377737500010217030216105756561614163416470616052435607424760670030107100210061031373737377777764600064000607400060076745676100000337777777777477477777777777737777337777777773617137737214210001010012121770047607407430434075250461643560704740042007000430061605375371777377740046706064464006746406046004200004777777765406747767777777777777777773721377353737753744001070120010000167043650743470463434424427074346165647301010301012040301337377177777777460044446446060474404006774761000710677777767677767757777777777777777775014777737527377700000012503021014352525270343434341643430745616434706574000250002010071434371737357377774470604650654042464240046464047100671077777747567476777777777777777777733133573573577773700000000104102034607470564742434060743465261653461656771210303010061021037177173657377376465624644644644004600424065246301277077777676565777777777777777777777737773173773771777560000002112150135616526160743434343461605652470743477701000000010071034037353717377777746564406760674240647407000464777040577777777476167777777777777777777777377777657375377737140000000000212461616507074340656146165770470475256775242101012061025031173673477737377706400676404604404060244052677765330777777776774776777777777777777777737777771335737736770606100000301005356461647006165216705256043063424077721014200004016112143717173437777777446004440604006000444424645667777731777777774076577777777777777777777733777776521617716165752561614161764253461605745275641674252565147077777521210121007212052373477357735377737164002404656444646460464644567777731377777774676777777777777777777777777777737537703353063773777777777756470343420204025250614052066340477743050240103001413050173435253537737777470404740640065646444040606476777713737777677477777777777777777777777377773712501705252573771617617435607444652547525000605256056140077777161211303040703043037357525277773777777646466440006646000600464650477777347776774747777777777777777777777777777773070372525247075271771342570442700056200605670524203616047777706134124050030301303435253347137171737375744000024454040040400044666077777777746776777777777777777777777777717777773070503121437735370377070374240642005470725052535654007777770135216113200414160521525257077173777757367764560406600740766400004506460677777676747777777777777777777777777377777771032506161435370357071470314040404200404024242400025747776120417136141212030130523347307077353737375737576600040464644442464076406574477777654777737777777777777777777777777777325052317063536177217302171634000404002104000500776567774116153212512300417012012157071707134735735727573744406400042000047402440656647777777727777771734777777777777777777777737012341420707253521771657061010400004040612570674657656161601205071614043121705214307030613531731733563773777747604740000046440604644746777777457371777735777777777777777777777015250123505371361171210303112521000000040442467477525252121125303003300352501211211707616563434735734143353775347564600240400604004246746777776377771735737777777777777777777777210270503607071725275346160703071300100000640507472420105025001617141000212161205230611003113531612527375371737736165644740664074644756357737616717373530777777777777777777771705251030340713521735324215130141024070210420170703010052021103161212300615214305301616534707343071371617136173617056577734765416567173635371771653734717371747777777777777771021030343435025252170530501632070212140305021017021050041201104216113434071120121030431003001310317070140617535353737037353435373777073717135275347377137343527077777777777777761525350343025435316172573061053071250210121003021103030210142131030603100016170143413034703424250313136341230370317124437253734353771473716735337047357135307134217537777774777302120352171302525312533070163010010304250121001421701000710300070113143043012170303430001300711214242510061535035617102517352535271243170711635720735234363537004730737737137750714170353070434316173525306107071241000121412121121030400030171034207104216121034130143424070125031311206112303703124253734353073525216171277170142537537153616173071777343046321033034307170713735252534010303000134252102001016107002103143003031530201012507103052000714036130070525053614341716105252531617343704352125217356072530703617100717173773352010507143530703024343431712125630503030000212110307212100012502125341403014303611212143043070124112532132120003310321213407171613071717061353535343314173531713037060703273070316030302100713571435353431617001430341071050500610010510300410341301231343000501201252103004036434350152516142505251525070243061707034370070343070347025252160707502431705347171404341716170343242703421743524343070303024212121210712030012030305251425316070341705214340724110121030301210003121212103005317130713537007135307135310437135313531241352130312120030121213071735071353170312100301010101001210101030301000001010121303130000121030121030030434300000000000000000000010500000000000094AD05FE) +go +set identity_insert "Categories" off +go +ALTER TABLE "Categories" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +ALTER TABLE "Customers" NOCHECK CONSTRAINT ALL +go +INSERT "Customers" VALUES('ALFKI','Alfreds Futterkiste','Maria Anders','Sales Representative','Obere Str. 57','Berlin',NULL,'12209','Germany','030-0074321','030-0076545') +INSERT "Customers" VALUES('ANATR','Ana Trujillo Emparedados y helados','Ana Trujillo','Owner','Avda. de la Constitución 2222','México D.F.',NULL,'05021','Mexico','(5) 555-4729','(5) 555-3745') +INSERT "Customers" VALUES('ANTON','Antonio Moreno Taquería','Antonio Moreno','Owner','Mataderos 2312','México D.F.',NULL,'05023','Mexico','(5) 555-3932',NULL) +INSERT "Customers" VALUES('AROUT','Around the Horn','Thomas Hardy','Sales Representative','120 Hanover Sq.','London',NULL,'WA1 1DP','UK','(171) 555-7788','(171) 555-6750') +INSERT "Customers" VALUES('BERGS','Berglunds snabbköp','Christina Berglund','Order Administrator','Berguvsvägen 8','Luleå',NULL,'S-958 22','Sweden','0921-12 34 65','0921-12 34 67') +INSERT "Customers" VALUES('BLAUS','Blauer See Delikatessen','Hanna Moos','Sales Representative','Forsterstr. 57','Mannheim',NULL,'68306','Germany','0621-08460','0621-08924') +INSERT "Customers" VALUES('BLONP','Blondesddsl père et fils','Frédérique Citeaux','Marketing Manager','24, place Kléber','Strasbourg',NULL,'67000','France','88.60.15.31','88.60.15.32') +INSERT "Customers" VALUES('BOLID','Bólido Comidas preparadas','Martín Sommer','Owner','C/ Araquil, 67','Madrid',NULL,'28023','Spain','(91) 555 22 82','(91) 555 91 99') +INSERT "Customers" VALUES('BONAP','Bon app''','Laurence Lebihan','Owner','12, rue des Bouchers','Marseille',NULL,'13008','France','91.24.45.40','91.24.45.41') +INSERT "Customers" VALUES('BOTTM','Bottom-Dollar Markets','Elizabeth Lincoln','Accounting Manager','23 Tsawassen Blvd.','Tsawassen','BC','T2F 8M4','Canada','(604) 555-4729','(604) 555-3745') +go +INSERT "Customers" VALUES('BSBEV','B''s Beverages','Victoria Ashworth','Sales Representative','Fauntleroy Circus','London',NULL,'EC2 5NT','UK','(171) 555-1212',NULL) +INSERT "Customers" VALUES('CACTU','Cactus Comidas para llevar','Patricio Simpson','Sales Agent','Cerrito 333','Buenos Aires',NULL,'1010','Argentina','(1) 135-5555','(1) 135-4892') +INSERT "Customers" VALUES('CENTC','Centro comercial Moctezuma','Francisco Chang','Marketing Manager','Sierras de Granada 9993','México D.F.',NULL,'05022','Mexico','(5) 555-3392','(5) 555-7293') +INSERT "Customers" VALUES('CHOPS','Chop-suey Chinese','Yang Wang','Owner','Hauptstr. 29','Bern',NULL,'3012','Switzerland','0452-076545',NULL) +INSERT "Customers" VALUES('COMMI','Comércio Mineiro','Pedro Afonso','Sales Associate','Av. dos Lusíadas, 23','Sao Paulo','SP','05432-043','Brazil','(11) 555-7647',NULL) +INSERT "Customers" VALUES('CONSH','Consolidated Holdings','Elizabeth Brown','Sales Representative','Berkeley Gardens 12 Brewery','London',NULL,'WX1 6LT','UK','(171) 555-2282','(171) 555-9199') +INSERT "Customers" VALUES('DRACD','Drachenblut Delikatessen','Sven Ottlieb','Order Administrator','Walserweg 21','Aachen',NULL,'52066','Germany','0241-039123','0241-059428') +INSERT "Customers" VALUES('DUMON','Du monde entier','Janine Labrune','Owner','67, rue des Cinquante Otages','Nantes',NULL,'44000','France','40.67.88.88','40.67.89.89') +INSERT "Customers" VALUES('EASTC','Eastern Connection','Ann Devon','Sales Agent','35 King George','London',NULL,'WX3 6FW','UK','(171) 555-0297','(171) 555-3373') +INSERT "Customers" VALUES('ERNSH','Ernst Handel','Roland Mendel','Sales Manager','Kirchgasse 6','Graz',NULL,'8010','Austria','7675-3425','7675-3426') +go +INSERT "Customers" VALUES('FAMIA','Familia Arquibaldo','Aria Cruz','Marketing Assistant','Rua Orós, 92','Sao Paulo','SP','05442-030','Brazil','(11) 555-9857',NULL) +INSERT "Customers" VALUES('FISSA','FISSA Fabrica Inter. Salchichas S.A.','Diego Roel','Accounting Manager','C/ Moralzarzal, 86','Madrid',NULL,'28034','Spain','(91) 555 94 44','(91) 555 55 93') +INSERT "Customers" VALUES('FOLIG','Folies gourmandes','Martine Rancé','Assistant Sales Agent','184, chaussée de Tournai','Lille',NULL,'59000','France','20.16.10.16','20.16.10.17') +INSERT "Customers" VALUES('FOLKO','Folk och fä HB','Maria Larsson','Owner','Åkergatan 24','Bräcke',NULL,'S-844 67','Sweden','0695-34 67 21',NULL) +INSERT "Customers" VALUES('FRANK','Frankenversand','Peter Franken','Marketing Manager','Berliner Platz 43','München',NULL,'80805','Germany','089-0877310','089-0877451') +INSERT "Customers" VALUES('FRANR','France restauration','Carine Schmitt','Marketing Manager','54, rue Royale','Nantes',NULL,'44000','France','40.32.21.21','40.32.21.20') +INSERT "Customers" VALUES('FRANS','Franchi S.p.A.','Paolo Accorti','Sales Representative','Via Monte Bianco 34','Torino',NULL,'10100','Italy','011-4988260','011-4988261') +INSERT "Customers" VALUES('FURIB','Furia Bacalhau e Frutos do Mar','Lino Rodriguez','Sales Manager','Jardim das rosas n. 32','Lisboa',NULL,'1675','Portugal','(1) 354-2534','(1) 354-2535') +INSERT "Customers" VALUES('GALED','Galería del gastrónomo','Eduardo Saavedra','Marketing Manager','Rambla de Cataluña, 23','Barcelona',NULL,'08022','Spain','(93) 203 4560','(93) 203 4561') +INSERT "Customers" VALUES('GODOS','Godos Cocina Típica','José Pedro Freyre','Sales Manager','C/ Romero, 33','Sevilla',NULL,'41101','Spain','(95) 555 82 82',NULL) +go +INSERT "Customers" VALUES('GOURL','Gourmet Lanchonetes','André Fonseca','Sales Associate','Av. Brasil, 442','Campinas','SP','04876-786','Brazil','(11) 555-9482',NULL) +INSERT "Customers" VALUES('GREAL','Great Lakes Food Market','Howard Snyder','Marketing Manager','2732 Baker Blvd.','Eugene','OR','97403','USA','(503) 555-7555',NULL) +INSERT "Customers" VALUES('GROSR','GROSELLA-Restaurante','Manuel Pereira','Owner','5ª Ave. Los Palos Grandes','Caracas','DF','1081','Venezuela','(2) 283-2951','(2) 283-3397') +INSERT "Customers" VALUES('HANAR','Hanari Carnes','Mario Pontes','Accounting Manager','Rua do Paço, 67','Rio de Janeiro','RJ','05454-876','Brazil','(21) 555-0091','(21) 555-8765') +INSERT "Customers" VALUES('HILAA','HILARION-Abastos','Carlos Hernández','Sales Representative','Carrera 22 con Ave. Carlos Soublette #8-35','San Cristóbal','Táchira','5022','Venezuela','(5) 555-1340','(5) 555-1948') +INSERT "Customers" VALUES('HUNGC','Hungry Coyote Import Store','Yoshi Latimer','Sales Representative','City Center Plaza 516 Main St.','Elgin','OR','97827','USA','(503) 555-6874','(503) 555-2376') +INSERT "Customers" VALUES('HUNGO','Hungry Owl All-Night Grocers','Patricia McKenna','Sales Associate','8 Johnstown Road','Cork','Co. Cork',NULL,'Ireland','2967 542','2967 3333') +INSERT "Customers" VALUES('ISLAT','Island Trading','Helen Bennett','Marketing Manager','Garden House Crowther Way','Cowes','Isle of Wight','PO31 7PJ','UK','(198) 555-8888',NULL) +INSERT "Customers" VALUES('KOENE','Königlich Essen','Philip Cramer','Sales Associate','Maubelstr. 90','Brandenburg',NULL,'14776','Germany','0555-09876',NULL) +INSERT "Customers" VALUES('LACOR','La corne d''abondance','Daniel Tonini','Sales Representative','67, avenue de l''Europe','Versailles',NULL,'78000','France','30.59.84.10','30.59.85.11') +go +INSERT "Customers" VALUES('LAMAI','La maison d''Asie','Annette Roulet','Sales Manager','1 rue Alsace-Lorraine','Toulouse',NULL,'31000','France','61.77.61.10','61.77.61.11') +INSERT "Customers" VALUES('LAUGB','Laughing Bacchus Wine Cellars','Yoshi Tannamuri','Marketing Assistant','1900 Oak St.','Vancouver','BC','V3F 2K1','Canada','(604) 555-3392','(604) 555-7293') +INSERT "Customers" VALUES('LAZYK','Lazy K Kountry Store','John Steel','Marketing Manager','12 Orchestra Terrace','Walla Walla','WA','99362','USA','(509) 555-7969','(509) 555-6221') +INSERT "Customers" VALUES('LEHMS','Lehmanns Marktstand','Renate Messner','Sales Representative','Magazinweg 7','Frankfurt a.M.',NULL,'60528','Germany','069-0245984','069-0245874') +INSERT "Customers" VALUES('LETSS','Let''s Stop N Shop','Jaime Yorres','Owner','87 Polk St. Suite 5','San Francisco','CA','94117','USA','(415) 555-5938',NULL) +INSERT "Customers" VALUES('LILAS','LILA-Supermercado','Carlos González','Accounting Manager','Carrera 52 con Ave. Bolívar #65-98 Llano Largo','Barquisimeto','Lara','3508','Venezuela','(9) 331-6954','(9) 331-7256') +INSERT "Customers" VALUES('LINOD','LINO-Delicateses','Felipe Izquierdo','Owner','Ave. 5 de Mayo Porlamar','I. de Margarita','Nueva Esparta','4980','Venezuela','(8) 34-56-12','(8) 34-93-93') +INSERT "Customers" VALUES('LONEP','Lonesome Pine Restaurant','Fran Wilson','Sales Manager','89 Chiaroscuro Rd.','Portland','OR','97219','USA','(503) 555-9573','(503) 555-9646') +INSERT "Customers" VALUES('MAGAA','Magazzini Alimentari Riuniti','Giovanni Rovelli','Marketing Manager','Via Ludovico il Moro 22','Bergamo',NULL,'24100','Italy','035-640230','035-640231') +INSERT "Customers" VALUES('MAISD','Maison Dewey','Catherine Dewey','Sales Agent','Rue Joseph-Bens 532','Bruxelles',NULL,'B-1180','Belgium','(02) 201 24 67','(02) 201 24 68') +go +INSERT "Customers" VALUES('MEREP','Mère Paillarde','Jean Fresnière','Marketing Assistant','43 rue St. Laurent','Montréal','Québec','H1J 1C3','Canada','(514) 555-8054','(514) 555-8055') +INSERT "Customers" VALUES('MORGK','Morgenstern Gesundkost','Alexander Feuer','Marketing Assistant','Heerstr. 22','Leipzig',NULL,'04179','Germany','0342-023176',NULL) +INSERT "Customers" VALUES('NORTS','North/South','Simon Crowther','Sales Associate','South House 300 Queensbridge','London',NULL,'SW7 1RZ','UK','(171) 555-7733','(171) 555-2530') +INSERT "Customers" VALUES('OCEAN','Océano Atlántico Ltda.','Yvonne Moncada','Sales Agent','Ing. Gustavo Moncada 8585 Piso 20-A','Buenos Aires',NULL,'1010','Argentina','(1) 135-5333','(1) 135-5535') +INSERT "Customers" VALUES('OLDWO','Old World Delicatessen','Rene Phillips','Sales Representative','2743 Bering St.','Anchorage','AK','99508','USA','(907) 555-7584','(907) 555-2880') +INSERT "Customers" VALUES('OTTIK','Ottilies Käseladen','Henriette Pfalzheim','Owner','Mehrheimerstr. 369','Köln',NULL,'50739','Germany','0221-0644327','0221-0765721') +INSERT "Customers" VALUES('PARIS','Paris spécialités','Marie Bertrand','Owner','265, boulevard Charonne','Paris',NULL,'75012','France','(1) 42.34.22.66','(1) 42.34.22.77') +INSERT "Customers" VALUES('PERIC','Pericles Comidas clásicas','Guillermo Fernández','Sales Representative','Calle Dr. Jorge Cash 321','México D.F.',NULL,'05033','Mexico','(5) 552-3745','(5) 545-3745') +INSERT "Customers" VALUES('PICCO','Piccolo und mehr','Georg Pipps','Sales Manager','Geislweg 14','Salzburg',NULL,'5020','Austria','6562-9722','6562-9723') +INSERT "Customers" VALUES('PRINI','Princesa Isabel Vinhos','Isabel de Castro','Sales Representative','Estrada da saúde n. 58','Lisboa',NULL,'1756','Portugal','(1) 356-5634',NULL) +go +INSERT "Customers" VALUES('QUEDE','Que Delícia','Bernardo Batista','Accounting Manager','Rua da Panificadora, 12','Rio de Janeiro','RJ','02389-673','Brazil','(21) 555-4252','(21) 555-4545') +INSERT "Customers" VALUES('QUEEN','Queen Cozinha','Lúcia Carvalho','Marketing Assistant','Alameda dos Canàrios, 891','Sao Paulo','SP','05487-020','Brazil','(11) 555-1189',NULL) +INSERT "Customers" VALUES('QUICK','QUICK-Stop','Horst Kloss','Accounting Manager','Taucherstraße 10','Cunewalde',NULL,'01307','Germany','0372-035188',NULL) +INSERT "Customers" VALUES('RANCH','Rancho grande','Sergio Gutiérrez','Sales Representative','Av. del Libertador 900','Buenos Aires',NULL,'1010','Argentina','(1) 123-5555','(1) 123-5556') +INSERT "Customers" VALUES('RATTC','Rattlesnake Canyon Grocery','Paula Wilson','Assistant Sales Representative','2817 Milton Dr.','Albuquerque','NM','87110','USA','(505) 555-5939','(505) 555-3620') +INSERT "Customers" VALUES('REGGC','Reggiani Caseifici','Maurizio Moroni','Sales Associate','Strada Provinciale 124','Reggio Emilia',NULL,'42100','Italy','0522-556721','0522-556722') +INSERT "Customers" VALUES('RICAR','Ricardo Adocicados','Janete Limeira','Assistant Sales Agent','Av. Copacabana, 267','Rio de Janeiro','RJ','02389-890','Brazil','(21) 555-3412',NULL) +INSERT "Customers" VALUES('RICSU','Richter Supermarkt','Michael Holz','Sales Manager','Grenzacherweg 237','Genève',NULL,'1203','Switzerland','0897-034214',NULL) +INSERT "Customers" VALUES('ROMEY','Romero y tomillo','Alejandra Camino','Accounting Manager','Gran Vía, 1','Madrid',NULL,'28001','Spain','(91) 745 6200','(91) 745 6210') +INSERT "Customers" VALUES('SANTG','Santé Gourmet','Jonas Bergulfsen','Owner','Erling Skakkes gate 78','Stavern',NULL,'4110','Norway','07-98 92 35','07-98 92 47') +go +INSERT "Customers" VALUES('SAVEA','Save-a-lot Markets','Jose Pavarotti','Sales Representative','187 Suffolk Ln.','Boise','ID','83720','USA','(208) 555-8097',NULL) +INSERT "Customers" VALUES('SEVES','Seven Seas Imports','Hari Kumar','Sales Manager','90 Wadhurst Rd.','London',NULL,'OX15 4NB','UK','(171) 555-1717','(171) 555-5646') +INSERT "Customers" VALUES('SIMOB','Simons bistro','Jytte Petersen','Owner','Vinbæltet 34','Kobenhavn',NULL,'1734','Denmark','31 12 34 56','31 13 35 57') +INSERT "Customers" VALUES('SPECD','Spécialités du monde','Dominique Perrier','Marketing Manager','25, rue Lauriston','Paris',NULL,'75016','France','(1) 47.55.60.10','(1) 47.55.60.20') +INSERT "Customers" VALUES('SPLIR','Split Rail Beer & Ale','Art Braunschweiger','Sales Manager','P.O. Box 555','Lander','WY','82520','USA','(307) 555-4680','(307) 555-6525') +INSERT "Customers" VALUES('SUPRD','Suprêmes délices','Pascale Cartrain','Accounting Manager','Boulevard Tirou, 255','Charleroi',NULL,'B-6000','Belgium','(071) 23 67 22 20','(071) 23 67 22 21') +INSERT "Customers" VALUES('THEBI','The Big Cheese','Liz Nixon','Marketing Manager','89 Jefferson Way Suite 2','Portland','OR','97201','USA','(503) 555-3612',NULL) +INSERT "Customers" VALUES('THECR','The Cracker Box','Liu Wong','Marketing Assistant','55 Grizzly Peak Rd.','Butte','MT','59801','USA','(406) 555-5834','(406) 555-8083') +INSERT "Customers" VALUES('TOMSP','Toms Spezialitäten','Karin Josephs','Marketing Manager','Luisenstr. 48','Münster',NULL,'44087','Germany','0251-031259','0251-035695') +INSERT "Customers" VALUES('TORTU','Tortuga Restaurante','Miguel Angel Paolino','Owner','Avda. Azteca 123','México D.F.',NULL,'05033','Mexico','(5) 555-2933',NULL) +go +INSERT "Customers" VALUES('TRADH','Tradição Hipermercados','Anabela Domingues','Sales Representative','Av. Inês de Castro, 414','Sao Paulo','SP','05634-030','Brazil','(11) 555-2167','(11) 555-2168') +INSERT "Customers" VALUES('TRAIH','Trail''s Head Gourmet Provisioners','Helvetius Nagy','Sales Associate','722 DaVinci Blvd.','Kirkland','WA','98034','USA','(206) 555-8257','(206) 555-2174') +INSERT "Customers" VALUES('VAFFE','Vaffeljernet','Palle Ibsen','Sales Manager','Smagsloget 45','Århus',NULL,'8200','Denmark','86 21 32 43','86 22 33 44') +INSERT "Customers" VALUES('VICTE','Victuailles en stock','Mary Saveley','Sales Agent','2, rue du Commerce','Lyon',NULL,'69004','France','78.32.54.86','78.32.54.87') +INSERT "Customers" VALUES('VINET','Vins et alcools Chevalier','Paul Henriot','Accounting Manager','59 rue de l''Abbaye','Reims',NULL,'51100','France','26.47.15.10','26.47.15.11') +INSERT "Customers" VALUES('WANDK','Die Wandernde Kuh','Rita Müller','Sales Representative','Adenauerallee 900','Stuttgart',NULL,'70563','Germany','0711-020361','0711-035428') +INSERT "Customers" VALUES('WARTH','Wartian Herkku','Pirkko Koskitalo','Accounting Manager','Torikatu 38','Oulu',NULL,'90110','Finland','981-443655','981-443655') +INSERT "Customers" VALUES('WELLI','Wellington Importadora','Paula Parente','Sales Manager','Rua do Mercado, 12','Resende','SP','08737-363','Brazil','(14) 555-8122',NULL) +INSERT "Customers" VALUES('WHITC','White Clover Markets','Karl Jablonski','Owner','305 - 14th Ave. S. Suite 3B','Seattle','WA','98128','USA','(206) 555-4112','(206) 555-4115') +INSERT "Customers" VALUES('WILMK','Wilman Kala','Matti Karttunen','Owner/Marketing Assistant','Keskuskatu 45','Helsinki',NULL,'21240','Finland','90-224 8858','90-224 8858') +go +INSERT "Customers" VALUES('WOLZA','Wolski Zajazd','Zbyszek Piestrzeniewicz','Owner','ul. Filtrowa 68','Warszawa',NULL,'01-012','Poland','(26) 642-7012','(26) 642-7012') +go +ALTER TABLE "Customers" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +set identity_insert "Employees" on +go +ALTER TABLE "Employees" NOCHECK CONSTRAINT ALL +go +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(1,'Davolio','Nancy','Sales Representative','Ms.','12/08/1948','05/01/1992','507 - 20th Ave. E. +Apt. 2A','Seattle','WA','98122','USA','(206) 555-9857','5467',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D20540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FF0CB0C9000B090900000A009009000000000909A09A900B09000A90A00000000FFFEFFFFFFFFFFFFFFFFFCB9CFCFEFAFFFFFFFFEDFFFEDEFFDEFEFCFFFFDADA00D900009009009000000000090A00090BC0000900900000000A00ACA0E0E0E0F0E9CA9000A9CB0C00009090E0000009090B0000D009009000000900009A000FFFFFFFFFFFFEFFFFFFFFFCADEBDBDFDFDFFFFFFFFFEFEDFFFEFFFFFFFEFCAF0C9A0A0D00009A0000000000000009090A000B009A9000090000900C0900900900FA90ADA00090B00B000000009000090000009009A9B009009A00000000C000BFFFFFFFFEFFFFFFFFFFFFCF9FBCBEFBFFEBFFFFFFFEFDFFFEFDFFCFFEFFF9BC0B00909000900009000000000000900000909009A0C0B00000B00009A00E0E0E0EFCADA0C90000CB009000009A9A09A000B0090090900D00A9090009090A0000FFFFFFFEFFFEFFFFFFFFFFF0F0FFDFEDADFDFFFFFFFFFEFEFDEFEFFCFDEFEC0F0C9AC00A00A09000000090000000090A900A00009090000A00000CA00C09009090F900DA009A9000DA00D0000009C090000090B000A9A9B090000000AC00000BFFEFFFFFFFFFFFFFFFFFEDA9DF0FF9FFFFFFF0FFFFFFFFFDFEFFDEFFEFDFF9A9A0090909009000900000000000090A9000909A9000A90D090000A9000B0E0CACA0FAE9A9CA000A99A90B00000090B000909000090090D00009A900009000009FFFFFFFFFFFFFEFFFFFFEDADEBCFDEFFDADADFFFFFFFFFFEFEFCBEFDEDBEFCAD0D0E00A000000900000000000009009009000000009000A000090000000009A900DF090CA9009090E90900B00090A9009000090B009A09A90909000090B0009FFFFFFFFFFFEFFFFFFFFFD09E9CFBFBF0FFFFFEFFDEFFFFFFFFDFFDFEBFEFDA90B0A90900A9009000000000000000000000090900090A909000A0000ACB00B0C0E0AF0F0BC09000009ADA9090000090F0000900909009909A9A0900000000000FFFEFFFFEFFFEFFEFFFFEA9E9FBFDEDFFFDFFFDFFFFFCFFFFFEFEFEDFCFDEFC000D0000900000000000000000000009009000A0090090000B00900009000C00A09C0FF0F0BCA0B0A00090F0A9A900090B0900900090000B0D090A900009A000BFFFFFFFFFFFFFFFFFFFFD0F9E9F0FBEF0FAFCBFEFFDFFFFFFFFFDFFAFFAF9EFBC0A9C0A00909000900000000009000000000900000000B0000000A000000B0C90A00F0B0F009C0009000B009C000B00AD000B0099A909A90B00990000009C00FFFFFFFEFFFEFFEFFFFFCA90F0FCFFDFDFFDFFFDFDBEFFFDFFFFFEFCFCFDFEFC00900A9000000A090000000000000000B000900900000900909AC90000A9000A0C09CF00F00DA0090000909F0B909C0099A09009A00000090909A0090009A09FFFFFFFFFFFFFFFDFFFEE99CF0FDBE9EFAFCBE9EFBEFFFDEBFDBFFFFFFF0FEDF0A90AD0009009090000000000000000090090000000000009A00900090000DA0900A0AFADADB009AC900000009000A9009AD00090090909BCB09C9900090009AFFFFFFFFFEFFFEFEFEFFDACB0FDADFFBDF9FFDFDFDFDFFFFFFEFFFFFEFCF0FBED0E9009C0000000000000000000000000000000900000000009A00000090B0C00E9C00FDA90E9AC9A0A90A90A9A909AD009B900AD0A90009090B0A90000090BDFFFFFFFFFFFFFFFFFFFC09AD0B0F0BEDAFE9EFAFBEBFDAFDFFFDBFFFFFFFFCFFE9009A0B00000090A90000000000000090090000000000090009B000000000B0000AD0FADEB9E9000D00090090D0B099A9A0F09009009090B09099000000009EFFFFFFFFFFEFFFFCFFC0F0DAFCF9FD9FDF9FF9FDFDFEFFFFEFDFEDFFFFEFCFFEDE9E09000090000090000000000000000000090090000000099C00900000F000090000FDBADCADA900A9000000B009CA9C099A00B0090A9E900B00A0009009FBFFFFFFFEFFFFEFEFFC0B09AD09ADEBEFE9EF0FCBEF9FBDFFFFFFFFFFFFFFFFEFF000900090000900000000000000000900900000009009009A0A9000000900000ACA0AFAEDABF9ADA900DA9C909E9A99A9C9A9990900900909909900000000BCFFFFFFFFFEFFFDFFCBC0F0DA9EDBFDF9FF9DFBFF9FEDFFEBDFFEDBFFFFFEFFFFEC09ACB00000000909000000000000000000900900000090009000009000A0000000D0FDBEDACFBCBCBA09A0A00909AC9BA99E0A9A90090B00BCA9000000009BFFFFFFFFFFFFFEFF00909E9CB9EDAFCF0FEBCF0FE9FBCFDFFBFFFFCFFFFFFFFFFFE09009000000A0000000000000000000000000000000009A0909000090900000000BFFE9FDBC9E9BC900909900B09B0D9A0999C00090909A0909000090090FFFFFFEFFFFEFFFFC90A900B0DADBDFBFFDBDB9FDBFCFFBFFEDFDBFFBFFFFFFFFFE900B0C009090900900000000000000009000000900000AD090A0009A000000909A09F9FFEBEBEBDADBAD0BCA09C0BCB0BC9B00A9090B0F0990B000000000B9FFFFFFFFFFFDEFCA0C9CAD0DADBEBEDADBEDAFCBFCBDBCFDFFEFFCFDFFFFFFFFED00009A9000000090000000000000000000000000000090000090900000F0900000DAFEADBFDBDF0FAD0A9090B0B0090B0BD0B990000090000900000090090FFFFFFFFEFFEFFFD09A0090B0F0FDF9FFEDBFDFBCBFFFFFAFFBFFFBFBFFFFFFFFFFE09000000000900000000000000000000000000000000900900000909000000A9A9AF9DADAFCBFBCBF9F0B0F090B9A9C90B90E909090B909B0900000000090BFFEFFFFFFFFEFE00909AD0BCBDAFE9FDBCBE9FFDADAFDF9FDFDFFCF9FFFFFFFFFC000090909000B009000000000000009000000900009A009A90000000B09E0900C90FEADADFBF0DBDAF0BC090F90000B0B0DB90B00090000090B0000000009FFFFFFFFFFEFFF090C0AC9ADBDAFDBFEBEFFDFF0FFFFDBFFEFFBFFFFEFFFFFFFFEB000000A0000000000000000000000000000000000B090000009009A9000000090A9F0DFAF0FE9EBEBDBE9B0B0BC090BD09A9A9009A90090B000000009009BFFFFFFEFFFFDFC000A9090F9EFBDBEDBFDF9FE9FFBDBEFFFDBFCFF9F9FFFFFFFFD000000090009090000000000000000000000000009C0000A909A0000009009A00A9CFEA0D0FDBFBC9CADBF090D0B00990B09B9E90090B009090900000000000FEFFFFFFFEFEF00090DAF0F9EDEDBFCFBFE9FFADFEFDFCBFFFFFFFEF9FFFFFFFE90000900000000090000000000000000000000090B000009000000B0F0A0000F0D0BFDFFAFAFEDBFBF9E9EF0BA9ADA0A9C9AD09A0900090000000000000009BDFFFFFFEFFFFE0900A909F0FBFBFDBFDEFFFFDFFBDFBFFFE9FDBDF9FEFFFFFFFFC090000090000000000000000000000000000000F00000909A9090090909AD000000FBEFDFFDBFE9E9A9B9BD09DB90D09B090B909009000B090900000090900FFFEFFFFFFFED000D0CBCBDADEDEFFFFF9FDAFF9FFEDF9FDFEFEFFFF9F9FFFFF9B00000000090090000000000000000000000000B090009000900009F0AC00000A0BCFCF0BEDAFF9F9ADF0FFA9AB00B09E9A9A9E90090900900000000000000FBEFFFFFFFEDF009009B0F0FDFBFBFCBDFFEFFDEFEDFBFFEFBF9FBDF0FFEFFFFFE00000000000000000000000000000000000009F000000009BCA900B00909A0AD0D09FA9EC9AF9EF0ADBAD0BDF9C9F0B09090999A900A09000009000000000909FFFFFFEFFEFC00B0E0F9FFAFDFDFFFFAFDBFFBDFBDFCF9FCFFDFBFFBDBFFFFFD9A0000B0000000900000000000000000000BCB0B000009A0090009E9E0000900A0A0FFCBFEDAF9BFDADBBF0B0BB099DA9F0BCB0D0009009090000000000090B0DFFFEFFFFFF000099F0F0FDFAFEBDFFDFFFCFFFFFEBFFFFBDEBCF9FCBDADFFFAD0000000000000000000000000000000000090D000090090B009F09090B00C090D09FEBFCBADBEF0BDADA9FDBC9FA0B90090099A909000A00000090000000009AFEDFFFFEFC09090E9F9FBEBDFFFFBFFFFFFBDE9FFDF0F0FFBDFBEFBFFDBFFFF0900000000000000000000000000000000B9A9A00090090900FA0BCA0000B0B0E0A0F0F0BEDFEF9BCADADFA9A9A9099E99B0B9A900009009000000000000009ADFFFFDEFFDA000F0BDAFCFDFFF9FFCFFE9FFFFFFF9EBFDFFADEBFDBCBCBE9EF09A00009C000000000000000000000000090C0900900A900B0F909000900D000C090DFACFEDAF9F9EBDB9A9BDBDBDB0B9A90990D0B09009000900000000000909ADEFEFFFEF009009F0F9FBFCBFEFFFF9FFF9FCF9EFFDAF0FDBFD0FDBDBD9F9FF009000A00000000000000000000000000B090E9009090B9C9A00E090C00A000B0CB0FDB0F0F0FBE9CBCF9EDA9A9ADBCB9ADA0B0909A9000900000900000000009BFDFFFFFFC009ACBDAFDEBFFDFBDBFFFDEFFBFF9FAFDFF0F9EBFBEFEFADADBE9000090000000000000000000000000009A090000090B0ABD090900B0A900F0CB0E9F0EDAF9E9E9BBCB9EBBDBDBDB09AD0999090090009000000000000000009A0FFFEFEF00000DBCBDFBFDF0FBDEFFFFBFFDEDFEFDFADADFE9FCBDBD9FBD0BD0B0000CB0000000000000000000000009C90A900A90BC9D00A000B0009C0B09AC090F0B9ADADBF0BCBBCB9DADA9A90BDA9B0A9A09A00900090000090000000909DBEFFFFDE090DB0FBFBEDEBFFFFFFDADFDFBFBFBDFADBFFADBCBDADBEF90BD009000900000000000000000000000009A000900999A90B0A090B9C90F00BC0AC0B0EFB0C09ADA9FDBFCB9EBB9BDBDB90B9099C900990090000000009000000000ADFEDFEF0000A9F0FCFDBDFDFDFBFFFFFBEFDFCFADFBC9ADADBCBF0F90FBCBE9AC000AC0000000000000000000000009A090E90A09E900900BCA9A00B0090090009FDBB0F09F0B0B9BCB9C9E9B0BCB9CBDA9B0900B00090000000000000000090A9FADFEF0090E9F9FAFFBEBEBFDFFFFFFDFEBFDFBCFFEDBDADBCBDAFD0F90909000090000000000000000000000009009090099E900F00909909C900000A9A9E90FBCDF0BE9BDBDADB9E9BBDADB909BB090900090909009000000090000009090FEDFED009ADBCBE9FDADFDFFFEFDBDEDBFDFCBFCBCBDADADB0F9E99AF0BDA00B009000000000000000000000000900900A9B00909B09ADA0E00A00D0B0D0C0000F09BA9F9BCBB0F0BE9BBCBF9B0F9AD90B009090000000000090000000000009E9EF9E000D9ADBDFDAFFFBF9FFBFFFFFFFAFBFCBDBDADADACBDADBCF99E0D090000A0000000000000000000000000B0009000B09A000000900000000C000B00A9FFAD9CB0F9ADBBDB9F0DBF9ADB0B90B99A9A00B09090090000009000000090B9E9EF009A9ADBCBEBFDBDEFFFFDFFFBFFDFDE9FCBE0F9E9DBCB9F0B0DA99A000000D00000000000000000000900900009A90900000090900909090B09A0000900F9FABBDB0F9AD0BCB9B09AF9A9BCBBCBC90900900000000000900000000000009E9CF009E9ADBD9E9FEBFDFFFFFFCFDAFBFFFAFDBDADBE9CBCB0F0BE9E9DA09000000000000000000000000000A9090000009000000A000A000A000009000090FF9FDFBE9BF9BF9B9E9FBD9BD9CB9090B090900090009000000000900000090B09EB009C90F0FEBDFBDFDBFFBFF9FFFFDFCBCF0F0F0F0DA9E9CB0D0909A09000009A000000000000000009000900000909000000909000909009000000090DADFAFFFADBDADBF0F9E9BADBBE9AB09F9B90B0009B009000000009000000000000DAD0D0A09ADBCBDFADFBEFFCFDEFFFF9FEBDF9F0F0F0DA9E90BC9ADA9E0900000000000000000000000000009A009A9000000000000000000000000900900B0BF9EBFFF0BDA9FBDB9AD9BCF9B99B0B09E9009000000009000000000000000909ADA00090F9ADBDADFAFDFFFFFFBFF9FEBFDBEFCBDAD0F0F09E90F090990F0900009000000000000000009009090000000000000900009000000009A090A9BDBFFBDF9FFF9FFBDBEBDBBCBB9F0F0DB9B090900909090000000000090000000000009E00090CBCBFFBDFBFBDBFFFFFFEFFDFADBCBCBCBA9E9E90F09E9E0B000000000000000000000000000000A0090090900000000090009000900009A90BCB9FFEBEFFB0FA9FAF9FBD0BF0FA9B9A9E99A9A90009A000900900000000000000090BC909AC9B0F9E9EBFDEFFFDFFDFFFFDEBDFEBDBCBCDCBC9EB0DA90900D0B009000000000000000000090090900009000000000000000000000A909090F0BFEFF9F9BF0FB9FFF9FBCBBF9F99F9E90B9E90900090009000000000000090000090AC000009A0F9E9FDFDBFDFFFFFFF9FDBFDFE9DACBCB0A90B0D0F009E09A90000000000000000000000900B0900900000000000000000909009090B0F0B09F9F9FBEFC9F90FB9BF0FB9F9E9BFA99F99090900900090000900000000000000000909000900D90F9FAFBEFFBFFFFFFFFFEFFAF9FEF9E90F9E9CA0B09E090000090000000000000000000000000A00090000900090090900000A90B009090DBFBEBFFDFBFEBFF9CFDBF9FADBFBCBDBA9ADB0B0B009000909000009000000000000000000009A0BDADBDFFDBFFFFFFFFFFFFFDFFE9F0F0FA0D0A9D0CB0900B00900000000000000000000000090909000009000000000000900900009ADA9A90F9F9EFA9EDBDB9EBBAF9ABDBE9DB9B0DB9A99C9090009000000090000000000000009090000A90D0BF0FBCBFDFFFFFFFDE9F9EF0FF0F0F0DE9AD0A9A0F9E90D000900000000000000000000900000000000000000000009000B00909E909C9AF9E9E9F9FFAFBEFDBDFDBFDBF9FBE9E9B0BDB09A900090A909090000000000000000000A00909C9AFC9FFDBFFFFFFFFFFFFFEFF9FDADAD0DA9AC9E9C9C90000A090000000000000000000000009A900009000009000909000090090B0090B0BF9E9ADAF00BDBF9BBEBFADBBDAB9F9B9E9DA90B090090009000000000000000000000090900000B0D9BE9AFFDFBFFFFDFFFF9F9EFAFDADA9A9C0B00B0A9A0BD090000900000000000000000009000009000900900900000009A090A9C0B0F0F90F0BDA0BF0FADFFDF9F9FBCBFDBE9E9B9A99F90B090A90009009000900000000000000000000090B0E9FFDBFFFFDFFFFFF9EFEF9CDADBCF0DA9C09E0D0C9C0A009A000000000000000000000000090000000000000000009009009CB090909AFB0F0F09F0B0FFBFBFEBFBDBF0BDBBDBC9F0B0B0D0B09009000900900000000090000009090009A9C9BDADBEDBFFFFFFFFFEF9F0FBBDAF09E0D0A9E09A0B0B09C90090000000000000000000000900000000009009000000A0900B90090B0BBD9CB0F09EF9ADB9FFCB9FF9EBDBDBEDB0BB099F0909090900009009000009000000000000000090009ADADBDFFFFFFFFFFFDF9F0FBCDAF09E0B0AD00900D0D0D00A0900000000000000000000090009000900000000000909090A900A9A9C9FDAFA9BCBE9F0F9FE9BFFF9EBDBBEBF9BF909F0B09A9A9000909000000000000000000000000900009F0F9FBEFBFFDFBFFF9FBEF0F9CBAD0DA0D0D00D0ADB0B0A0B0900009000000000000000000009000000009000909000000090E9090DA9A9AD09FCB9CBE9AF9FFF9AFF9FBDBDF0F0BEDA9BCB90990B90000909000900000009000000090000000090F0DBDF9FBFFDFFFED9FF0F0D0F0BCB0A0F0A900C0C90D0CA9C00000000000000000000000000000000000000000090B0090A9CB09ADBDAF00BCA9FB09FE9A9FFDBFE9E9FBB9F9B9BC9B9CB00900B090A0009000909000000000000090009A9AD0FBFAFFFFCFBFCBDBE90BCB9E9AC9C9C900D0E90B0A9A9090A90000000000000000000090090000000009000B009000900090B90BDA9A90BD0F9FFD0BE9ADEBDBEF9FBFBE9F0FCBC9A90B0A99C90900909000000000090000000009000900D0BFBCFDFE9FBFEDBFDAD9EDA9E09C90B0B0CB0B00B0C9C00A09000000000000000000000000000000000000090000000900B90B0CBC0BCBCBDAF9FFFB0BDBDB9EBFDBFADBDBC9B9B90B9CB99DA0B00009000000900000000000000000000009AD9ADBBF9FFFF9FBDEBDBE9A9C9DA9E0C0CB00C090C90A0F0D0E9009000000000000000000000000000000900009090900A90E9C9B0BDB9E9FEDFFFFFF00ADADBDBEBDF9FAFFBCBCBF90B90F09909090009000900009000900000000090009009AD9FCFEF9F9FFFFF9FF0DF9EBCBC90B09009A90E90AD0900A900B000000000000000000000900000000000090000000B000909A09F0ADF0F0BFDFFFFF0DBCBF0F99FBEF9F9F9BF9090F0B909A090B009A009000009000900000000000000009E9AF0F9F9FFFFFDFFFE9FB0FD0F09E9C9A0D000090E90A0909090C090000000000000000000000000000000000B000B0009DA9A99E9F9A0F9FDFFFFFFB0B0BF0FBEFADBDAFBCBE9A9EB909C9AD9A90090090000090000900000000000000909A90F9FBFBFFFFFFFFDF9FEDFF0BDBE09A0C9A0D0B009000DAC0CA0090000000000000000000900000000090900900900009A009C9E9A9EBDBAFFFFFFDFF00DADF0F9BDBFBF9FBD9BDB9DA90B0900909009009000000900000000000000900000D0F9E9FDFFFFFFFFFBFF9FBCBDEBC9F0D0BC09A00DA00F0009A90B0A0B0000000000000000000000000000000000000909090B09A9AD0BDADF9FFFFFFFF0A9FA9F0FCBDADBE9FBE9E9A99F090B9BC0B09A900909000009090000000000000090B0ADBFBFFFFFFFFFFDFFEDFFDBDEBCBDAD09E09C0090009A00000C90C000000000000000000000000000000009A090000A00909A9F0BBCBDAFFFDFFFFFF09F09E9E9BDAFBF9F0F9B9BDAF09A900099000900900000909000000000000000000009DBDFFFFFFFFFFFFFFF9F9FADBDDF0F9ADA90E9A90CB00C9ADA900090900000000000000009000000000090900000909090BC90F0F0D9FA9FBDBFFFFFB09E9E9A9BFAF9F9EDBFADADA999A9C90B9A09B009A0000900009000000000000009099FBFFFFFFFFFFFFFFFFDFFEFDFFEB0FDAD909E900CA90090000000A9A00000000000000000000000000090000009000A000B00ADA9E9ABE9FDFBEFDFFDF00BF0BDAC9F9FBFBBCBDB9B9CBC90B09000900909009000090900000000000000000EBFFFFFFFFFFFFFFFFFFFF9F9FADBDF9ADACF09ADA9009E0B090909C0090A00000000000000000000000000A90900909090D0909ADB0BDE9AFB9EDBFFFFF000BDA9FBCBEDBCFBF9AFCB0B9A909B0909090B009000090000900000000000000099F9FFFFFFFFFFFFFFFFFFFFFFDFFCBDE9F9B0F0909CBC090CBCA0E0900AD090000000000000900000000009000000000000B00BCB0F90BDBDADEB0E9FCBE0009ADADABDBBFB9F9FDB9F90BD0BC090F0009090A90000090B000000000000000BBFFFFFFFFFFFFFFFFDFFFDFCF9EBDBDADF0FCD9ADADA09BCA9009090A09000000000000000000000000000000009009090B0009090F00F9ADE9A90F9EBFEB009ADBDAD9FADF0F0FA9BCB0F90B909B09099A900900009000000000000000000BDFFFFFFFFFFFFFFFFFFFFFFBFBFDDADEDB0FDB0AD09AC9AC090CBC90009C00B000000000000000000000090900900000A00090900BCB0BB0F0B0F0F0FEFC0F0000A0BDBE9FFBF9F9FADBD90B090B0090B0090A9009000B09000000000000009BFFFFFFFFFFFFFFFFFFFFFFDFDFDAFF9FBCF0BCBD9AD0BC90BCA900A0F00A90000000000000000000000000000009009090B000A090B9C9CB0F0F09AB0FDBFE90BC900BDBE9FDAF0B9F0BBE99F0D090B0090909090000900090000000000009FFBFFFFFFFFFFFFFFFFFFFDFFFFCBD9FE9FBDF0FCBE9AD0BCB09D0F0D00900009000000000000009000009000000000009000909C0B0DAB0BCF0B0BC9CB0ADAB0C0B0A9E9E9FBFBDBDE9F9C9BE9B0B09090A90B09A900000900000000000009FBDFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF9F0FA9F9BC90DA9CB0DA0A09A0BCA9CA00900000000000000000000900090009A0A900009009A9CBCB9CBC0B0B0FDADF00BC0DBCBFBDAF9EB0B9B0BF09900909009900909000090900000000000009BFFFFFFFFFFFFFFFFFFFFFFDFF9EBFC9F9EDF09FCBC9ADA9CB0DA9E99E0D009009CA0000000000000000009000000000900090000B00BCBCB0F9EA90B0E9E9A9AF0000B00B0DAFDFF9FDBE9F90BCA99A9C9A009009009000000900000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FF0F9A9DE09ADADBC9F0DAD09CA09ADACB00090000000000000000000000009000009000090009090F090E990F0F9B0F0F0F009C0BC9A9FBFBFFBE9F0BF9B99A0D0B0909A900B00900900000000000009BDBFFFFFFFFFFFFFFFFFFFFFFF0FF9E9F9EDDAB9E90B90E9A0B09ADA9C9E9090C9A00000000000000000000000000000B00A900009000B0B0E9BCACA9F0E0F0B0BB000A90A09E9CBDF0F9F9BD0F0DAD90B0900090900900000090000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9EBF0F9ABD0F0F0C0F9CBD0DADA9E9A9CBCB9AD0DA90000000000000009000000009009000900A09A0D0BD0A9DB9E0B9F0BC90F0A09CB0DA9EBFAFBDBFAF0B09A9B0B09A9090900900000090000000000BDBFFFFFFFFFFFFFFFFFFFFFFFFFDBDAD9C9090D0F009E9B90AD0FADA9C9A9CA9000C0B0000000000000000000000090000000000000090090BC0A9DA0E9F9E00B0BEFC900BC0BCB9F9F9FBCBDBDB9F9090909C90000B0090009000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9A99A090909F090CAD9AF09E9E9ADA09E9E9A9009E900000000000000009000009009009000900090BCB0D0A9F9ADAD0F0F09B0AC90B0DA0DAF9F0FBCBCBCB0F9E9ADA909A9009009000090000000009DBDFFFFFFFFFFFFFFFDFFFFFFFFFDBE9C90D9D09A0009E9B0AD09E99E9E90DBC9A9C9E9E00A000000000000000000000000000000000090A009CB09DA0FBF00B0B0F0D00B00F0A9FA9FAFBF9FBF9F9F0B909090BC9090090000000000000009FBFFFFFFFFFFFFFFFDBFFFFFFFFD9FC9F9BDA90BC9D09000C9C0F09E9F09E9A0BCBCA9009090D00000000000900000009009000000900000909A009A0BDBCA9E09E900A09FCB0099E9CBF9FDADBDB0B0B9E90B0909000090000000000000000BBFFFFFFFFFFFFFF9FBFFFFFFFDBDFF9F90D090D9090000909A9B0BCB0F0F0F0D0909DACBCBCA0000000000000000000000000900900009A900E90DA0F9E9E9F09E90F0D000B0F00A9BF9FFAFFBDAF9F9CB9BD09A909A9009090000900000009DFDFFFFFFFFFFFFFFFFDFBFFFDBDB99C9E909090090909000090C9CBDF0F9E90BCADA009000909C00000000000000000000900000000900000900B0999E9E9E0DA9A000B0009E9E90E9FADBF9FABDBE9A9CB0B9090B090900000000000000000BFBFFFFFFFFFFFFFF9FAFDFFDBD0D009990F9CBBC9E0909090090A90ADBCBDBE90D0DAD0F0F0A0B00000000000000000090000000000009090A909A0E90F0B9A0F0C900DA0009E9AC9A9FBFDFBDFADBDF9B0F9CB090900009000000000000009BDFFFFFFFFFFFFFFFFFDBFF90009A9FBEFFFEF9CBE0900000000090F9ADBCBC9E9A9A90B0909D000000000000000000900009000009000000090BC909ADAD0E9C090000A9A00B0BDB0BCBDEBBFFBDBFA9B099AB090DA9090000000000000000FFFFFFFFFFFFFFFFFDADAD090099BF0FFFFFFF9AFF09E0F00000000090F9ADA9A9C9E9CB0CBC0A0F000000000000000000000009000009009090F0B0DAD0F0E90B0E0000F00009ADADE9BFBFFDF9EBDB9F0F0BD9DA9090009090000000000009BDBFFFFFFFFFFFFFFFFBDA900000FDFBFDBFEBC9E9E0900000900000ADAFDBDCD0B09A9CA90A9C90000000000000000000900000090000000DA090DA09A9009A0C9000009FA90C09A9BC0FF9FAFF9FADFB9BD0BA99A909900000000000000000BFFDFFFFFFFFFFFFFF9FF9CAD0090B0DAD9BD0B09090090090000090909ADAABCBCBC9E9DAD0A9E9A0000000000000000000900000090090B090A90909DA9E0D00000000E900A9AC9E0BF9FBFFDBFFDBADE90B9DBC90B0A9000000000000000BDBFFFFFFFFFFFFFFFDFF9E99909090999000090900090009000000000BC9ADD9AD009A90A9A9C900D000000000000000000000000000000A000F09ACB0A0C900A0009009B0A90009A0BF9EFFCFBFF0BD9FB9BD0B0B9090900900000000000009FFFBFFFFFFFFFFFFFBF0FFFFFF99090F09BD99C900900990009A90DAD00BDB0AD0BDBC9E9C9E0A0F0A00000000000000900000090000009090909ADB090DB0B0C9000C9EF90A9ADAD000FB9FBDF9FFFAF9BCB0BDBDA9E909000000000000009B9FDFFFFFFFFFFFFFFDFFBDBFFFFFDF99BC909A909D0BC0C90BC0DA090BD0BCBD0F000A909A099C909000000000000000000000000000B0000A0BCB0000B0C0090000B0F00FA009A9AC909EFFFBFE9FBDBCB9DB0B9A90900B000000000000000FFBFFFFFFFFFFFFFFFF9FFADFFFFFFFFFDBDBC9FDA9C9B9ADADB00D0E00AD0BCB09F9C9E9E9E0A9AC0F0000000000000000000900009009090909ADBC90C9A9CA0A90CBCBF00B0A00A9A00B9FADFBFBDBFBDA9AD9ADB9A9090900000000000009BFFBFFFFFFFFFFFFFFFF9FFBFFFFFFFFFFFDFF0BDFBDE0D0900DA0B09F9ADCB0F000B0909099C0D0B0000000000000000090000000000000009A9A090A9AD0B090CA90A090B000B0D000B0FFFFBDBCBF9CB9F99ADBD090D0000000000000009FFDFFFFFFFFFFFDBFDBF9FDBDFFFFFDFFDFFFB09FCBCB099E9E9A9AD0F00DBB0D09E90D0F0F0E0B0B0C000000000000000000000009009009A9E9C909A9000BC0CA0F0E90FA00A90B0BC00DBFF9EFFFF0FBDA9ADB9B0F909A909000000000009BFFFDFFFFFFFFFFFFFFDEBFFFFFFFFFFFFBFFC9E9BDBC9E0900D0D09A9DBAC0F9E99E9A090090900C90B00000000900000000000000000000909ABCB0C00F09A9ADFAF00B0DA90A00B0B0A00BFF9F9FBFDA9F99ADADB09A900000000000000009FBFBFFFFFFFFFFFFDBF9F0F9FDFFFFFFFDFFFF9E9F0B090A9B0B0F0DA0D9BD0A9E909CB0F0CB0F09AD0000000000000090000000000900900BC90909A99000D0AFFDFBC0FA90A90B0DAD09ADEBFFEBDFBFF0BC9B9BBDA909090000000000009FDFFFFFFFFFFFFFDFBFDF9DBFFFFFFFFFFFFDBD09F0D09E9C0C90D0B0DB0F0BFD090F090D09A9C09E00BC0000009A0000000000000000000090B0F09E90A09A0BDFFFECB0B00A00A00B0BCA09BDE9BDFBFF9BDBB0DBD0909A900000000000009BFBDFFFDFFFFFFFFFFDFADBFCBFFFFFFFFFFBFCBE909E0000B9AD0B0DB0F09C90B0F00BCB0A9C0B009F00090009000000000000900900090BCBDA90F09AC90CBCFFFEDBCACB00B09A9AF0F0F0FBFFFA9E9FFEB0DBA9BF9E9009090000000000BDFFFFFFFFFFFFFFFDBFBDBC9BDBFDFFFFDFFFDBD9E9009090000B0D0BCB9CBBCBC90BD090C90B00DA0009C0090A000000000000000009000090A9CB0BC0BCB00F0FDFACB0BCB00A00090B0F0F0F9FEDBFFBF9FB0DBCB09909A00000000000000BDBFFBFFFFFFFFFFFFDF9FBC9BDFFFFFFBFDFBFF99E9000090C90B0D09CB9C9BDBCBCADA9BC0D0B09E90A909E09C00009000000000000090B0990BC9CBC0BCB0BF0E9F9E0EB00A0A9A0A0F09AF0FBDBCB0F9FBDBB99FFB0B0990900000000009BFFFDFFFFFFFFFFFFFFFF9DB9CB9FBDFD09B9FDB0F9000000090009A0F90F9E9E99CB909C09B0090C90E90B00900B000000000000000000009E9E90B009ADA9E00BCA0A09900B0900009A9A009FADAFF9FFFFDAD0FFB90D0900000000000000BDBDBFFFFFFFFFFFFFFDBDBE9CBDFFFFF99F9FDB0FD0E99A909A90DBC990F9E9CB9EBD0CB0B0C0F0A9A09000CB09F000000000000009090909E9A90B0CBCBCBCB0B0B0F09AFB000A0A0A09AC9E09FFFDBEDAFBFFBF9A9FB9AD0B0909000000009BFFFFFFFFFFFFFFFFFFFFDF9B0909FFFFFFFFFFDBFBDAC90F0DA0009F0F0F9FBDE9D0B9C9CB090C9009CADA90E009000000000000000000B09A9EBCBE9ADACB0A0CA00A000FA9009090A09A09A09AFADBBFDFFBDBF9F9E909009000000000009DBDBDFFFFFFFFFFFFFFFFBDFDF9F9FFFFFFFFFFFDADB9AC90B0D09A90BDBCBC9ADA9FCB9A9CB0B009E090090909E0F000000000000000900BC909CBCBCF0B0E9CB09A90B0F00A0A0A0A90A0B0090F9FFFDFBFBDFE9FBE9F9A900090000000000BFFFFFFFFFFFFFFFFDFFFDFBF0F0F9FFFFFFFFFDFFFCD99E9CB009C9E9ADBDBFDBDBA9C0DB09C09E090A90CA09A09009000000009000900909ADA900FFACF0B0A00A00A0090B00900900A090ADAF0FBCBFAFFFFBDBDBDB90909A900000000099F9FBFFFFFFFFFFFFFFFDFFBFDF9F9FFFFFFFFFFFFDB9B0E9CB00B09E9FDADAD0BCBC9DBDB0CB0B090B0D0A909E9D0F9E000000000090009A9ADA9ACBDADF0B0F0B0BCBCB0FA0A0A0A0A090A90B09ADBFFDFFF9FFBFAFBF0B0900090900000009BFDFFFFFFFFFFFFFFFFFBFDFBFFDBFFFDFFFFFFFFFEDE99AD0C90DA9DA9FBDBFDF9FEBCBC9BC9CA9C000D009090A90000000000000000B0D09A9C0BDADA0FCA00E9E9E9EA0F909009000A00A00A900CBFBF9FF0FFF9FDBFDBC9900000000000ADBFFFFFFFFFFFFFFFFFFDFFFDFBFDBDFFFFFFFFFDFDBDE09A9009ADA9F0DAD0B0F099DB0F0CB0900BCB0A9CA00B0F090F000000000090009AD9ABDAFCADA0BDBB0F0FAFDFF0A0A0A0A9A09A09A9E0B0BCFFFFBFBFDFBBF9B09A09090000000099FDBFFFFFFFFFFFFFFFFFFFDFFDFFFFFFFFFFFFFFFBDA9DAC0B0BC90F0FBDBFDF9FFE9E90F90DADA090900A9C90D0BCB000000000900090B0BED0BF00900F0A0CB0F0D0EAB00B09009000A09A000900FFFBFFFFDFBF9EDBCB909000900000009FBFFFFFFFFFFFFFFFFFFFFDBFFFFBFFFFFFFFFFFFFDE9DA099C9CBBFF9E9DADABCB090F9F9ADBC909CAC00900009AD00090000000009A0B09F9AFC0D0EBDA9ADBACBEAFBDCB00A0A0A0A090A0B0B0E900FFF9FFBFFBFBBF9AD09090000000009BFFFFFFFFFFFFFFFFFFDFFFFFBDFFFFFFFFFFFFFFFFBDAD9E00B09C90F9EBDBFDBDFFF9E9AD909ADA099A0090B0000BDA00000090000900FADAD0B0A90C0F09A0DB09000ABCB09009009A00900B0B0EB09AFFFFFBFDFDFBDB9A9A0909000000099FFFFFFFFFFFFFFFDFFFFFFDFFFDFFFFFFFFFFFFDFCBDA09B9CBCBF9E9DADF0FDA9DAF9EDAE9E90DA0C900000909009C900000000900909FADAC0090B0B0F09A00E0BC909A00A0A0A0A00A0A9A00B00CADFBFFDF9FBF9ADBC99090000000009BFFFFFFFFFFFFFFFFFFBFDBDFF9FFFFFFFFFFFFFFFFBDADBC0CB0B09E9EBDB0F9ADFAD9E9BD9E9ADAD0B00000000009A9A0000000000B0DB09A9A90CAC0F00BC9AD0B0A0AE90A0B090B09A909A09ADADA09BDFBFBFBF0BFFB90A900909000009CBFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFDFCBC9009B0D0DE9F9DBCFDADFA9DAF9E9E9AD09A90C00000900909C0000000090909ABCBC000A090B00B00A90B009A99E09000A00A00A0A0B0B0A9000EBFFFFDA9F99B0F99090000000009BDBFFFFFFFFFFFFFFFFFFFDFBFDFFFFFFFFFFFFFFFFF90F0F0C9ADB9E0FEDB0BDA9DEBD0F9E9ADABC9E9A9000000000A9E00000000000F9CB0BC00D00009AC9ADAC0F0E00A9A0A900B09A9009A0A0B0E9090DBFDBFF9BF0DB9E9DA90900000009BDFFFFFFFFFFFFFFFFFFFFFDFFFDBDFFFFFFFFFFF9EFF090B0D0ACBDB9BEFDAFDA99EBDADBDE9DA9E9C000000009090909000000090B0ABC0009A000ACA0B09A9A9A90B0DA090A0A00A00EB0CB9CA90A000BFFBFF9E90BB9E99A9000090000909FBFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF90F0D09A9DBC9EFC90BD0BDE99CADACB9E9CB09A900000090000BC000009090009D0B009A0090090900E9EDAC0AC0A90A00090A09A900B00A9CA0900BCBDBFFBDB90DB9A090090000900BDBFFFFFFFFFFFFFFFDFFFFDFFFDFFFFFFFFFFFFFDE9CF09A0A9DACBAD09BFECBDA9ACBF9BDBCBCBC9E9C000000000A9C9A0000000A9B0A00CB0C900C9A0A0A9A9A09A90BDA00A9A0A9A00A0B09A9A09A0909FFFFBF9AD0B90F99090090000900B9FFFFFFFFFFFFFFFFFF0FAFDBEBDFDFFFFFFFFFFFFB0D00D9CADBCDADAC099BC9EDB9CBCBCBCB09E9A000000000909A0C0000009000C9A900000A9A0009090DAC9E0A00AD0B0000000B09E0EADA9A09A0000BDADFF9B909B9ADB090009000990F9BFFFFFFFFFFFBDBE9FDBCBDDFAFBFDFFFFFFFDBCDB0B0A0B009A9DADBCAC0A900FA9CBCBDADFA9C9E9000009000C9B00000000090B0C0BC0B0C09A0A0A0B09A0090B0F0A00B0B0B00EA0B09A0E90ADADA9AFFBFBE9E9A9C9B0900900000009B9FFFFFFFFFFDFDFF9F0BC90A90D9EDBFFFFFFFFFFBC00D090C9E0CA900909090B90DA9DBC9F09CBA900000000090B0C900000009A900B000900B0E0900090A9CB0A0000B00A000000A909ACA9A90A9A900CBDBFDF9990909BC9A9000000099F0DBFDFFFFFFFFFBF0FCBD0BC90F9ADBFFFFFFFFFCBC9090AC0B09099C0BCBCAC0C0CB9EBCBAC9EBC9CA000090AD0A9CB00000090000CB09CB00F009A0A9A0AD0A0BC90AF0B090B0A0B0A0E0B0E9A99E9ACB00BDFAFFA9B0B09B909B0909000099A9BFFFFFFFF9FDFF9BDAD09A90090F9FFFFFFFFFDAC0A09090009E0AD00090B090B0E9CB0DBAD09E9C900000909CB00B900000909A90CA09E9ADA09000909A9AD00A90BC00A00A90090A90E90A0EB0F0BCBC9ADBDBDAD09CB0BC0900000909A9DBCBFDBFFFBFFBCBC009000909ADB0F9FFFFFFFDF9900D0BC9CB09000090000000090B09E0D0BCB0B00000000A0B0F0C000000000DA9BDA0000A0A0A0A00A900A900A0CB0A09A00A0A09A09AD0B00A0B0B0B0BFFBFF99B0909DB900900000909A9BDBFFDBFDF0F0909E0A9C0B0D09DBFBFFFFFFFACA090A00B00DAD0B00000000090009E9B0F0BCBCB0000009C90D00B000009A09A9CA09CBE909009090B00AD0E0BC9B0B00A09A9009A0BE0ABC9A9F0F0F0D0BDBDBCB09B09A9A090900909B99BF9FBDA9DB0909E0000D009C90ADB0FDFFFFFDAD909E090900F0000C00C0090000090F090E90D0F0C000009A00DA90900000009A9CB0F0B0000A0A0A0A00A90A9A00AF009A9A00A0A00000BC0AAD0A9AA0B0F0BFBFB9F0090909B000000009AD09EBDBDA0090FFF00C0000A009009FBFFFFFFFFA000900C0090BC000000000000000009E09EB0F09A00000009A90000000009009EBC90F0A9A00090000A90EB0009E90FA0009A0090A9A000B09A0BCBD9BCB0F9E9FF9B90B09F00F090900909B9999EBD90009BFFE0000AC9E009009F9FFFFFFDFDA009A90000EF0A00000000000009A09F09CB0F0D00000090C0F00F0000000BC90BF0AD0000B0A0B090A900E9A0A0F00B0A00B0A00009A00E0CB0B0AACB0BCBFBF9EBF9090099090000009090BCB9FBE900009C09E0000009009BE9FFFFFFFF09090C000B09000C0000000000009A9CA0BCB0CBCA000000009A0090000090909AFC0E9A0A0B000000A00A0B00090009A0A09A000B00A0090B0B0A0CB990DADBDBFFBD90F099A009A909090B0BDB09FF9D0B0000000000009000BC9FFBFFFFF0F0C00B0090000000000000009009C0CB09DA9CB09000000009A0900900000009AFCB090009000A9A0A09A0900B0A0BFA909A009A00A900A0A0CA00B00EABADBAFDBF9FA9090009A090000090D90BDB9FFA90FF0000000090009F9BF9FFFFFFFF0B0B009C009E900000000000000A9A9CBCACA9CAC0000000009C090A000090B0F9000A0A0A0A000909A000A0A000009E0A09A0A0B00A09009A90F00B090CB09DBBFFF9FB09B090900B090909A99090B9FDF909E9C00090090000FD0F9FFFFFDFE9C00909A0000F09000090900A90C9A90B99CB90B000000000B0000900000090AF00C90900909A0A0A0A9A0090A9A0F0B00A009000B00A0A000A00A00A9A9AFADFF9FBF9F09000090090000B90F9F09FFBEDA909A909000009BDBEBFFFFFDFEBD0B09E0A9C09000E09E000009C0E9AC0F0CABCAD00000000000DAD900000900BD000A0A0A9A0A0000090009A0A00000B00A09A0A0B00A00900B00B09A9A9AD09FFBFFFDB09090900090A9099090B0B9F9F9BFDAD00AC0909BADBCBDF9F9FFFBD0BC0090D090000909009A909E9A90D9B0CB9C09A000000000009A9E00009A0BC0000909A9000009A9A0A00A00090A0F0A09A09A9A0A909A0A00B00A0A00E90B0BFF9FBFFB90B000900990000B099D90BFFFDEBFBFF99BCB0D9E9F9BCBFFFBFCFAD0F0000A0F0BC00A900CADA90D0F0AC0BCA9F0C0000000000009F0000000D09A09A0A000A0A9A000000A900B0A000AD0A00A000F0CAA0009A00A0909A90BE9F9FFFFFBDFA909900000A99909B0B0B99B9FBDF9F9FEF0BDA9E90BC9BDADFF9F9DA90F009000009A9CADB9CBCAD0B0D9AD09E00B00000000000000000000900BC0009A9A0B09000A0A0A90A00000A009A90B09A9A0BA9CBA9A0A90BCA00A009AB0FFBF9FFBD9B009090090A090D099C0BDFBDBDE9E9909009009F09E9ADBFCFFBE9F090F0090000009000E9E9DAF0F0AD0BC9DAC000000000000000000000A90B00CA00CB00AE0B090D00A09A0B009AF0A000A00ADAD0A000009CA0A09A9A9EBC9FBDFFFBF0BC9B00009099909A9B09BDA99CB09A9000009009A09F9BDFBDBFBC9FCBEF090009000000909009A09C9AD0BCB0A0900000000000000000009090BC00B0B0B0CA90900A0A0A90A00000A0AD0A0A0A90A0AE9A9A9A0A909A0000A90BBEFFBFBDFF9B909000000BC90990B9099EB90B09CBC9CBC9E9DBDADF0BDFFFDFE9BD99CBCB00090090A000B0D0F0BCBC0BC0DA000000000000900000000B0F00CB0C0A00B0A0A0A0B0BC0AC9A0A0009AB09090A0909A0CA009A0A0A9E0B09AF0DBFFFFFBFFDAD0B90000909A9A99CB9AD9CBC9CB09A990BF9A9ADB0FFDAFDAF9FCBEFADADCB0F0DA09C900C9A90F0F0BD0B00D00000000000000090009009AD0A0B0B0F00E90DA90000B00A00C9ADABC0A0A0A9A0A00B09A0A0F0BC00B0AC00BA9FBFDBDFBF9B90D090000B909CB9099BFB9B090F9C9AFDAFDFF9FF9EBFDBFDFBBDBDFBDBBDF0FADBE0E9F0ADFE9F0F0AD0DA0000000000000000000900F0F0AD0A00A00B0A0A0ACB0E0A90B0B00A0F0A900B000B00B0AA0F09000A0B0C0B0F09FFDFBFFBFDF0A9A0000099C09B90B0FADBCF0BF9E9BFDBF9F9BCF9F9F9BDFF0FCFDE9DEFCF0FAD9E9F9BCBDF09F0F09DA0B00000000000000000000009090000A90B09A009A090B0A9A9CA0A00A900B00A00A9A0A00A0900A0A9A9A0A9A0A0BE9FAFFDBCBFBD909909A009B900BD9999BDB9D99F9F0DBFDFBCFF9EFFDEFF0FFDBFBFEBF9F9F9DEBDF0FCBE90FE0F0BCAD0C0000000000000000000090ADAD00B0CA0CA09A000A0000000A0900B0CAF0B00B00A090B09A0AB000A00900A900909A9FBFBFBF9EBF0BC909000099B0B0B0D9BDABCB0F9B0F9E9FBDBF9F0F9DBF9FBCFDBDF0FEDAF0DEBCF9FDFFF9F9E9E9B0B000000000000000000000A90B000A0B09A90A00A900A00B0A09ACB0CA90BE00A0A90B0A0A00B000B000A0A00A0A0A0DADFFFDF9FFDBD09A009A99AC0999DB0BCBD9B9F9C9F9FBDBDBCBF9FBFADFADEBDADADFDBFDBFB9DBFCBE9E9E9E9E9C0D000000000000000000009009AF09AD000A00A9A900A909A0090A0A00B00AD09A0900A0A9A90B009A000B0090B009A09A9BFBDBABDBBF9A9090099E99BDA9A9099B0BCBCB9BF9E9FAFDBFCBDAD9F9DFBDBFFFBFBEDBCFCFEFCBE9F9E9E9E9CA9A0000000000000000000000DAD00E00B0A90A90CA0A0A0A00A0A0090A0A90BA000A0B09A000A00A000A0000A000A090A0BC9FFFFDBFDEBDB0090009A9099F9B09E9F99BF9E90F9BDDB9E9BCBDAF9EBC9FCBDBDEDFADBDBF9DBFDADE9F0F9CB9C00000000000000000000009A90F009A000A00A0B0009000A9000B0A9090A0CBA90000A09A0B0B09A09000A00A090A00090BCBFF9E9BF9FBFF909A099F9A9A9D09090F090B9F9BCFB9FF9FDBDBDAF9FBEB9FEDBFBDFFEBCFEBCBDFBDADBCBACA90000000000000000000000A9E9E9AC9A900B0000A9A0A9000A90000A0A000BC9A0A9000A09A00A000A0A900900A000B00A09BDBFFFDBFBDBDAD09000B0DB9FB9A9099BDBD09ADB9EF0BDBADADF9DADF9FEF9FCFDFADBDBDBDFBE9EADBCBC99C00000000000000000000090D09A000B000A000B0A000090A9A00A9A00009A0F0A0000A0A90A00B00A00000A0A0B00B000B099EFFFBDABFDAFB99A90099FB0DB0090B0F09A9BBDB9F9BDBCBDF9F0BFFF9EDF9EFBFAFDFDEDAFE9EDBDDBCBC9E0A00000000000000000000000A0BC9CB00A0000A0090A9A0A0000A00009A0A009B00B00090A90B00A90B0A00000000000A000A09A9FFBFCBFF0FFADA99A09DBA9F900099F9DAD09E9E9CBDBDA9E9FF0F0FFBFF9FDFDBFAFBFDBDF9EDABCBC9A9C0000000000000000000000909F0BA00A09A9A09A0A000900B0A090A0A000000E9A000A0000A00A90A00090A090A0A0A09A09000DBFDFBFDBDF9FDBDAD9E0BDDB9F9900B0B99B9F99BF9BCB9F9BDADBDF9FCBFFBEBFCFDFDAFCBEF9FDE9E9EDA909000000000000000000000A09FC0B00A000000090A0A0A0009A00900A0B0A0BF0B0A00A0000B0A09A0A0000A0090090000A0B9A0BFFFFBFFBE9FFADAB990BA9EB0B0909DAF0B0FBC9DA9BCBCFBDBCBBCFBDE9FDFDBDBCBF9FDDBE9E9F9E9AC0A000000000000000000000909E90BCA900A0A0A0A0090000A0000A0A9000000E000090090A9A0009A0900A0000A00A0A0A00900C9FFBDBCBFFDBFBDBD09E9BDFB9D090B9A999CB909BA9FCBDBBCBCFBCFBDFBFCBFAFFEFFCFFEBE9F9F0E9AD0D000000000000000000909AC9EBCA00000A900900000A00B0000A090000B0A9AB9A0A0A0A00000B0A0A0A00B0A00000000900A0B000FFFFFFBFFF0FBCBDB9E9B9F9A909CBD9E9BDA9E9D0B9F9EDBDBFDFBDAFCFBDFF9F9F9F0F9FDEFADF9EDA0A90000000000000000000090A900C0B0B00000A000B0000000A09A0A9A000000CB09000000A0B00009000900009A0B00B00A09009A90BFBDBDBFFFDF9ABCB9E9E9F9E9A90BA909AD99A9F0F0F9BCBDAF9EFDBFDEBDCFEF0FFF9E9F9CFADA9ED90C00000000000000000000090BC0B0000A00A000A0000A00A900000000B00A00BCA0A090A00000A0B0A9A0A00000000000A00A09AC0BDFFFEBDADBFAFDF9F0F9FBCB9099BD9F0990BE9F0BD9BCBDBE9FEBDAFDBFDFBF9FFDADEFF0FF9FADE9ACB00900000000000000909A00BCA000A0A09A00A0900A0900000A0A9A0A00A900DA9000A09009A09000000000A0A00A0A0009000A0900BF9FBDBFBFFFDA99A9B0F9F9E90BCBE90F0BC990BD0BE9F0F9FDBDFF9FE9FAFDFCFADFBD0FF0F0DF0BC900000000000000000000009DA9009A9090A090000A0000A0A0A000009000000AB0A0A000A0A00A0A0A9A0A9009000900B0A0A9009AD00FFFFFCBDBDFBFEFDADB0FBF9AC9B99A99099A0F90BD9E9F9EF0FF0FE9FEDFDAFBDF0FCBFA9FCBF0BCB000000000000000009009C90AD0CA00A0A0000A9A0000A00000090A0A0A9A0A00CF090B0000000009000090A0A00A0A00000000A0000A90BDBFF9EBBCF9FBFDADB9DAF99ADAD9A09E9990BD0ADB9CF9BF0FF9FF9FBEFDFCBFF9FCFDE9FCBCDAC9E90000000000000000A00A90A909E9000B0A00000A090A9A0B0A090000009000B00A000A900A9A0A0B0A000000A9000B0A9A0009A9AD00BFF9FF9FDBFFF0FBDBCBBDBE909B9AD0B9A0C900B9ADAB9EDFF9CF0FEFDBDADBFCBCBF9EBEDBDBAD9A0000000000009000009009CBC0AA0A0B00090A0A090A000000000A0B0A0A0A0ACB0000A00A00000000000A90A000A9A000009A00000009E9FBEBFCBF0F9FDADAFBCBF990F9E90909C9B0E9D0DB9CFB0F9EFBFB9DBEFFBFCBDFF9EFD9F0E0D0AC90090000000000900900B0B09AC909A00A00A90D0A0009A0B0A9A0A009A00000BCA9A09000B000A90A0B000009A0000A0A9A00A0A9A9C09BDFDF9FA9FAFBFFBDBDBD0FA90B99F0B0000990A9B0FB0DF0FBDCFCFADF9EDBFFEBCFBDAF0F9DAC9000000000009000090A09C0DAC90A0A0F00B00A0A00A0A00000000909A000B0B0B00000A0A000A90A000000A00009A0909000A090000A900EBFBFFBDB9DBCBDFADAFB9FDAF9E900DB09000900C90DB0BF0FBF9BDFA9F9FCBDDF9EDBDADACB9B0F000000000000900090CA9A09A0D0BC00A00A90B0A9090A9A0B0A0A0A0A9A0000CB0A0000900A00000B0A0B00A0A000A0A0A900A0A0900A09CBFDADFCFBC9FAFDBF9FF0BC9A9A9F0000A90009B0DADBC9F9CBCFADFDEFAFDEBFEDBCF9E9F0C00009000000000000B00090009E0CA00A9A90A0A0A00E0A00000009000090000A0AB0000A000A9000A9A000000900000A0009000B0090A0A900BFFFBFBFA99EBDBFE9FE9BFDBDAD90009090009B00B0909EBCFADBDADAF9F9EBDADBEDBCBD0A9090000000000909A900A90A9DA90B00B0000A09009CB009A0A0B0A0A0B0A0A0B090CB00009A0000A900000B0A0A000B000B0A0A0000A00900F909FFFDFBDEF9CBCBDF9BFDB9EB900A9000090000D090CBC9CB9DBCBDBD0F0F9EFDEF9F0F0AC9CA09000000900A000009C09C0A9E00B00A9A090A0A0A09A0009000900000009000A0BC0A000000A00A0A0B0009000A000B00000900A000A09A00E0BDFBCBF9FAF9BFAFFDBFEF9CFBC9009000000B000B09A99CACADADAF9FDAD9A9F0F0F0D90A9000000000009009C90A90A909E9CACB00A0A00009A0A00A9A0A0A0A9A0A0A0A00009A900A000B000009000A00A0900A000A0B0A0A90A900A09A909AFFFDBFFDBE9FDBCBE9F9EB909A9C0009000090000000E9999ADAD0F0ADAFDE9F0F0F0AC9009000000000009A00B00090BCBCA900A00090A9A00900B000090000000900009A0AE000000A0000A9A0A0A90A00A00000A900000000000A09A0090FDFFBEBDAFDFCBFFF9FBFBD0F090A009000090090909090ACAC909A9ADBC90B9E9F00909000000009090909009B0D0F0F0F09000A909A0A00000A0A000A0A0A0B0A00A00A009090A0A09000A000000000009000B0A900A0A0B0A0A000000B0E00BBDFFDBDBFBFFDBFFFCBDAB0BC09000000000000000009090BCBC9C9009E9C090090E00000000000000ACA9E0C0A90B0F0BC0A900A0000000B00900A0900090009A00A9000A0E90000A00009A0A9A9A0A0A0A0000A000900000900B00A0090B0CBFBDFEBDEDBEBF0FBFFFDF90B00B009000900000000000090000A00F009A9E0F0E90900000000000B090909B090F0F90000000A00A9A09A00A0A090A00B0A0A00009000A000BCA90000A9A000000000900090A0000B0A0B0A0A0A00A90A000090FFFBDFBFBDFFDFFFF9FBE9E909000000000000000000000090909000900090009000000000000900C0BCB009E90900F0F000A9000000A0000900A000A000900A0A0A0A09A0CB00A0A000000B0A0A0A0A0A0A090A0000000090000000000A9A0F9FBFFBCBCF9FFF9F0FFF9F99E00909A0000900000000000000000090009000900000000000090A099B090C9E90BCAF0900A0000A00A0000A0A0A090B00B0A0A90000000000B0000090000A000090900009000A09A0A0B00A0A0B0A000A9009000FFDFFFFFBE9BFFFFBCBFBCB09000090000000000000000000000000000000000000000000009C9A0000A9A9AD0BD9AC00900A09000000090009A0A0A0000900A9A009A0A0CBA0A00A0A09A0B0A0A0A0A0A900A009000A900000090A900A0A0909AFBDFBDFFEDAFFFFFFDFBCBCB00000000000000000000000000000000000000000000000000009E9C9C9C09AD0AC0B000A0000A09A0B0A0A0A09009A0B0A000009A00090BC090000900000000009090000E900A0A0000A09A000A00A00009A0E9FFFBFFBDBDBDBFFDBEBDB909C90090000000000000000000000000000000000000000090A9A9090BA9AB9E9EBDA9C0A0090A00000000009000A0A0000000B0A0A00A0A0C90A00A00A0A00A0B0A0A0A90A9A0B0009A0A00A00A00000090A00090FBDFDBFFFFCBCBFFFDFFBCBCA000009009000000000000000000000000000000000009A09C90F0BC9DADCB0900C0B0000A09000A0000A00A0B00900B0A9A00000009000BA00A90A0000090009C0000A00000CA9A0000900090A0A9A0A000B0A90FAFFFCBFFBFFDBFFBF0F9B090900000000000000000000000000000000000000000000F0B0F0F9BEBDBB0F0F0B0000B0000A000A0A09000000A0A0000000B0A9A0A0A0CB0000090A09A0A00A0B0B00A9A0B0000A9A0A0A0A090000000B0009A09FBFBFDADFFBEFDFFFFBC9F000A900000000000000000000000000000000000000090090DA9BCF9F0FC9E9F0C09EB0000A00A900000A0A90A00000A9A0A00000000000BC0B0A0A00000009A0000009000000A0F0000009000A0A0A9A000A000BC0FDFFBFBFDFFBFFF9FFBF09F090090900000000000000000000000000000000009E90F0BDFEB9E9F0BE9BCAB9E9CA0A900000A09000000009A00B000900B0A0A9A090CB00000009A0A90AC9A0A0A0A00A9A9000A0B0A0A0B00900000A090A900B9AFFFDEDBFFFFFFFF0FCBF000000000000000000000000000000000000000000000F0F0FA99EDBE9F9FC0BDCF0A9000A9A0000A0A000A0A009A00A0A0A00090000A0B0A00A90A0000A09A09009000A9000A9A090090000000A0A0A900A00A0B0E9AFFFFBE9FFFBFFFFDBC9AD09000000000000000000000000000000000000900BDA9DFBDEFFADF9EF0BD0FA0F0A9A00000A000009A00000A0000090090A0A00A000E90B00A00A0900A00A0A0A00900A00000A0A0A0A9A0B0009000A000000090990BFFDFBC9EFDFFFBEBDB0F0A9000909000000000000000000000000000000000FABCFB9F9FAFF9EDAFF0F000000A00A009A000000A09000A0A00A0A0900A009A09E000000900A0090B009000A0A009A0A9009009000000A00A0A90A9A09A0A0E0DBFFFCBF9FBFFFFDFADB09C0090000000000000000000000000000000090DBC9DFBDEFEFFDF0FFBFDA00A9A00090090A000A0A00900A000090A0000A0090A000E90A0B0A0A000A0A000A0A00009A00900A0A0A0A0A0A090A090000000000090B0BDBFFFCBCFFFFFFBFDADE9A900000000000000000000000009009000900B0BFEBCBFF9F9EBFF9EDE0CB0009A00A0A000000000A00A00B00A0900A0000A090A09A000000000A90000B00000B0A00000A0090090000900A090A0A0A000A090A90F0FE9FBFDFADBFFEDEBF9BC9CA90900000000000000000000000009000BC0FCBDFFF0FFEFFDADEFAFB0000A00A000000A0A9A000000000A000A009A0B00A0000E9A9A0A00A00A0B0000A0900000A9009A0A0A0A0B0A000A00000900B000A00A09A9BFEDEF9FFCBDFBDFCF0B09000000000000000000000000009A00A000B0BDEBCBFF9FF9EFFF090C0F0B000000A00A9000000B0A09A0009A00B00000000A0A0BC00009000900000BCA90A000B000A00000900900000B000A9A0A00000A00000A09CA9FBFFE9FFFFFFBF9FCBCBC90000000000000900000900900909090DADABDBFDFEF9FFDA09E0BA0000A9A00090000A00000000000A0000000A000A090000CB00A0A0B0A00A0A0000000A000B000A09A0A0A0A09A000B000000A0A9009A0B09A09FFDFFFFE9EFFEDEFA9F009A000900000000000090000DA0D000000AD0BDEF9EBF9EF9A0DA09C90A0A0009A00A0A000A00A00A0A0900A0A0000B000A09A0B0A09000000A90909A0A0A09A0000A90A00009009A000A000A0A00900A0A0000000B000BFFFFFF9F9FF9FDF0DB0DA9000009090900000009A09A0A9E9E9D0FCBDAFDF0F9E0FA000A0A009000A00A00000A90A0000090A0A0090A9A000B000000F09A0A9A0000A0A0009000000B0A000000A9A0A0000A90B090090A000000A00A0A000B0009F9FFEFFFFFFBEFADE99CB0B09C0000A9090F009F090D0009AEB9F0BDAFBFCBF90F09E9A90A0A9000000A09000000A9A000000A000000A0000A0A009E0000000B000009A0A0B0A000009A0A9A000000A9A00A00A0A0A00A90090000000A90000BCFFFFFFFFFFDF9FB9ACB0D0DA0B09090E0909A90F0F0BDAC99CFADFEDBCBF0CAC00A0000A0000A0B00900A000A090000A000000A0A0090A0009000E90A90A0A00A0B0AC0000090A0A0A0000000A9A00009A09A009000000A0A09A09A0000A900FBFFDFFFBEFFFFEDEDFBDA9A090D0ADA99F0BDEF0F0BCABDBEFADFA9BCBCBCB090090B0A900A00000A0A000A000A00A000B00B000900A000A00A0A9A90A00900090000B0B0A0A0090900B0A0B00009A0A00CA0B0A009A0000000000090A90000009FBEFFDFFFFFFFFBDBEDBD9E9AF99CBE9FCBB9F9FDBDDAFDBCBCFDE9E9E9E000A0A0000B000B0A000000009A000009A00A000000A000A09A0000E0A00B0A0A0A0A9000009000A0A0A000900A0A00090A90000000A00A9A00A00A00A0000A90A000FBDFFFFAFFFFFFEDBEBFADF9FEB9DB0BDFCF0F0BFAFDAFDBDBE0BCBDAC9E00900B0A000A00009A00A0B000000A00000000A0A00A0090000A00DBC9A0009000900A9A0A0A9A000090A0A000900A0A090A9ADA9A0000000900000A00A0A900900009EBFFFFFFDBFFFFFDFCFBEFE9FEBCFFAFBFFFFFCF9AFDAFEDBFCBCA09A00B0A00090A900A000009000000A0A90A00A0A009000900A0A00900A00AC0B0A0A0A0ADA09000009A9A0A9000B0A0A90000A00000000B000A0A09A0000090000A00000009FFFFFFEFFFFFBFFFBFDBDBDBDBF9FFDFF9E9FBEFDAFF90FCB0F0DAC0000090A0A000B00A0A0A00A0A000000009009000A00A0A00000A0ADB00B000009009000CA0A9A0A0090009A0000900A0B00B0A0B0A000A09000000A90A000A0090A0000009FDFFFFFFCFFCBDFFFFFEFEFFFFFFBEFFFFEDBDADBCFF0BC0000000B0A0A00000A0009000000000009000A0A0A000A00B0000009A0000ACB00A0A0A0A0A0B0B090AC90A0A90A000A00A00900A0009000D0A000A00A00900000A9000A0000000000AF9FFFFFFFFFFFFFFF9F9FFFFFFFDBF9FFFEFFEFF0E0CBC0000B0009000A9009A00A0A90A0B009A0A00000000A000000A009A000A00F90A090900000900000A009A09000A00B009A09A0A009A00A0A0A90A000900A00A0000000A00B00A00000900F9FFFFFFFFE9F0FFFFFFFADFBFFEFFFFDFFF0BF9F000A0A900A0A0A900A0000A000000000A00000B0090A000B0A0009A000A0900A0E900A0A9A90A0A0B0090A000A0A90A000A00A0009A000A090900A900A0A000000A000A090000909090000F0BC9BFFFFFFFFFFFFFFFDFFFFFFFFFDEBFC09E0E0CB009000A9000000A00A09000A0A00A00000A0000A0090A00900A000A090A0AF90CA000000A000900A0A009A9090A900A0000090A000A0900A0A000A900090A00090A00A000A0A0A009A0000CBFCBCBF9FFFFFFFFFFFFFFCFFDFEA9F0F009FDB00F0A0A900A9A0A00090A0A0090000000A09000A0000A000A0A900A900A0000CAB00B09A0000B00A0900B000E0A00A009A9A0A0000A90A0A000CB0000A00A000B00009000A090000A0000B0090AD0FCFFFFFDEDFFFFFBDBFFFE9FDE0FCA00BEDF000000A00000900B0A0000A0A00B00A900A000000A000A9000A000A0000A90BD0A000A09A9A00B09A0A00B09ADA909A0000900A900000009A9A0A9A0000000A00A00A000000A09000A9000B0AD0B0B0BCA0FBFFFEF0FEFCBC9E00BCB09CBCBFADA9A9000B0A0A0A0000B0090000000000000A09A090A000A9A00B000B0A00AC0A090A00A0000B00A0C90B0FADA9E0A000A00A000A0A0B0A0000000009A00A000000000A90A000A0B000A0A0090AC900CBDFBCB00909E90BCBC00BC9E0EB0BDADA0000A0A009000000B000A0A0A00A00A0A000000000090AD009A000A0009A0BB00A09A900E9ACBE9A9AF0F9FFFF09C0B09A009A00900009A0A9ADA0A00009000B0A9A000000B00000A009000A090ACB0000000000000000000F000A9090ACBDA9A0A00900A0A9A9A00A9E90000000000000B00A000A00A9A0BE0BE9000A000CF090A00A090A9BDBCB0DBFFFFFFFFA9A0AC09A000A0A0A00090E00090A00A00A000000B0A0A000B00090A00B00A0A90000000000000000000A00BCB0A0A09A0AC0009A0A090000000B00A9EB0B0A90A9009000000A009A00F00BDCBE9E90A909A0A090E90A09ADBFF0FFFFFFFFFFFCF09CB0A00A9000900A0A009A0A090A00A00A0A000009000A00A0A000A0090090A9A9A0000000A0900B09CB00009009A090B0B000000A09A0A0000B0F9F00000A00A0A00A000000A0DA0BFCBFF0F0A000AE9E900A90A09ADFFFCBDBFFFFFFFFFFA9EBA0DA900A9A0A900090A09C00A0900900900A000A0A0000000000000A00A0000000A0B090000A0000A0A0B0A0A0000A0000A00A000A0090A9ADFBF0E0A0000000000000A90A09ABDFCBFFDFFADA9A0B000A90A09CA9ABDFBF0FBFFFFFFFFBDF9FDFA00A000000A0B0A000A0B000A0A0A00A900B0000B009A00A9A0A00A00A9A00A090000A0B009ADA909000009A0B00B0A000900B0000A0009A9FCB0900A00A0000A90000090AC9EBFFFFFFDF0E000DBA90A90A0B00DAFBCBBEDFBFBFFFDFBFFFFFDAD0A90A90000009A9000A9000000A000A00A00000A00090000900009000A90A0A0A0000A0A000A0A0A0A00000A00000B0A0000A9000A0A9E9BCA000000000A0000A00A009AB9E9FDFFFFFF9F00BC00A9E9CB00B09F0F0C9BFDE9FBEBFDFFFF9E9A000A00A9A0B0A00A0B0E0B0A9009A000000B000000A00000A009A0A09000000909A0F0909A900090090A00009A0B00000A0000A09000DADA090A09A00A90000A00000A000E9FFFFFFFF0E0A0CA9E90B0B00B0BF0F0DBBE9A9B0F9F9FBFFFEDA00B090B00000000B09000000000A0000A9A000A00A000A0A000A00000A0A0B00A0A0900A0A00A00A00A000A9A0000000B009A0A00A0A9A0B0F0A000090000A000000A0900F9FFFFFFFBCE9090B9A9AF0F09AC9E9FFBEF0DADADF9EB0BDFFDBADA00A0ACA0A0B0B000A0A0B0A0A0000B00000000900900009000000A900000000000A0A00000009000000B0000A0A00A000A00009000009FFF9F000A00A00000A09A000A0B0ABFDFFFEDB0A0A0CF090A90E09A9BFFFF9FFBDBFBFBDADA0BBEDB009A909090900C0BCBC0900009009A000A00A0A0A000A0B000A90A00A0A9000A0B09090B0B00A0A0A0B0000A00090A90A0000A00A0A9A0A9FFE9E9000000A0000000090000BC9BFFFFDAC90000BA9AF9EB90A0FFFFFFFF0FADFDFFCB0BDFDBF0E9A00A0A0A0ADABCB0A9A0B0A0A0A00A09009000000A00000A00A0900000A0B0000A0A00000A90000000A0A90A000000090A0090000009BFFFFF0A00A00000A90A00A0A0A90BEDFEFDA0B0A9A09DAF90B0CA9FBFFFFFDA9F9FBFFDBE9FBFFFFCB000A9E9C9ADABDFBE9E0000900000900A0A00A00A00000A0000000A00A000000A000000A000000A90A09000090A00A00A09000A00A00BEDF9F00000900A90000000000090EBDBF9FA0F000000EB09EBCB09A9FFFFFFFF0A9FFFFFF9FFFFFFFBC0B090BABE9BDFFFDF090B0A0A0B0A0A0000009009009A00B00A9A0000900B0A90A900B00B0A0A00A00A0A0A0A00A09A00A00A00B00B009BBE00A9A000000A00A09A009A0A90EBCF0DA0A0A0009EB90B9E0A9ADFFFFF0DBCA9FFFFFFFFFFFFDFBC00AC9DBDFFFFFFFEFA0009000000090A90A00A00A0000000000009A00A00000000A0000009009000900909000900009000900000000A0C09A900000A00000000000A0090A900B0A0909090A0F90E9E09A9CBBFFFFBFA09BFFFFFFFFFFFFFFF0B0B0BBFFFFFFFFFFF9CB0A0A9A0B0A0A00A00A00A00A00A00A00A0A00A00A00A00A00A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B09A9A00A00A000A00A00A00A00A0A9A0B0A9A0A0A0A00B0A9A09A00B9FFFFFF000B0FFFFFFFFFFFFFFF9E00BDFFFFFFFFFFFF0A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000105000000000000B4AD05FE,'Education includes a BA in psychology from Colorado State University in 1970. She also completed "The Art of the Cold Call." Nancy is a member of Toastmasters International.',2,'http://accweb/emmployees/davolio.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(2,'Fuller','Andrew','Vice President, Sales','Dr.','02/19/1952','08/14/1992','908 W. Capital Way','Tacoma','WA','98401','USA','(206) 555-9482','3457',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D20540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00F00000000000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000C00BFE000000A9000FFFFFFFFFFCFFFFFFFC009FFC00000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB09F00000000FCBFFE9E0BFFFFFFFFFF0FFFFFFC09FFFE0000000000000000000900000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000009009F09FFC0BFFFFFFFFFF0FFFFFFFFEFFFC00000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0B00000FF0000000BFFFFFFFFFFFDFFFFFF0F9FE0000000000000000000000000000000900000000F00000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE09FFFC0A9F0000FC00BFFFFFFFFFFFEBFFFFCFFEFC00000000000000000000900000090000000000000F0000000000000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF009CBE09C00000000BFFFFFFFFFFFFFDFFFCBFC90000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0009FF0BFA9F0A9BFFFFFFFFFFFFFEFFFFFFC000000000000000009000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF009FCBC0DFFFFDFFFFFFFFFFFFFFFF9F0FC000000000000000000C0000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00AF0000000000BFFFFFFFFFFFFFFFEFE0000000000000000000D000000000000000000000000000000F00000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9FC00BF0090BFFFFFFFFFFFFFFFFDFC00000000000000000C00000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD09EBFC9ADAFFFFFFFFFFFFFFFFFFFE000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000009FFFFFFFFFFFFFFFFFFFC00000000000000009C0000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BFDBFFFFFFFFFFFFFFFFFFFFFFF00000000000000090000000000000000000000000000000000000F00000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FDB9FFFFFFFFFFFFFFFFFFFFFFFE00000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDBFFFBFFF99FFFFFFFFFFFFFFFFFFFFFC00000009000000000000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBBFFF9FDFBDFFF9BFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000F00000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFFDFBDFFBFFFBFFFF9FFFFFFFFFFFFFFFFFF0000000000000000000000000090A0009CB0DA9A9AF9E9BE900A00F0000000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFBFFBFBFDFBFFFFF9BFFFFFFFFFFFFFFFFE00000000000000009CA90A90F00C90BDA9ADA9FF9F9E9BD9B0C9C0F0000000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFBDFFF9FD0F9F9DFBFFFFF9FFFFFFFFFFFFFFFC0000000000000DADA99E09CB0F9BCBDAD9F9BDB0BCB9ADAFCB9A9FF000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFFBF9FFBDA9F0AD0B0A09DB9BFFFBFFFFFFFFFFFFFFE0900000009CB0B9BDA99F9BDB0F9B0B9AB0F9ADF9BDADB99BCBDA9F00000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFDBFBFDBFCF0F0FDFCBDAD0D9F0BEFDFBFFFFFFFFFFFFFFFFC000000000009CBCF0BCB0F0BDB9E9F9E9DB9E9B0F0BDB0FE9B9ADBF0000000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFDBFFFF9FF0F9FFBCB0BD0F9A9E00D090BDFBFFFFFFFFFFFFFFC0000000C0B9FB9B9BDB9F9BDA9E9B9E99A9E9ADF99F9ADB99F0F9EF0000000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFBDBDBDADEADBDA9C9F9F0FBDADA9DB0F0F9E9DBFFF9FFFFFFFFFE000000B09DA9CBCF09E9A9E9F9BD0F9ADBDB9F9A9E9ADADBE9F0F9F000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFBE9FBFBE9FDBDBCBCBFBC9E9F9E0DBDA0DB09E09E9CB9FFFFFFFFFFFC00009000A9FB99B9F09F9F9B0F0B99E9ADADA9E9F9F9B9AD9A9B0FF00000000000000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFFFDF9FDFBCDFDADA9E90B9C9CBFBCBFDBF0F9FBC9E99E9AD0FFFF9FFFFFFFE0000C0DBDB0DAD0F0BC9BCBCF9BCBC9BDB9BDB9F0B0F0F9BE9E9F9F00000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFFFFDBBBFFB9CFB0BCB0F09FDE9FA90DB9CBD0F9E9CBF99E90F9A90BFF9FFFFFFC00000B9A9ADB9BF0BDBBCB9B9BCBDBBDA9EDA9E9B9F9F0BC9B9F9AF0000000000000000000000000000000000000000000000000000000009FFFFFFFFFFFFFF9F9BDFCB0DCB0DBC9DBDBF0A9E99FF0FCB0FB9E9FBC9EB0F09EDBCF9BF9BFFFF000909CBDBDB0F09BCB0DBDADADB9A9CBDB9B9F9E9E9A9BDBFCB0F9F9F0F0D000000000000000000000000000000000000000000000000000FFFFFFFFFFFFD9BF9FFB9FCB0BCB0DBE9E90DBDB9E09CB09AD0DBDA9DBD9C99E99E9B0F0FFFFFFFC0F0A9BCBCBCB9F0B9DB0B0F9B9E9DB9B0F0DA9F9F9F9E9A9B9DB0FF9F99BBF990C000000000000000000000000000000000000000000000FFFFFFFFFFFB0BFF0FBCDADBC9E9BCB0D09AF09E0D9F9A9F0DA9E09D0A00F0BCBDA9F0F0F0FB9FFF00009CBDB9F9BCBDF0B0F9F90FCBCB0F0F9BF9F0BCB0F9F9F9EB0F9FB0BDAFDBCF9AD09A0CBCB0000000000000000000000000000000000BFFFFFFFFF0BD9FF9F9C9ADA09F09C9CB0BFD09E99FA9AD9E9F9F99F0F9F99BD9B0FD0FF9F9E9FFFF009ADA9B0F0BCB9B0B0F9E9AF9B9B9F0B90F90B9F9BDB0BCBCB9DB0F9F0BD9A9B0F90F0DB909FF000000000000000000000000000000009FFFFFFFBC9F9EF9F0F0BC9A9DA99E9A9CBD0BFD9E90DFDA9F9BCBCBCBDBCBEDBEDF9BF99F0F9E9BFFC00009C9F9BDB9E9F9D0B9F90F9E9E9F0DB0FBCF0BCBC9F9BFC9A9FBCBDABDBC9B9EB9BADBFA9AF0000000000000000000000000000000FFFFFFE90BDADBF9E90D0BC9E90E90F0F90BD0BA9FFB9A9F9E9F9F9F9F0DBDBCB9FBE9EF0BF9E9E9FF009090B0BCB0D9BCBA9BCB0F9BCB99A9F0BD09B9F9B9BA9E99BE9A9FF909DADB0DB9DAD9BC9DBD9C00000000000000000000000000000FFFFFD09BDFB9F0BC9E9A9C9A90F9CB090BDA9F9DF09FD9FDADBCBDBDE9BFBDFBDCBD9DB9FDFFBFD9FE000E000D0B9FBADBDDADB9F0BCBDAD9F0BCBFBCB9E9E9DB9FAD9BDBF9A9FAB90DA9F0B9ADB9BE9ABC000000000000000000000000000BFFFFCB9BCFB0FD0D0A909CB09CB9CB0FDBCBDF9EBDBF0BE9BDBDBF9E9BFFD0FBDFBF0FB0DBF0FFDBE90009090B0B0DB0D9A9A99EDAD9BDA9BAB9F9B9CB9E9F9F0BCBDBADA9F9DA9D9E9B9E9BC9FA9E99F9CBC00000000000000000000000009FFFE99DADB0DF0B0BD00F0B0FA9C0B9DB0DBDA9F90F9FFFDBDBFFDFF9FDBDBF9FBFDBFF9FBCBF9FAF9FBC000AC00C9ADB0BDBDADB9B0F0BDAD9CF0BCFBDF9B0B0F9BDAD9BDAFABDABD9ADB9E9BC9F99E9AF99B0000000000000000000000000FFF99EBDBDFB09E9C00F09FC90DBDB0F0DBADBD0BFF9F99FBFFDB9B9FFBDFBDBF9F9FDBDFDBDDFFDFFAFDBF090090009A9F0BCB9ADADB9F0BDAB9BDB9F0B0FDBDB0BCB9AD0BDF9DA9DABD0BDBD0B0F9E9BD9AD0F00000000000000000000000BFF09E99ADB0DB0009A99F009BDBCB0F9A9CDBCBFDBDF0FF9BDBFDFFFF9FFBDFFDFFFBFFFBFFBA9FBF9F9FCBC009A090E9C9BDB9CB9F9CB9F909DADADA9F9F9ADADBDBF0F0BCBBDA9FA9D0BCB9AB9F9A9BCBE9BF9B0000000000000000000009FE09F9DAD9ADA0D0F0D9E09FF0F0B9F9E9DBA9DBDB9EBFDBFDFFDBF9F9FFF9FBFBF9FFDBDFF9FDFBDFFDAFBFB0000000909ADA9CBBCB0BBCBCBEB9BDB9F9E9ADB9BC9A9F9BDB9DBDA9DBAF9BCBD0DA9F0DB99E90D0F00000000000000000000FF99BCB0F0E90DA090B0A9DB09F9FDE9E9DA9DEBDADFFDBFDBFBFBFFFFFF9FFFFFDFBDFBFF9FFFF9FFBDBFDBCFF009CB00AC99FB9C9BDBC9F9B990FCB0F0F9BDB0F09BDF0BC9ADFCB9E9D90F9BDA9BDA9F0DA99EB9BCB000000000000000000BF00DB0DB9B0F0090BC9D0BCBDA9A9B9E9A9FBF9F9FB9FBDBFDFDFDFF9FFFFFFFDFFFFFDFBFFBDBFBFDBEFBFFBD9F00000900AC9FABC9ADB0BC9E9B9BDB9F0F0F9F0FA9A9F9BF9AFB9E9BEBD0BDADBCB9F0B9F0F99E9BDF00000000000000000FC0BD0F90D0D00F0D09A9F9BDADBDF0F9F9F0D0F9FBDFFDF9FFBFBFBFFFF9FF9FFBFDFFBFDFFDFFFFFFF9FDBDFBEBF0090C0909B0D9B9F90F9BF0BCBCB0F9BDB9E9BD0F9F0F09E9F9E99E990BDADB0B9E99BDADB9E99F0B0000000000000000BF0BDA99ADA0B0909A9F0F09E9FBCB9F9CBC9FBF9FBDFBDABDBFDFFDFDF9FFBFFFFFFBF9FFFFBFBFDFFDBFFBFEBFFDF0000B00A9ADBA9E9E9B0F09DBDB9F9ADA9E9BDA9BDADB9E9FDB90F9BCBCBDB0DADBCBCB990F9EA9F9F000000000000000FC0DADBC9009C9E0F9CB9F9F9F09FDADBF9FBDBDFF9EBDBFDBDBFF9FBFFFFFDF9F9FDFFFFFBFDFFFBFFBFFFDBDF9FAFF0000909C9A9DBDB9E9F9F9A9BCF0FDB9F9F0BDBCB9F0F9B0BEDB0F0B090BDB9DB0BDBDAF9A99DA9EBC9000000000000BFC09D09AD0DA0099A0BCB0F0F9F9BDF9CBF9E9F09FF9FF9FBDBDBFF9FDF9F9FFFBFFBDFBDFFFFBDFFFFFFDBFFBDFBDBDF0900C0009E9A9E99A9E9F9E9B9B0BCF0F9F9A9BDA9B0F9FF9B0F9BD0BDB0F0BDBD09AD9E9F0B9F999AC00000000000FE09A9BC90B0090F0D9DBDBDBDBFCFBB9B9C9BDBFF9FDBDBDBDBDF9BDBFBFFFF9FDBDFFBFFBDF9FFBDBFBDFFFDFFBDFFBFE00B09A9C90DB9F0DBDB0B9F0F0F9B9BDA9E9F0BDBCB9E9FB0F9BC0BCB0F9BCBDA9BF9A9B0F9E9ADADB0000000000FF0DA9F09000C9E9ADB9EB0FBDAF9BBFCFFCBBDADBDBCB9F9FDBDA9FDBF9FFDB9FFBDBFBFDBFFBFFBFFFDFFBFBFBBDBFF9FF0000000B0FBADADB0B0F9E9F9F9BCBCB9F9F0BDBCB9E9BDF99ADBD09BDBCBBDBDAD0BD0F909BDB090BD000000000FFF09C9E09E9B09F09AF99F0F9F9FDDBDB9BDFDBDFBDBDFBDADF9BDB9F9F9FBDFBDFFDBFDBDFBDBDFDBFFBFFDFFDFFF0FFBDF0000D00909DB9A9F9F0F9F9A9ADBDB0F0F09E9BFCB9BCBCF9DA9A9CBDB9D0B0BDBDABD0FBC9ADBDBCB9000000009FFC9B0900000F09F9DBE9F9FF9FABDBBCFF9BE9BC9FFBDBD9B0FDADBDBDF9FF9FBDBFDFBFBDFFFBFBFBFFFBFBFBF9FF9FFBFF090A09E9A9E9D0BCB90B0F9F9F0F9F9B9FB9E9BDBCBBFB9A9DBDA90BCB0BDBDA9BD0B9909BDB0B09F0E00000000BCA09F0C90D090F0FBC9F9F0BFDDFBFC99BEDBFDBF9D9EBFBDB9F9BDBDB9FF9FDFBDBFBDFFFBDBDFDFDF9FFFFDF9FB9FF0FDF000900009F9F0BDB9E9F9BCBCBB9E9ADA90F9F9ADBD0F9E9FADA9CBDBDBCBD0B9E9BDBE9AF9E9C9FB09000000000099F00B0B0BE9BDBC9F0BF9F0BBBDF9BFFDBDB9F9FBBF9C9F9F99FD0BDFB9FFBFFFFFDF9FBDFBFFBFBFFFF9FBFFF9FF9FBFBC0000D09E9B0BDA9E9DA9E9B9BCF99F9F9F9ADADBE9FF9B099BD0B9E9A99A9F0DBC9A99F90F9B0A9CBC0000000000CB0B000DBC9CBC9BFBFC9F9FFDDF9FF9BBFBDFBF9FD9FBF9F9FFBBDB999F9F9F9F9BFBFDBBFDBDFFFFFFFFFFBFFFFBFFFFFF009A0A09CBD0B9F9A9BDB0DADB9AF0BCB0F9BF9BDA9FEDBCBCBD09BDBCBDA9F0B9E9E90F9AD9D9B99BC900000009AD9C0DA09BF99BFDBD9FBFF9BFBBF9FFDFDBF9F9FBFBDBDB9F9FD9F9FF9F9F9DBDFD9F9FDFBFFFBDBFF9FBFDFDBFFDBBFDBFF009009A9EBD0F0F9ADADB9F9E9DBDB9E9ADB0F0BDADB90B9F9A9E9BC9A9F90BDA99BDB0BDB0BADAF09AC000000099A0909DAD0F0F9BCBFBDADFF9FDBFBDBFBDBFFF9FDFBDBFF9F9BF9F09F0F9EBDB9FF9FFBFFFBFFFFDBFFFFBFBF9FBFDFBFFF000C900999A9BDB0DBDB0F0B9FA9ADB9F9BDB9F9E9FBCB9E9A9CB9E9B9DB0BDA9FBCB09CB0F0D9F99E900000009CBC0B0F0B9F9FDADF9FDBDBF9FDBFBDBDFDFFF99BDBBDBDF9FBFFD9F9F9F9F99F9FF9BFBDBDFFBFBFFFFBDBDFF9FFFDFBDFFF000B00B0FAD0F0BCBA9ADBDBCBDBDB0F0F0F0F0F9BF99E99BDA99F9E9EB0F09F909F9E9BDB99AB9CB9F90900000B909C99BC9A9FBDBBDBF9BF9FFBFDFFFBFB9F9FFFBDFBFFBF9F9FBFDBDBDB0FF9F9FBFDFFFFBDFFDFFBDFFFF9FBDBFBFFFF9FF00000C909BB9F9BD9FDA9ADB9BDA9F9B9BDB9F0BCBE99E9E99E0B9BD9F9BDA9FB0B99E9ADAD9CBBCB0F0A90009CBCA9AC0F9FD0F0DFBFDF9FF9BDFF9F9FFDBFF9F9FBFDBDBFFFF9FBBDBDBD99BDBC9DBF9FBFFFFBFBDFFBDBFBFFFFDFFFFBFFFB09C90AD0D0F0F0B0B9F9F9E9EBDB0F0F9BCB9F9BFDBC9B9BC9BDADA9A9E99F0DBDE99BDB9B0B9CB9F9F9CB909B9090D9B9F0BBDBF9F9FBFBDFFBFBFBFBDFF9BFFF9FDBFBFDBF9FFDFBDADBC9CB9BFBDBFDFFFFBFFFBFBFFBDFDFBFFBF9FFFFBC00A0090B0B9F9E9F9E9A9E9FDB0FDBD0BCBDA9E9FB09BE9E9BDADB9F9F99EB9BF0B9ADADA0DBCB9E9A90B0C0BDA09E9ADADBDFDBDBFFBD9FFFBDBDBDFDBF9FFDB9FDBF9FDBFDBF9F9DBDBDBFB9FDBDBDFBFFBFDF9FDFDFBDFBFBFDBDFFFFF9FF009090BC9BCB09B9E9BDBDB9A9F9A9ABDBDA9F9FF9DAD9F9DA9DBC9ADBCB9CBC9BDADBDBD9A9BD0BDBDBDB90DAD009F9F9F0B9FA9DBDFBFDBDFFFFFFFBFDBDBFDBFBDFFBFFDBDFBFFFBDBDBD9FDBDBDBFDBDFFFBFFBFBDFBFFFFFFFFBFFBFFFF0000E00B0F9F9F0F9F0BCB0F9F0F9F9DBCB9F0B0FFA9A9BA9DA9BBD9A9BCB9FBDA99A9A9AD9CB9F0BCB0BCB0990DA9CB0F9FDADFBFDBDFBFFBDBFFBFDFBFBF9BFF9FB9FDBDBFBDBDBD99F9DBDBDBD9FD9BFBFFFF9FDBFFBDBDBDBFBFDFBDFBFFF0090909C9A9E9B0F9F9BDB0F9F0F0F0BBCB9FDBF09F9FC9DA9F0DA9DBCB9E90BDBC9DBD9A9B9E99F99F9900BE9A9CBDB9E9BFBFDBFFFBDF9FBFF9FFBFFFDFFBD9FBDF9FBFF9FBDB9FFFFFFFF9F9FB9BFDFFFFFBFFBFDBDFFFFFFFFFFBFFFFFBF0000AC9A9F9B9CB9E9E9ADB9EB9FB9BDFBDA9ADF9F09A9BA9FBDB9EB0B9CB9BCBCB9BE9A9CBC9BF0BF0F0F9C90C9B9CBD9FD9D9BFDB9FFBFFDFFFFFFFBDBB9DBFBDFBBFDB9F0DF9FDBFFDBDFDBF9DFFDBFFF9FFF9BDBFFFBF9FF9FFBFFFFFFFF00090909CBCBCB9F9F9BDB0F99F09E9E90BDBDBFB0DBDBC9CBDADA9DBC9BDE9F9BDAD9BDA99BF09F09B0909BCB9ACB9FAF9BFBFDBFFF9FDBFBFBFBFBDFFFDFBDF9F9FD9F0D9B9FD9BDB9F9BF9FDFBDBFFFFFE99FFFDBFBFDFFFFFFDFFFBF9FFF900C0A0B9BDA9CB9E9ADADBDBE9BF9F9BFCBCB0BCBA9ADB9B0F9BDA9F9E9B9A9E9BDAF09DAD90F09F0DBD09F00D9BCB9DBCF9FBF9F9DFBBDFFFDFFDFBFBFFBDBBF9FBF09B9D9F9BD9FDBDFDBDBF9FFDFFFFF9009F9BD9FBBFBFBFBFFFFFFFBDFE09A90C0F0BDB9E9BDB9F0B0F9F0F0BCB9BDBDBDF9DBDBCADB9FE99F0B99E9DB9F0B99FB09B0F9BDA9B0B0FB09A0DBDBBDB9E9FF9FFB9FDFBF9FBDBFFFDFBDBDFDBD9DBD9CB99BDBF9BDB9FDB9DBD9BD990000909ADBF9DFDFDFFFFBF9FFFFFBF00000909BDA9E9BCBCF0F9F9ADB9F9BDE9A9ADFA9ADADB9B9F099E9BD0F9FB0F0BDBE909E9F9BCB9F09CB9C9E9DBF0FDA9FDBF9FBFDFDBFFFFFFFFF9FFBDF9F900000909B9CBD9D99C90909090900909009DBDCBD9F9FFBFFBFDFFFFFFBFFFFF009CB0B9E9BD9ADBDB9B9F0BDB0F0BCB9BDBDAF9C9B9AD0DADBDA9ADA9AF0DB9F9AD9BDA90BCB9E90DB09F0099A9DBF9FF9BFDBF9BFBFFBDFFBDBFFFF9FBDB900B090900909009000909C9AD09099CB09F9BDBBDBFBFF9F9FFBFBF9FFFDFBFFF000000CB9E9ADBDBA9E9E9FDA9F9BDB9FCBCB9FBBC9F9B9BDB0BD09BD99BF0F0BDBBCB9DBDB9CB9E90090BF9AD9F0FDB9EDBDBDFFDBDBDFFBFFFF9FFBFDFBDA9D9BDB0D90D0909B9DBD9BD99F9F9F9DBD9F9FDBF9FDFBFBF9FFFFFFFFFBFFFBFC09A9090F9F9A9AD9F9F9B0BDA9E9ADA9B9BCBFC9BA9F0F0BDF9A9F0B0F09B9F909CB9E90B0FB9E90000FD00DABCB9BDF9BDBFBFBFDBFBFFFFFFBFFBDFBF9F9FBFDBDF9BDB9DBD9F99BD9F9F9BDBDBBDFBDFBFF9FFBFFDFFFF9F9FBFBFFFF9FFB00C0A0F0B0F9F9BE9A9E9FF9BDBDB9F9E9E99B9BC9CB90BDA9AD90B0DBDBFCBCBFB9E90F9DB9C9000099B09B9DB9F0F9BDBF9DBDFFBFDFBDBF9FDBDBFF9F9FBFDBF9BFDB9FBDBDBDBDFBD9DBD9F9DDBF9FBDF9FF9FF9FBDBFFFFFDFFFDBFFFFC09A9099BDF9E9BC9F9F9BCB0F0F0BCBCB9BCBFD09BBDAD0B9F90FBD9A9BC9BDB090F9F90ABC9B9F9F90E90BC9ADF9FCBFF0FFBFF9F9FBFFFFFFFBFFF9FFFFFDBFDFFDBFDF9DBDBDBDBDFFFBDFBDBFBDBFFFBFF9FFFFFFFFFF9FBFBFFBFFFFBFF00000CBCB0B9F9FA9A9ADB9F9B9BDBDB0FCB0BEBC9CB9B9CB0F909AD9E9BF0BCB9F0B0F9D9BD9FDF9F99E9CBF9A9E9BD0FBD9DBFBFF9FDBFDBDFDB9FF9FBFDBDBF9F9F9FFF9FFDBDFFFFFFFFBDFF9FFFFFFF9FFBFDBFDBFDBFDFDFBFFFF9FFBF009CB00BDBCB0F9FDBD9ADF0F0F0B0BDB9BDBF99B0B9E9CB9F9E9F9BA9F09F9B9E9BDB09A9DBFFBFFFF090A90F9F9F9BF9FBFF9FDDBFFBFBFFBFBFFF9FFFDBFF9FFFBDBF9FF9F9FFBFB9F9DBDFBDFFFBFFFFFF9FDBFFFFFBFFBFBFDFFBFFFBDFF000009B0F9F9FA9ADABDB9F9F9BDBDADADA9F0F0D9E90B9E9A99A9C9DA9FBCBCB9E90DAD9FF9DFFDBF90F9DF9E9EBDF9F9DBDFBFBBF9FDFBDF9FDF9FFBDBFDBFFB9FF9F9F9F9BF9FBDFBDBFF9FFFBFDFDBFF9FFBFF9FBFFF9F9FFFBFFFBFFFFF09A09F0F9B0FBD9F9BD9AF9E9ADAF0F9B9F0DB09AB9F9CB9F9E9DAB0BDB0DB99CB9F9B9BF9FFBDBFFDF09E9AD9B9CB9F0FBFBF9FDFFFFBDFBFFFBFFBDFFBDBDBFDF9FF9FBF9FF9FDF9FDBF9FBFBFDBFFBF9FFF9F9FFFDF9FFFFFBFFDFFFDFBFFC09C009BC9FBCBE9ADAF9E9B9F9BDB0F0F0BBDBC9DA9A9E90B9A9D9F0BDB0FA9BCB0F0D9FF9FFBDBFFF909F9AD9FBDE9F9FD9FF9BF9FFFBDBDBFDBDFBDBDBFFD9BDBDBF9DBF9FFBFFFBFDFFFDFDBDFBFDBFF9FFFFF9FBFF9FF9FFFFFFBFFBFFFF0090BC0BB0DBDBD9BD9F9F0F0F0BDB9F9F9FB09B0F9C99BDBC9F0B0BDA9F9DADB9F99FBDBF9BDF9FBF0DB0BDBC9F9BDBF9BFF9FF9FF9BDFFFF9FBFBFBFFFDBBFD9E9F9EBDBFF9FF09FFBFFDBFBFFBDBFDF9FBDBDBFFFDBFBDFBDBFBFFFFFF9FF00A009BD0FB9F9AF0BA9E9BDB9F9F0F0BCBF0DB0DB0B9BCB09B0F09DA9DB0BDB9E90FF9DBDFFF9DBFD0B0FDBCBBF9F9F9FFDB9F9FF9FFFFBDBFBDFFDFDF9FBDDBF99DBD9F9F9FF9FBDBDB9BFD9F9FFDBF9FBDFFFFDBDBFFDBFFFF9FFFBFFFFFFC090F0DA9BDEB0F9F9DF9BCB0F0F0B9FDB9DB9CBB0D9E9BDBC9F9FA9F9ADBCB0F9DB9DBDB9F9FFBDF0DBD9ADB9D0BDBFE9BBFDBF9FFBDBDFBDBDBDBFBFBF9FFBDBBFBDBF9E9FBDF9DBF9FDFDBFBF9FBDFF9FFB9FBFFBFDBFFBDFFFFFFFF9FBFFF0000B0FBCBBDF9B0FAB0F9F9BDBBCF0BCFADA9C9BA99ADB0B0B09DA9F9A9BDB0B09FBFFDBFF9FFBFB00BDB0DABDF0F99FD9FBDBF9FFBFBFDBFFFBD9FDFDBD9FBDFDF0DBDB9D9BFFF9EFBFBFDBDFFDBFBDF9FFFFDBDF9FDBDFBFBFFBFFFFFF9FFA0900909BD9A9E9F9DBDA9BCB0D9B9F9B9FBD0B9C9F0D9AD9C9F9A9F09DBCB0DBDBD99BFF9FFF9FDC9F09F0BD9A9F9FF9FBDFBFDBF9FDF9FFDBDFFFBBFBFFFBDBDB9FB0F9FBFD9F9F99DBDFBFFFBFDBDBFFBDBDBFFBFBFFFBFDFFFFFFFFFBDBFC000DADBCBF9F9F9EBDB9F0F9FBEDA9E9EF90B9E9B09BAD9A9B9E9F09FB0B9DA9BDBFFFDFFBFFFDB0B09F0BDBE9F9BF9FBDBBDDBFDFFFBFF9FFB99BDF9FF9F9F9FBDBDF9FDBDBFFF09CB0F9FFFBD9FFFFDBDFFBDF9FDFDFBDFFFFFFFFFBFFD9FF009A090BF0F0B0FB9E9CB9B9AD9B9F9F99E9C99AD9AD9B0DADA90BDB0D9F0B9FDFDBDBF9FFF9FBF09FE9F9E99F9FCBFBDBFDBBDBF9F9F9FFBDFFFFDBF9FF9F9F9F9DB99BFDBFD99F9B9DBF999FFBDBDBFFFB9FBFFFBFBDFFBFBFFBFFFFFFBFFF000090F9DB9F9F9ADBFB0F0F9BE9E9E9BF9A9EB9AD9AD0B09BDBD0BDBA9ADA9BBFFF9F9FF9FFFDBD009ADB9E9DA9F9FCBDBFDBF9FFBFFF9FFBDF9BF9DBFBFFBF9FE9DBFD9BDBF009FDB9DBFC0909BDBDBDFFFDF9F9FFFBFDFFFFFFFFFBFFFFBFD009E90ABDA9E9F9F09F9BDBC9BDB9F0FFE9099E99ADBBDBC909A9F09DBD99DFDBDBF9FFBFF909F0BDBDB0D9BE9FBDB9FBDBF9FFBDFDBDFF9FFBFF9FF9FDFBDFF99B09DBC0009DB9B9FFBDFB99F9DBF9FF9BDBBFFFBDFFFBFFFFFFFFFFFBDBDFE09A00F9DBBDB9E9BFF0BCB0BF0BCB9F9B99F9E9DADA9C90B0BF9F0BCB09A9FBF9FF9DF9FC909FB0DAD0FD9BE9F9DBFDBDBF9FF9DBFBFF9FFF9FF9FBDB9FBDFB90F9FDB09B9D9AD9FFDBDBBFFF9FBFFFFB9FFFDFDBDBF9FFFFFFFFFFFFFFFFFFF0000909AFCB0F9BCB99F9F9F9FDB9E9BFCB0B9B09BDB9AD9F090BD9BDBC9FBDFF9FFA9F9909BFDA9B9B0BAD99BFBF9BFF9FF9FBFBDF9FFFBFF9FFDFBDF9FBDFDF9FFBDBDBDBD9BFD9FFFDFF9FFFFFFDBDFB9BFBFFFFFFFDBFFFFFFBFFFBDBFFF0090E9BF9BDF9E9BCBE9BCB0FA9ADB0F9F0D0F0F09BCB9A99F9F0BC9A9A99FF9DBFFDB9DBFDBFC9CBDE9C9BE9DA9FFD9BF9FF9FDFBFFF9FFDFFFFBDFBDBBDF9BDBDBDBFFDBCBD9FBFFBFBDFF9BFFFFF9BDDFDFFF9FDBDFFFBFFFFFFFFFFF9FFF90E900D0F0B0BDBDBDBCB9F99FBDADB9FB9A99B9ADA9F0DA90B09F9ADBD9FF9FBFF99DBFFF9FF9A9DA9DBFC9FBDF9BFFF9F9BFBF9FDBFFFFBFFF9FFBDBDDBBFDB9FBDFD9BF99BF9FFFDFFBFFFFFFFF99FBBFFBDBFFFFFBFFFFFFFFFFFFFF9BFFC0909A9B9F9F9ADABF9BDA9AF9FBDBCBF90DBCBC9B9F09B9CBD9F9AD9B0BFBDBDBD9FBDFF9FFD09DA9BE999BF9F9FFDB9FBFDFFDFFBDBDBDFFF9FF9FF9FBFDF09FD9FB9FFD9FF9FFFFF9FFFFFFFFFF9FFFDF9FFFDFBF9FFFFFFFFFFFBFFBDFFBF00AC09EDADA9F9BD09E9F9F9E9CB0BDBCB90B09F0F0F0DA90B0BC9B0D9FDDBFFD9BDFBFFFDBF0B0DBD9BCBDBCBF9FBDFBDFBDBF9F9FFFFBDFFFFFFDBFF99F9F99FF99F90BF9FF9FF9FFDBFFFFBFF9FF9FFBFF9FBFFFFFFFFFFFFFFFFFFF9FDFF0909A9B9B9BDAF0BFF9BCB0F9FB9FDBFBCBDBDA99B99B09F9C99BC9BA9BFB9FFBF9BDF9FFBFF9CBBCBE9F9ADBDBF9FBDFBDFBDBFDF9F9FFF9FBDFFFF9FFBDBDB09BFDBDBDBF9FF9FBDBDFFFFFFFFB9FF9FFFFFFFFDBFFFFFFFFFFFFFFFF9FFFFA0009CADADA9DBD90BCB9F9BF0F0B0FF99090B9CBCBC0F90B9BE99AD9FFD9FFFDFFDBFFFB9FD009C999F09F9FBDFBDBF9FBFDFF9FBFFFBDBFFDFBFBDFF9FFFBD9F99BCBDBD9F99FFDBFFBFFBDBF9FFFBFFF9FFDBFFFFDFBFFFFFFFFFBFFBFFBFD09E099BDBDBA9AFFB9F0BCB0F9FDB9BDA9EB9CB09B9B90F0F099E99BDB9BDFFB9F9FDBFDFFF0BDB0FF0BF0F99FBDBFDBDFDBBDBFFDB9FFFFFFBFDFFBF9FDBD9F09FDB9F9DBF9FFDBFDBFFFFFFFF9FBFDFBFFBFFFDBFFFFFFFFFFFBFFFBDF9FFF0009A9E9A9F9F9F90F0BDB9F9E9A9FF9C99C9A99F0D0CB990BCB90F9FF9FBFFDFBDBFF9F99F090FB09F9DB9FFBDBDFBFBFBDFBD99FFFDBDF9FDBFBDFDFBFFFBDBDA9C9F9A9DBDBFDBFFFFFFFBDBFFDFBDFFFDBFFBFFFFFFFFFFFFFFFFDBFF9FF0090CB9F9E9E9F0BF9F9ADBE9BBDE9EB9A0BD9E90B9B9CB0F99ADB09BDF9FFFBDFBDFFFBFF9F0D9F9F9EBDB9F9FFBD9FDBFBDFFFBDBDFFFBFBFDFFFBF9F9FBDBDBDBB90F9F9FBDBFDBFFFFFFFFFFFBFFBF9FFFFDFFFBFFFFFFFFFFFFFBFFDBFF9A0A90F0B9F9A9FDADADB0DBCDA9BFF9C9D0B090F9E90B9D0B0D099FFF09FBFFF9F9BFDF09F09A90F9F99BCB9FBDFBF9BFDFFBDBDBFBF9BDFFDBF9FDFFBFFDFFFDBDDF99F9F9DBF9FFFFFFBFFFFF9FFDFFFF9FFBFFFFFFFFFFFFFFFFFFFDF9FF0D090F9BD0BFDF9ADB9BCBBDBBDBCBF90B0B9DADB090BD0B09DA90F9B99FBDFFFFF9FFF99F00DBDBDA90FDBDFF9F9FBDFDBDBDFFFFDBDBDFBDBFBDBBF9FD9BFBF9F9AB9FDF9FBFDFBDFFFFFFFFFFFBFBFFFFFFBFFBFFFFFFFBFFFFBFFBFFBDBFF0009B0F0FF9B0BF9ADE9BDA9CBCBDBE9CBCB0909DBC0BD0F9A9A99FDFF9FFFFBDBD9FFCB9F9A90F9BF9B9F9B9FBF9FDBFBFFFBFF9BDFBFBDBF9FFDF9F9BF9FDBF9F9DF9B9BDF9F9FBFFFFFFFBDFBDFDBFDBFFDBDFFFFFFFFFFBFFFFFF0BDBFFC09ACBDB9B9E9FD0F9B9ADBDFB9F9BD9A999ADA9A99B09A900D9D09BF9F9BFBDFFDB0BFD9F00DBDBC9FD0B9FDBDBDBFBDBDBDBDBDFFBDFDF9DFF9BFF9FFDBDBF9FBDB0BD9F9BDB9F9FBFFFF9FFF9FFBFDFBFDBFFBFDBFFBFFFFDFFFBFFC99DBFFE0909BCBCBF9ABF9E9F9A9A9F0BCBBF90E9D09C90E9DADA9B9A00BFF9FD99FFBFBFD99BF00009E9B99AD9EBBDFF9F9FDBFFBDFFBFDFBFBFFBF9FDBDBF9B9F9DBFDBDFDBCBDFBFDBDFFFFFBFF9BFF9FFBBDBFF9FFFFFFBFFFFFFBFFFFFF09BFFD090ADA9F9B0F9F0F9F0F9FF9ADB9FF0CB99A9B0BF9B0999C9C9B99FF9F9BFFBDFFFFF0F900C9BDBDF0F9BD9CFB9FBDBBFDBDBF9F9FBDBDB9F9F9FBFF9FDF9FB9F9BDB99F9F99DBFFBFFFFDF9FFF9FF9FDFDA9FDBF9FFDFFF9FFFFFFFF009DFF0F00DB9F9ADF9F9F9A9B0F90BDB0F9DB90BE9C0D9090BCB0B0BC009BF9FD0BDFF9FFBDF9F09009ADA9B9F9FBB9FD9FBDFDBFFFDFBFF9F9FDF9F9F9F9FFBFBF9DBDBC9BCB9F9FBFF99FFFBFB9FBD9F9ADA9B9F9FBDBFBFBFFFFBFFFBFBFF09BFF00A9A9F0BDB0F0F0F9E9F0FBDADBCBBCBD09B9A0F9AD09C9C99B909FFDBF99BBDF9FF9BF00000999FDDBDA9DF9BF9FDBBF9F9BBD9BDADB0B0F9EBF9F9BDBDBF9F0FBCBDF9DBDF9FFFBFFFFDBDFBFCF9BDFDB9F9FBDBDFFDBFFFFFFFFFF0099FF0D009E9FCBF9BBF9BCB09B9E9F0B9FDB00BC9C990BDA9B9A9AD0D09BF9FDBDFDFBFF0BFD00E900F99A9F09FB9FDBFFBDFBFBFDFBFDBDBDBDF9BD99DBFDBDBDFF9F99F9B9FBDB9FBDFFFFF0BFF9E9BDBDB9BDBF9F9FFBFFBFFFBFFFFFFBF090FF0009E9B9BDAF0DBFCBDBCBDFB9FDA9BC9BD9B0B0BD090DAD0909A90FFDBFD9BFBFDF9DF00900E9BCFBDB9F9FDBBFDB9F9D9FDBB9DA9F9F9F9BDB9EB099BFDBDB9F9F9BFDADBDFF9FBFFFD9FC9BD9F9BDBFFFFFFFFFBFDBFF9FFFFBFFFFC9FFBF0A9E9BCBCBD9FBF0B9B0BDAB0F0B9FFBC00B0D0D9A9F0B909CBD009BFF9F9E9FFFFDBFB0000900DB9DBCF9E9BDBDBDF9FBF9BC9FBDB9FBDBFFBDF9DBDAD9AFBFDBDBC9DBDBDBDBFF9BFFADBB9F9F9BDBDF9BDBFFFFFBFFFFFBFFFFFFFF0B9FFDC909BDBDB9FA9CBDBDAD0BDBDBDADBDB99ADB0B0F9090DA9A90B90F99FF9F99FFFB9FDAD000E09ADABDB9F9F9F9FFBF9DBDF9BF0DBDBDBFDBDFBDBF9BDBD99DBBDADB9BDBDBDBDBDFFFF90DFBDBD9FFDBFFD909A9FFFF9909F9FFFFFFFAD0BFA9E9ADADADA9FFB9E9ADB0DADADBDADF9E0990D0900F0B99C90BC090BFF99FDBBDBDF0BD00009009B9DA9F9FBDBFDBDFBF9BAF0DB9BCBDBDBDB0DBD99DBDBBF9FDBDBDE9BDBFBDBFFBFF09FBFDADBFFFFFD90BDBDFBD0000BDBFBFFFFFF00BFADA90D9BF9BDF0BDE9BDA9F9B9F9AF9BF009BCB0B0DB90D0F0BC99B0B9DF9FF99CBDF9BDA0000009DEDB9F9AD9FBDBBFBF9BD999B9E99BC9FF9FDBF9FFF9DBDDBDBDBDB99DBF9DBFBFDFF9BF9909909090000FFFF900000F9DBFFFFFBFF09E90C90DABAF9ADA9BDA9BCB9F0BCF9AD9BCDB9C09D00B09E90B0909AD09C9BFF99E9BDBF00900000000B9ADBDBDBFADBDFDBDBDBCF0D09F9FF009F9FF9F090BE9EBFBFBFBDF0BD9FBDFDBFFE9DBC09FFF00000909FFF0009090FBFDBF9FFFFF09E900A99D9DBDB9FCBDBCBCB09FB0BDBADBBCB9A0B9C9F09A9DBC909A90B099FF9BDBFDBD00090009000F9BDADBD9F9FBBFF9EDB9900000999BF0000009FFD9999909FDBDBDF9BF9FBFBDBFDA99BB09FF009FE000FC009FFF099DBBDFFBFFFD0000A9CA0BE9E9E9BDA9F9B9EB09F9E9DFADF9C09D09A90BC9CB0B0E990F9F00F9FDBDA900000000000090D0BDBDEB9F9FDB9F9BC9E9900000BFC0000090FFFFFD099F9BD0B9BDF9F9F9FFFFFD0FD9D09000090000000FBFF090BBDFBFDFFFF0ADBC9009C99BF9BDABDB0F0F9DBC9ADBA99BF0B9B0BC90F990B09D099E9090099FB9FFD0000000000009CBB9F9BDB9FDE9BFDBFF9B90A9C9C0000009FC00BFF000BDBDFDBBDFDBBFFFFFFFFFB09BFBFBDBD0C009009F9FF000BDBDFADFBFBFE09B000A90A9AF0BCB9DB0F0F90BCBBF9AD9EFBD000D0BCB90E90DB0B0B9E9AD9A009F990000000000000009CB9F0BDFBB9FF9FB99FCBD909A9DE900009000000AD99F9BF09DB9BDFF9FFBF9FFDF090D9DADBF9FFFFF9BFA90B9FBFF9F9BFFFF9000E0900D09D9BDBCBE9F9B9AF0B0D0BDAF9BFBD9A99090F99A9AD9C9C9909A9C90000009000900900909009CBDBDBD0F090BDFE9BDBEDB0DB090FFDBC009BC99BF99F09FADBDFBDFFF9FFFDBFF9E9A99DBD9FBFFBD00D09F9FC9FBFFF9FFFFF09F9E090A00A9DA9BDBCBDE99BC9BBDA99AD9BD0AD9E9CB09E9C9B0B0B0F90C900000000000B0C000000A0DBBD0F9FBFD9BDF909F9F99BBDB09CB99FFF9FFDBFFDBCB09F9F9FFBDBF9FFFFFBFF9F9BD0B090B990909BF9BF9FBFF0F9CBFFBFFBC00F0DAC90B0F0F9E9BF9A9F0DB0D0BDAD9BEF0B99A90B09F9A9B0D09C900B9B0000000000000B00009C09BC90F9BF9DBADA90BF9E90FDFCBDFBDDA909AD09AD090909F9F9BDBDBFFFFF9FFFF9FB0D0FCBDBC9EDBDBFDBFDAD9E9F9A9BFFFFFFF09FB009000D0B9CB9F0F9F0FB0DABDADBAF9F90F0DA90F090D0D0B90BCB99C0B000000000D09C0900000F0BDB9FCBFA9DBDAD9009F9F09BDFBDFBDBFD9BBD99F9F9FF099E9F9FFFDBFFFFF9FFDDFBB9909F9B9BFFDBFDBFDBFBDBFFF0DBFFFF00BC0F009E90BDABDADB9E9B0DBAD0B9AD9CBBF90B99E99FA9A9B9CB0990E9B00D0C09000000A0000909009CBDA9BD9FF9DB9A0D9E909F099ADB9FBDBFFDFBFF90B999FBDBDBF9D9FFFFF9FFBFBBC9CB9F000C9009BDBF9BD0900090009BFFFFF90F09FE000A00D0BDBCB9E9F09DBDAD9AB9FF9CBC9E90A99C909E90DA0B90D90A0000000C09009C00A009F9B9FDBFBDBFAD0D9A090F00BF0D9E99FFDB9FBD090F9CB09DA9BC9FBBF9F9FFF9FDFD9090D0AD0000000000C00900D00009FFFBFF00BF0F00909C9A9ADA9BDE9B0BCB0BDAF9DA9F0B09B90F9DA9ADA90B09D90F0AC90000000900C000009C9A9BCBDB9F9FBC9FB00090F00BD09BF0F090B0D0000F090B0C9B0DF9BFFDFFFFFFFFFFBFBE0000900900000090000ACB0A909BFBDFFFE9C09E90E00A0D0DB9FDA9BCBDBCBDA909ADFBD0BD0E909AD9009F9C9A9E99090090090000000900900B0DADBDAFCBDBD9F9DF0000909009E0990F00D9000000000C900C990909BFBDFFBFFFDBDBD990000900F0D0000909090909C9BFFFFFFF90BF09E9000900A90FA9F0F90B09B0DBCBDABFBD0B99B0F9ADB9090B0D09E9F00000000000900A00000C09F9EF9BDBFDA9FB0BD000000D009C009090A00D09F090090090A09FF99FFFBFFBDFFFFFFF099E000900000C0A000F0C09A9FFFBFFFFFAD0BF0F0BC0090BC9DA9F0FBCBCBDA9B0BD9F90BC9E0D9AD00DBCB09A9A900900000000000009C0B090B0BDB9FDBDB9F9BDFDBF90009000009E0C009C9A0C0000000000D9FF9FFF9FFDFDFBFFBDBFF9090C000009099C9FB09BBC9FFDFFFFFFD09ADF0F0009AC009BAD0B909B090BF0DADAFF0BC9A999AD9B9B090D099C90F000F0000000000000C0A0DBCB9F0B9E9F9FDBF9AD9F000009A9099A90000090900000009909BFFFDBFFFFFFBFFFDFFF9FFDB900000A09EBF009DADBFFBFF9FFFFA9E9FFF09C000900F0D9F9E9E9CBBD09A99F9BD09B0DAC9A9C0CBDA9ADA9A90000009000000900090090099F0DBDBDBFF9BD0BDBE9BD0009FEBCBCBC909000C9000909BDBFDF9FFFFFFBFFFFFFFBDBDBFFFFFBDBD9DF990BDBE99FFFFFFFBFFFD0B0BF00F0B000090B9A9A909A9C90BC9CB0BFBD0DB99BCB9B9090909090D0BC0000C0000000C0000D09ACBDBF9FDBD9FF0FBDBD9EDBF90909F9090BCBC0F000099DBDFFFBFFFFFFDBFFFDFFFFFFFFFFFFFF9FF9FFBFFFDF9F9BFFFFFBFFFFFFA9C90FF0F00D000000E9ADA9C9A90F0B0B0F0DA0B09E0990F0DBCBCBCBCB0900900000000000090000A0D00A9FE9BFFF99F9FADBF99FFF0009000090BF9B99F9FFFBFFBDFFFFFFF9FFFFFFBFFBDFFBFFF9F9FFFFFBFFFBFFFFFFFFFFFFFFFFFBDA0AFBCBCB0A00000909C90DA9C9E09C90D09BC909E99F0F09B0990909090E900000000000000000090C9B99DB99E9B90F9F9FDB09FBCBFD09E9FDBDF9BDFFBDBFFFFFFFFFFBFFFFFFDFFFFFFFFFFFF9FFFFFFDBFDFDFFFBFFFFFFFBFFFBFFFF09BD9CB0F0C00000000000000000090000000F000090000900000000000090000000090090000009000900F0BDFF9FDF9BF0F9BFDAD9F9BFF99DB9FFBDFFFFFFFBDFFFFFBDFFFF9FFFFBFFFDFFFFFBFFFFFFFBFDBFFBFFFFFFFFFFFFFFFFFFFDE00FAFD09A9000000000000000000000000000F000000000000000000000000F00000000000009000000090D0B09FB9AD9DBDF9BDBBF9FF9FFBFFF99FBDFBDF9FFFBFF9FFFFFFFFFFBFFFFFFBFFFFDFF9FDBFDBFFFFFFFFFFFFFFFFFFBFFFFFB90090BE9EDE00000000000000000000000000F0000000000000000000000009000C00000000D00000000BC09BD9FBDFD9A9FBDEDBDF9FF9F9FDBDBFFFFFBFFBFF9FFFFFFFFFFFFFF9FFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9CB009F0B9A9E9C000000000000000000000009E000000000000000000000000009A000000900000C000900B009AF0DB0BDFBDB9BFF9FF9FBFFBFBDFF99BDFFFDBFFDBFFFFFBFDBFFFFF9FFF9FFFBFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCB000BCBDEDF00000000000000000000000000E9A09000000000000000000000C0000900000000A900090C900D099DB9FDBBCBFFDBDB9BDBDF9FDBF9FFFFBDBFFFFFFFBFFFDFFFFF9FFFFFBFFFBFDFFFBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC009F9F0B0BCB000000000000000000000000BC00A0000000000000000000090009000000000000000000AD0BD0BF0F9BC9F999F9FFDBFFBDFBFDFFBDBDFFFDBFDBFFFFDBFBFFBFFBFFFFDFFDFFFBFFFFBFFBFFFFFFFFFFFFFFFFFFFFFFFFFDA90000BE9F09F0C00000000000000000000000CB00000000000000000000000000000000900009C009000909000BC9BDADBF9FFEDFBDBFDBDBFDBFBFDFFFBFFBFFBFDBFFFFFDFFFF9FFBF9FBFBFFBFF9FFFF9FFF9FFBFFFFFFFFFFFFFFFFFFFBF0090BC9BC0BC0B00000000000000000000000BC0000000000B00000000000000C000C00000000000000000FAC909BC9DBD9FDB9BBDBDFBFFFBFFDFDBFBFFDFFFDFFFFF9FFFFFBDBFFDFFFFFFFFFFDBFFFBDBFFFFFDFFFFFFFFFFFFFFFFFFFBD00900FDAC0BF0BD00000000000000000000000CB009A0C00000000000000009E0900090000000090000000009F09C9BA9BFB0BDFFDBFB9F9BDFDBFBFFFFDFBDFBFFFFFFFBFFBDFFFFFFFFFFFFDBDBFFFD9FFFFFBFFFDBFFFFFFFFFFFFFFFFFDAF0E09AF9F00F0DAE0000000000000000000000BC00000900000C00E00A000009000900000000000000D000900B90BC9F9C9FDBF9BF9DFFDFBFBFDFDBF9FBFFBFFF9FBDBFFDFFBFFDBFFBFFFDBFFFFFF9BF99DBFDFBFBFFFFFFFFFFFFFFFFFFF909009F00ADBF0BD00000000000000000000000E9A0000A00000B009009000000000000000000000090A0090009E90B90FBDA9F9FD9FBF9BFDFDBFBFF9FFFDBDF9FFFFFFDFFBDFFFFFFFFDBFBFFBFF9FDE99FBF9FBFFDF9FFFFFFFFFFFFFFFF9E9A090DB0D0F0BFE00000000000000000000000BC0000000000000000000000000000C000000000000090000D009BC90F909FDB9FBFBFDBFDBFBFFDBFFFF9FFBFFFBDBDFBFBFFFFBFFFFBFFFFDFFF9F0099E99FF9FFDBBFFFBFFFFFFFFFFFFBF0BC0F0A00BE9BCD000000000000000000000000DA00A090000000ACA0000009000009000000000000000C0900BC90BC90BF90BDBF9FDBFDFBF9FDBFFDBDBFBFFDBDFFFBFFFDFFBFFFFFDFFFFFBFBD090B9F99F9FFF9BFD999C9B99FFFFFFFFFCF0900090D09C0BE900000000000000000000000E9C000000000009000CA0000000000000000000000000900A09ADC9BBD9CB99ED9F9FDBDBFDFBFF9FFFFFFF9FFFBDBFF9FBFBFDFDBF9BFF9F9FFC99099F09BFDBF9FF9BFE9000FBCBFFFFFFF9F0090FC0BF0BCF00F0000000000000000000000F0A00000A00000000B0000900000000000000000090000009C09A909C0B9F0F9BF9BF9FBFDBDFDBFFBDBDBFFFBFFFFDFFFDFFDBFFFDFFFBFFFF0B00FBF09FDFBD9F09FF090B9D9099FFFFFF9A0BC0A90BC009B0BC00000000000000000000000AC9000000000000E0000000000000000000000000000000900009CBC9B9CBDB9FDBFDFBFDBFBFBFDBDBFFFDFBDFF9FFBFFBFFFFFFBFFDFF0B00909B9D0BBFFBD9B09F909090CA00FFFFFFFF0F9C909CB0F09AC9D0C0000000000000000000000DA00C00000009A090E0000000000000000000000000909000BD0A90B9CB9CBD9FBC9BDFDBDBDBDFBFFDF9FBFFFBFFBFF9FFFDBFFFDFFB9F9D9900C9F09DF9D0B09FBDAD0BC09009BFFFFFFF900A09A0C90BC9B0A000000000000000000C00000F9E0A00000900000009E00000000000000000000000000000009C090FBCB9BCBCBFF9BFBFFDBFBDFDBBFFDF9FFDFFDFFFFFFFFFFB9B9F900B0C99BF09F09FB9FDA9F000900B0009FBFFFFF0F09C0BC9AC9BEF0F9F000000000000000C0000000F0090000000A000AC0000000000000000000000000000009C09F090F09F9E9B9F9DBDF9F9FBDFFFB9FDFBFBFF9FFBFFFFBFBFFF00C09009F009AF909B9FF09C90900909009009BF9FFFFFFF000B000099AC90DA0000000000000000000000C000E00E000000000009A0000000000000000000000000000009000BF090F0BDBCF9FBFF9F9FBDBBD9FFFFBF9FFDFBFFFBFFFDFFBD099BD0BF09DBD9C9F9E9090B09BC90000BC909E9FBFFFF90909C000D0AC9F0B0D0000000000000C0000000000F090000000000000000000000000000000000000000C0AD00A0909CB909E9DB9F9F99FBFFDBDFFBDFBDFDFBFBFF9FFFDBFBFF099BC9A9C9D0B0B09BC9900090BC0000090000E9BFFFFBF9E00000090A90B00BC9A000000000000A00000000000F0A00A00000000000090000000000000000000000009090F090C0090FD09A9F9F9FFF9F9BFDB9FFBDFBFBFFDFFFFFF9FFFFD0F00FF9CB9A009FD0B00A09DBC00900009A90A90B9FF99FFF9000000E900C9F09A9C000000000000000C00C00000AD00900000000000A00A00000000000000000000000000000009A90DA9BF9F0FBF99BDBFDBFFFF9FBFDF9FFBFFFFF9FF99F0B09F90099C099F000D09D90A09090009E0C009DADF900BFF000DA00900000B00E0DA0C000000C00C000000000000DA00C000000000000000000090000000000000000900000090F09CB09DE90F9BDE9FFFBDBF9F9FBDFDBFFF9FF9FFDBF99F09C9E909BC0009F99DB0B00A09000000B00909C0B9FA09FF0000900900009DBC0B99B0000000000000000000000000AD00A0000000000000000000000000000000000000009C000000A09B0B9DF9FDF9F9F9FFF9FFBDFFBFFF9FFFFFFB0BCBF00900900C0B00BCA0000D00D0D09DAD0D0D00009B0F0909F0909A00000000A00900AC0F000000000000000000000000F0A0000000000000000000000000000000000000000000900090D00D9CBA9E9BBDBFBF9BFDB9FBDBDB9FFBDBFFFDBD99F0909BD0909000999CB0900B0000E90B0B009A9E09F0F09F90A00D0000000909000D9B00000000000000000000000000F0D00000000000000000000000000000000000000900000BC0000B00B09DB9F9FBD9DBFDBFFFFDBFFFFFFDFFFF0090F00000F0000AC009AC0900009C090B00F0C9CBAD099BE900F00C909A009000000E00F0ACBC0000000000000000000000000A0000000000000000000000000000000000000000000000000909C909FB0F9ED9FFBFDBDBDBDBFBDBDBDBF9F9090F9090F9000090909C90900D09A09E90C90090B0D9ADAD90BD0009000000000909090F00D900000000000000000000000000F0000000000000000000000000000000000000000000900900C000ADBC0DF9F9BFBDBDBFBFFBFFDFF9FFF9FFF009F90C090000900F0009A00000AC00000909ADA9C9AC99B0E90A09000A90D0000000E0000B0AD0000000000000000000000000AD0000000000000000000000000000000000000000000000000009009B0BDADF0DBFDAD9F9DF9BF9FF9BFFBFC0909CB00AD000009000B00D00900909000000900090900E9B9C9000909C00000000A900090D90A0000000000000A00000000000DA000000000000000000000000000000000000000000C0000900900F0DB0BDB9FBDAFDBF9FB9FF9FF9FDB9FD0B0DA900090000090009C0900000D0000000000090000BF90C0A009A0A0900A000090000B0A0AD0000000000000000000900E000AD0A0A0000000000000000000000000000000000090090000009E0090B0DBDBDF9BD9BFDBF9FF9FBBDBFFFD090909C009000909C00900900900000000909000000AD9C9C009090C9090A00909000C0090C90D000000000A000A000090E000000DA0909CA900000000009A000000000000000000000000009000009000DB9E9FA9FDBFF9F9E9F9F9FDBFBDBF0BC9A09000000000000090000000909090000000F09000B00B00009A0C0D09C00000000000000B000000000090090000000900000E9E0A090000000000CA0C9A0C000000000000000000000000000000909E99F9F9BDF9BF9BDBFFBDBFC9F9FC9900D000090000009000090000900000000000900009000F90E90E0090A00000000900000090BC00000000000A00A000000CA0000F0090CA00C000E9A0909A000B0000000000000000000000000000000009F00F9FCB9FCBDFF9F9FBFDFBDBF00A0D000900000090000000000900000C00000A0000000BD0009009090E90090000000090F00BC00000000000000000000090000000F000B090A0B000C0A0A00F0000000000000000000000000000000000009F9BCB99E9BDAF9BDBDFDB99FF099C9A90000000090000009000000000900090D0090090BD0AD000F00E90009A000900000000BC0B0000000000000000009E0000000F000000E090C0B0A9C00D00000000000000000000000000900000000090009F9F0F9FDBD9FDBFFAFBCBD900A000000000000000000000000000900000000000000F00000BD0090909000009000000009009000000000000A00000000000000000F000090A0A90C90A09A0A0000B000000000000000000000000000000000900F9F9F99EB9ADBF99D9F9BCBD09090900000000000000000000000000090009000000F090900B00F00009C000000009A00F00F0000000000000000000090000000F000A0A09C00A0A090A0090F000000000000000000000000000000000000009DA9E9AF9DFB9F9FFBF9FDB000AC000009000000000000000000000000000000090090000E9BC9F00000A09000900D009009F000000000000000000000000000000A00909C0A0B0909CA00D0E0000000000000000000009000000000000900009ADBDBDBDBBD0F9F9FDADBC0909000000000000000000000000009000000000000090000090C0B000AD009AC0000A000009E000000000000000000000000000000F0DAC00A09000ACA00D0A0000009000000000000000000000000900000000009BDA9F0FC9E99FADBFDBCB0000090000000000000000000000000000000000000BC0000BC090C00900F0009A0009009CB0B0000000A0000000000000000000000DA009A00A0A0D009A0000000000000000000000000C00900000000000009000C09DADB9F99E9FDBF9F9BC0090000000000000000000000000000000000000000000909000A9009E9000000C090000A00D0000000000000000000000000000000AD00A00D090DA0BC0000000000000000000000000009000000000090000000090A9DBDAFCB090FBDBCBC90000900000000000000000000000009000000009000009A00009000B0000090090000C9A90F0000000000000A000000000000000000F0B0C09A0A0A0000000000000000B0000000900000000000000000000000000009CA9E99BC9BF909C9000090000000000000000000000000000000000000000900000009A9E900900F00000B00900C9000000000000000000000000000000000F00A9A0009C90F000000000000A000000000000900F000000000000000000009000909BC09C00AD0B0F90000000000000000000000000000000000000000090E90000000C00090E900000000000B09A0000000000009000000000000000000000F000DADA00A000000000000000009C000000000000009000000000000000000000000090A9090BC90000000000000000000000000000000000000000090CA900000D090B900E9000090BC90090C00D0000000000000A9A00000000000000000F00F0A00000000000000000000000A00000A0900000000000000000000000000009000000D000D00BC90000000000000000000000000000000000000000090000090000AC00D00000AC000000CA90A0000000000000A00C000000900000000000F000000000000000A000000000000009009C00B000000000000000000000000000090009000900900000000000000000000000000000000000000000000000C90C0009090B000BC090A09A09A90090000000B0000B0CB0A00000A0000000000F0B0A900000000000090A0000000009A00000000909000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000BC0AC090009A0090000C000F000000000A00009A0900000000000000000BC0000C00C00900B00A00000B0000000000009000000FE0000000000000000000000000000000000000000000000000000000000000000000000000000900000000090090000CBC09C009C09000900000000000000E09ACA0000000000000000FA90CA0B009000A000000000000000000C90AC0000000C00D090000000000000000000000000000000000000000000000000000000000000000900090000000000000000909A900000000A000BC00000000A09000090E09000000000000000009C0A90000A00A00000000000000000009000900DA00900000000009000000000000000000000000000000000000000000000000000000000000009000000900E9000000AC0000090000000900000000000000A009A0A9AC00000000000000000EBC000000000090000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000900000C9090B0C0000B00F0009C000000000090000009C09A00000000000000000DA9A000000000A0000000000000000000A000B00000000000000000000000000000000000000000000000000000000000000000000000000000900000000000000DA0000000900A009000CB0B0000000000A000000A0AC000000000000000000F0C00000000000C0A000000000A000000000000E900CB0000000000000000000000000000000000000000000000000000000000000000000090C00000000000090009E90000A09C00000B0000000000000000000A00909A00000000000000000DA00000A0000900900000000000000000000009000900090AC09000000000000000000000000000000000000000000000000000000000000000000000000009000090000909000090009C0000000000000A000000900A0000000000000000000F00D00009A0000A0000000000000000000000000000000009000900900000000000000000000000000000000000000000000000000000000000000000090000000000000C0AC90000CB00000000000000090000000A00000000000A000000000AF00A00000CAF0000000000A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009A90000000B0000000000000000000A000A009A000A9C0A0000000A000F000000A0900000000000000000A0000000000000000900000000000000000000000000000000000000000000000000000000000000009009000000000000900009000C000900090000000000000000000A0000900000000C0A090F000B09C000C0000900A000000000009A000000000000A00000B00C0000000000000000000000000000000000000000000000000000000090D00000000000000000000000000E0BDA909E0900BC0000000A00000000000000009A0000B0A900A00000CA000F00000A0000000000000000000000000000000000009A00000000000000000000000000000000000000000000000000000000000009000000009C00900000000009C0000E0000BC000000000000000000000000A0000A000000F0C00000B0000AD000000000B0000000A00000000000000000000000009000000000000000000000000000000000000000000000000000000000090000000000009000000000000009009009000000000000000000000000000000000090A9E00B0000000EBC0DA0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009C0000000000000000000000000090900BCA0009ACB00000000000000000000000000000A09E0C009A0000000A90A0A900000000000000000000000000000000000000000A0C09009C00000000000000000000000000000000000000000000000000000000000000009C00000000000AD00900CB0900000000000000000000000000000090A0B0B0AC000000900F00DA000000000000000000000A0000000000000000000090A00000900000000000000000000000000000000000000000000000900000000000000000A90009CA0F090B000900C000000000000000000000000000A0B0A0D0000009000000ADA000F00000000000000000090A00000000000000A000A0900000F00AC0B0000000000000000000000000000000000000000000000000000000900009A000000009000000D000B00000000000000000000000000900C0CBCA0A00000A000000000F00F0000000000000000000C90009000000000000000000A0900090000C9C00000000000000000000090000000900000009E000000900090000F000C9C0A90B0C00BC00000BC000000000000000000000000000CA9A9009009A0B0000000000B0000F0000000000000000B000AC0A000000000000DA00A0900000000090000000000000000000900000090C0000A0000000090900000000009000900009C0000B090000B0F000000000000000000000000000A0A90000A00000000000A9009A00A0F0000000000000A00000B0090000A00000A09A00C900CA00B00000000000000000000000000009000090009000D00C90000000000000000090A0B000090000000090C90000000000000000000000A0000009000A00000A0000000000A0C000000F0000000000000D00000CA0C0A000000000000B0A000000000B000A090A0D0000009000000000C000000000D0000000000000000090000000000090AC09C000DBCB00000000000000000000000000009A00A00000000000A00000000A0BCB00F00000000000000A00000090A90000A00000000000CB000000C000900009000A000000000090009000000000000090000AD0000900000D00E090DADA9000090F000000000000000000000000A000900A000000000000000090000E9A9000000000000000000009E00A00000000009000000000B0CB000009E9A00000000C0000009000D000009A00C0000000000000009000BC0ACB0F00A0900000000000B00000000000000000000000000000A00A0000000000000000000C90A90CAC9A00A0F00000000000A09009C0000A0000A00900A000000000000000009A0000A900090000000A90E0000090C0B0000F000000000000090000900000000000009000CB0000000000000000000000A0900000000000000000000C0A00A000A09A00A900F0000000000000A0C00A000000A000000000000000000A00A9E000C0B000000000090A9C009000D0A900000900000000000000000000009000C90900F00DA900000000000000000000000000E00000000000000000AC00B09A9AD0DA00000000F000000000090009A0090C090000000A0000000A90009009000BCB00000000B000E0000000000B00000090E0000900900090900009000C009000000900B0000000000000000000000000000000000000000000909A00B00CA0C0A0A0000000A00F000000000A000000000B0E00000000000000000A0A00000EBC00000CB0000090000CB000A0C0009C00A09000000000000000900000090000A9E0BC0BC00000000000000000000000000A0900000000009A9AC0E00B0E9A090A90000B000000F0000000E9000DA000000000090C00000000000000900000A90A9A00B000B000A090B000BC9090A000B0D00009C09C000000000900000A900D00900000000000000000000000000000000000A00000000AC000AB0B0C00000A000000000000000F0900090000A000000000000A09A00000000000000000009E9C00F0000C0090C0AC0ADA0ACA090DA0C0000C0A000000B00000000D09000CA000000000000000000000000000000000000000000A00B000B0E9C00CB09A090000000000000000F00000A000AD00000000000000000000000000000000000000A0B00000B000A09A00BC00D090CA000900B09090090009000900F00A0A00090000000000000000000000000000A0000000000009000000B0009A0B0A00A00A0000000A000A00000A0000000000000000000000000000000000A900000000000B0BC0A0000000000090009A0A0A900900A9C0A000C0A0000C0E0B00BC9C0000000000000000000000000000000000000000000A00A090A0009A00000000000000000000000000A0F000A00009000000000000000000000000000000000000A900C0A9C90009E000000E0A000C9C0AC0AC00000C0A90C0000A909C0F0A000A0000000000000000000000000000000000000000000000A0090A00A90A09A000000000000900000000F0F000CB000A00000000AC00000000000000000000000000B0B00A0A00A009090A09090E9A0009000090A90B00000000900A0B00F00000DA00000000000000000000000000000000000000000000000A000000000000000000000000A0000000F00009A00A00900000000090000000000000000000000A0C0000F000000000A0090A0E00000B00A900A00000000A90000000C0E9000B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000F00AC00C9000000000000A00000000000000009000900900ADA000000000B0CBCBCA900000000000900DA000090009A00090B00000C0B000A000A00000BC000000000000000000000000000000000000000A000000000000000000000000000F0090A90A0000A0000000000000000000000000A000A000A900000B0000B0CB00A09ACB00BC00000A00A00000000000000000090000B0C000000D00000009AC000000000000000000000000000000A000A9000000A0000000000000000000000ADA0000000E09000000000000A00000090DA9AC00C000000000090000900B00B09A09000000009000000009000000000000A00E0A900A90090DA00000000000BC0000000000000000000000000000C00000000000000000000000000000A0000F000000A9090C00A0090A000000000A90AA0C009A9009A000A9A0000A0000AD0CAC9E000000B00A090090A000000000009090B09000F00A00A000000000A0900000000000000000000000000000B0900000000A00000000000000000000000000AC0000000A0A00000A090090000090CA9C9A09A00A0000000000A0900A9E9A0B09A0000000000C000E00000000000B0CA0CAC0ACB0000000000000000000A00A09000000000000000000000090C0A00000A0000000000000000000000000000F09A0000000000D0000000A000000A9A90A00000C000000900C0000000000000000009A09A0009A9A00000000000000900090BC900E90000000000000000000000A0C00000000000000000000A0BC000000000000000000000A0000000000000F0000000000090A000000000A90000C0AD0F00B0B000000ACB0A90A00000B0F000BC00C00C9A0000C90B000B0000000A09A000A0B00A000000000000000000000000A000000000000000000000009E00000000000000000000000000000000000F0000000000A00000000000000A9A9ADA0000000000000000000000000000000000B00B0A00000B0A0000A0000000000000B09C0CBC00000000000000000000000000A000000000000000000000A00000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010500000000000089AD05FE,'Andrew received his BTS commercial in 1974 and a Ph.D. in international marketing from the University of Dallas in 1981. He is fluent in French and Italian and reads German. He joined the company as a sales representative, was promoted to sales manager in January 1992 and to vice president of sales in March 1993. Andrew is a member of the Sales Management Roundtable, the Seattle Chamber of Commerce, and the Pacific Rim Importers Association.',NULL,'http://accweb/emmployees/fuller.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(3,'Leverling','Janet','Sales Representative','Ms.','08/30/1963','04/01/1992','722 Moss Bay Blvd.','Kirkland','WA','98033','USA','(206) 555-3412','3355',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000080540000424D80540000000000007600000028000000C0000000E0000000010004000000000000540000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFB009A00A9009A9AA9A900009AA9ABE9EB0B0BB09A0AB0A9A9B0FA0FA0CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFE9A09A9EBEBFBB0BB0AB09AC9090AB0BCB0BA9E9AA9A90B000009AAB09009BEB0BAD0EB9E9F9B0C0B0FADB0F0BEB0FCBC0BCBFB0F0BBE0B09BA0BBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFA9DABEBFFFADFFADBF0BEBBAFAF0FBBAB9ADABADBE0AB0BCBFBC090E0A9AFA9BC90BB9AFABEE0BB0FA9ABEBE9B0FBA9AB9A9A0FB09E0BDAFA0DBE9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFB0FABFFFAFAFEABCBAA9F09AF0B9BBCBE9EBE9ADA9A990FAB0000BFA9090B09E0BAF00A9ADAB9BCBE9F0BCF0BE9FA9EB9CA90FBEAF0BFBA9ADBA9ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FE99A9FAFFFFEBDA9ADBCBFA9BA9EAFACB0B9AF9A9AFAEB0900BB9A0000A9AF0BBCB0B9E9BADAFAB0BABEBBBC9EAA9EBEABBE90B9B0B0BCBE9A9FADAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBAFBA9BEBE09ABFEBABAB0F0F0F9DBFBBAFAB0FAF0B090BCBC00090B0B0A0BBE9B0BCA9AF9A9BC9E9FAD00ABAB9FA9CB9C90B0FABFF09ADBFEB00B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBE9ABDEFBDBBFFCAB0F0D0FB0BBA0ABF0FDA9F0A90009A09A0B00000000D0BDA9AFADA9BDBEBFABABBADABFBDA9E0BEB9EBABE9A9EB0FE9AB09FAFBAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B9E9FABADAFEB0BBDE9BABBA9FEDBBF0BFABC0A900BFE0BC0900B090B0B0BFAFE9A9A900A0B0E9CF0C0B0F0CADABF0F0ABBCB0B0BCBEB0A9AFA9A9E9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABA9F9FAF0FCBCAB0BE90EDABBABCBFA090B090FBFEF009A0B00A000F0B00B0BE9EBAF9FBFBBBBABB09FABB0F9AFA9FBCFBCB0E9B9A9FAC9F0BC9F0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBF0DA0A0FBEBABBDEF9AFBBADA9CB0A0BCA00BAF0BFFE9BA9009090B09ACBBAFF0BADB0A0BADACBDE9CA0BC0BAAF0FBAEB00B0B9A0F9EB9ABAFABABBEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0BA9BFBACB9EDAB0BAF9AE9A9FA90900090B0F0BFBFE000CB0A00009A9B0ADB0BE900A99ADABFBABEA99A0BF0F9AF0FF0BFADA0E9BABBEBC90BC9E0BCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9E9AF00FBFEBA9EBBC9A09BCA000A09A9ABCB9BFFEE9AF0B009090BAFBEB9BAF0BAFF9ACB0BFACBDBBE0DBFAF9EB0B0BE909A99B00BF0B0AABCBABDBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0BA9AFBCBCBBEBBCABAD000090909009AC90B0AA9FF090B0B00A0BC90F090F9EBCB0AF9ABF0B9BAA9CB0A00FAABCBEBDAFAF0E09BE90FBF9CBB0BCA0DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0FBDA0BABE90CB9B0FA9AB000A00B0A9A9A9F9EBFE0BC00090900BA9BEB0BABCB0FB0BCB0FBEBDBFA9E9BFADBCBA9A0BE90BBB0E9AFA90FA00BE9A9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0B0EBFBCB9EBBAF0F0BC90B0090000909A9E0BBFEE900B0DA000900FA0B0B0BBE9B0BEB0B0AB0A0F0BBC0A99ABAD0BFF9EB0C009A909EBA9E9F0BCADBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BDBFBB00BE0BAC9AFA9ABFE09A00909A0BCBA9AEBE90AB00A90A9ABFBE9F00FC9AEBC909ADB9EBFB0BC0B09AE9CB0F0A0A90B9EB090FAB0FA9A0FA90ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0A000CBE9BE99BFA90F090AB00000009090F0BFBFE0B0DA900090BCBA90AB0BEB90BAFADBA0FB0EBEBABEBC9AA9A9ABF90FA009A9EB09E9AFADA9CA9CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB9FB9A9AE9BEFAF9A9ABEB9EBCB00000A0B0BE9AFF0FA090B00A90B0FADB009BAE9ADBAB0FFB0FBF09BF00B0D0F0EB00AB09EB0DA90A9AF0B0B0CB00B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0A00EBCB9BEB0BA0F0B09AE90B00B00090A909FFF09009A00090A0F9A9BAB0B0BFADA0D0F0B0BA9A9E00AF0A0BA9BC9E909AB09A09A9CA9ADACA90B0BCFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B9BB0BE9E9E909F0BCBEB90B9CB00900BB0FAABEE0B9E090B0BDBBAF0E90C9AE90B0BAB09AFDABE9ADB9A909A9E00A90E90D0A09E0B09A9A090A00009BFE000909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0CACBE0BA9A9AB00B0B0BC0BCAB0B0000009AFBE9A9E090A0009ABEFABBAB009BADAF09ABE9ABBDAFBAFA9E9AD090B0A90A0A9CB0900B0DADB0B000900BC90000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB9ADBE9FA9E9EB00F0F9A9E900BCB0B900F90FBEDA9A09090A9A90BC0DB0B09AFB00BCBCB0BCBEB0BDA9E0BC0A0BC090A9090B09A9B00B0A00009000900000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A9AA9A0BF0B0BFBA90ACB0B0F0B0B00A90ABAFE90ADA0A0090DAFB0BA0BC0AFAC0BCB0BADAB0B0FEBA90B00B0900BCA9CB0A00A0000B09090900000000009000009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BF0F9FADA0BBFF0E90A99ABCB090B0E9000B9FE90E9009009AFAA9A9A9F0A909BBB0B0BC9A9EBDB0B9E0BCA9000BA009A0090B0909A900A0000000000000000090009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9A9AB0BBF0F0B0B9EBDAE90B0E0BC9AF0B00E9F0A9A9A090A9A9FAFCBB0B0B00FAF0E9AB0B0BAB0F0BBF0B0A9A909A9090A0000000009090000000000090009000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCBE9AF0F09AFAF0A9EA90A90B090B09A90B0BAF090009A0909BE9BA9AFBBC0A90F0B0A9CB0F0DAFABE0000900000000A0A9090A9A900A0000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09A9ADBF0BBE9B0BBE90BBCA909A009A9AC9A0BEBA0F0009A0BEBBE09F0009A90BABE090B0B0BABBCB090B000090009090900A090000900009000000090000000009009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9A9F0A00ABE9B0FA09ABC0B9E0A9F9ADA9A9E9D00C90A9000F0BDA0DA0FBBE9E09F9FA0B0E0BCBCBAD0A009000000000000009000000090000000000000000000900000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA9A0B9DA9CB9EB0BDAD0BBC0B09000A90BF0BAA9A9A9009A90BAAFFABBA0A9A9A0A0BDAC9B09A9BE9A909000000000000009000900900000090000000000000000000900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9ADA0A09AB0A0BE0B0A9E0B00B0B0B0A900F09E09000B000B0BFF0B0F9F9BE9A9E9BEA9BA0DA9E09E9000000000000000000000000000000000000000000000900000009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE09A9BC9A9CBE9E9F0F0B09A9AD00B09C0B0B0BC9AA9A009A9ADABFADAABABCBCB09EB9C009A9A09B0A00000000009000000000000900000000000000000090000000909C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09A9C00A90A09A9A0A0BCBA0D0A0BC9A9A900BE9AC90090BCBFAFABCBADA9BA9A0A9BCAB0F0B090A0090000090900000009000000000090000000009000900000000000BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFE90A9A90A90B090909A9A0DBA0990B00B9E09F0A9A09A000B0BFDEBE9FBEBEFAD9000B0090A0F0BCB000009000000009000000000000000000000900000000000009000BF0BFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFFA09000090090000000909A009A0A00B00A90A0F009A09A9ADA0BADBB0A9F09B9A0F0BADB0A990BCB0000900000000000000000000000000009000000000000000000009FE0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA909090009000000000000000009A00909A09BC0BFF09AC090090BFF0FAE0BF9ABBEE0B0A9F00A900A090090900000090000000000000000000000000000000000009000900BF09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF909090000000000000000000000900090BF009E00B0BA0A90B0A9AFA9ABA9BFABAD00BFF0900BA9DA0F0B0B00000090900000000000000000000000000000000900000000009A9ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000090000000000000900000009000000B0B0B0BECBDA0090CB9EBFF0F009CBBAB0BEBE909E0A9009000B00090000000900000000000000000000000000000000000090000900BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00909000000000900000000000000000009009009A09BF0A090A0B0ABBEBEFAFEBBCB9ADAF00A9AF090A9A9E9009000900000000000000000000000000000000000000900000090009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09000000900000000000000000000000000000A9A009FEA9BCA9090BB0FFFFABF0BCBEAB0BFEB09E9A0A90009000009000000000000000000000000000000000000000000090090090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000000000000000000000000090000000009000909AF0DA090E0F0FFFEBEDFA9EBA99AF0BF09ABE09009A9A09090000000000000000000000000000000090000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00009009000000900000000900000000000000009A00BF0BA09A99BBFAABFFBB0BE9BCBA90F0FE090BCA9A0009A000000000000000000000000000090000000000900900000000090D0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9000000000090000000000000000000000000000090A0BC9AD00A000BFBCBCBEF0BAFBCBAB0BABCBAF09009A9A0900900000000000000090000000000000000000000000000000900A9FEFFFFFFFFFFFFFFCBF9FF9FFFFFFFFD99F9FFFFFFFF000900090000000000000900000000000000000000009BEBE90A909E9F0BBFFA9EBC9B0B0BCF09EF0BC9A09A00090000000000000000000000090000000000000000000000090090A99EBFFFFFFFEF9A9BF9FF9F9F0F0BDBFFFB0FB9F09FFFFE00000900000000000000000000000000000000000090BAE900A90BABBAFAFEA9EB0BAAF0FEB00AFBE9A0900909A00000000000000000000000000000000000000000000000000009C0A9FFFFFFFB9DBDFDBFDBFBF9FBDBE999DDB9CB99A990FF090000900000000000000000000000000000000900009FBAF09A09E9E9E90BCB0E9EBDAB0DAF9CAFFE9E0B0A0090909000000000000000000000000000000000000000009000000B0900BFFFE90DB0FBFFDBFDF9FBD9F9BFFABDBFBDBDB0F90900000009090009000900090000000009000000000000A9E90A09F0BFAFAFEBBCB9E9EBF0BAF0AB9BAFA9A0909A00000000000000000000000000000000000000000000000000000000BCBFC9909B0FBDBFFF9FBE9DAF9FDB9DBBDBDBCBF99ADA00000000000000000000000000000000000000000009BEFA09A00BF0BE9A9E0B0A9A9E0B009EF0E0FE9AC90A000900000900000000000000009000000000000000000000000000900B09009ACBF0F9DBDAF9FBDFFBF9ADB9FFBCBDBDBF09F0909090000000000000000000000000000000000000009A9A909AD0B00ADCB0F0900909A9A9E0A90BFFA9EB0A090900090000000090009000000000000000000000000000000009000909009A09909F9FBFFF9F9FF99F9FDF9FB9DBDA9B99DB0B9000000000000000000000000000009000000000000000AF0E90ABCBFBEB0E9A0B00A000900C90000BEF0F9ADA000900000000000000000000000000000090000000000000000000000000090A9F09B9F9BFBFF9BFF9FBBDBDFFB9F9F9FABD9CB0909090000000000000000000000000000000000000909A90A90DA009BCBB0F00F090900B0000B0009AF0AF009A9000000000000000000009000000000000000000900000000000090009009009BFBCBFDBDF9FCB9FBDF9FB9ADF9F9B0D9A9B90000000909009000009009009000000000000009000009E0B0F0A9FAEAB0CB0B000000000900D0009009AF00B000009090000900090090000000000000000000000000090000000000900090BDBC99FBDBFBF9FB9EF9FBFF0F9F0F9ADF9BBD9E9A90900000000000000000000000000000000000000A9A0BCB0ADA009F0EB0009A900B009AC000000000009A0F0090000000000000000000000000009000000000000000000009000000900090B9AFBDBFFDBF9FDBDFF9F9FFDBF9BDB9BD0B09000000900000000000000000000000000009000000900090009009ADA0B90BCB000090900009C0D00000000090B0009000090000000000000000090000000000000000000000000000000090B9CB9DBFF99F9FB9F9B9FFFB9BF9BE9F0BCBD0B9B9090900900000000000000000000000000000000000B0A9A9A9A09A9E0AD0B09009ACA00000090090000009000090000000009000000000000900000000000000000000000000000000090909B9EBDB9FBFFBCFBFFFBDBDFF9EF9F9FDBB9BD0D0B000000009000090000000000000000000000009090090000009A090900A000A9A90909000000C00090000000000000000000090000090000000000009000000900000000000000900900A9DA9F9F9FF0F9BDB9F9BDBEBF9BD9B9E9B9C99A9A09090900000000000000000000000000000090000A00B00B09A9A09A0A9A9090900090000090090900000000009000009000000000900009000000000000000000000900000000000000099A99F9B0F9BF9FDB9F9FFF9F9FFFFBEDBCF9B0F9C9B09A00090000900000009000900000090000000000900090A00090009000000009090B090000000E000000000000000000900900900000000000000900000000000000000000900000000009E9ADBBDF9B9B9F0BF9B9FBF9B99F9F9B9EDBCB909C090900000000000090000000000900000000009009A0009090009000900909A00A0000000900009000000000000900000000090000900009000000000000000000000000000000000909AD9BDB9DB0F9E9F9F9BDF9BDBFDEF9F0FDB9B9B9CB0B9090090900000000000000000000000000000000A000A0000000000000000009090900900C0D09C09000000000000900000000009000900000000000900000000000000000000000000099BDB9EB9F9F9B0B9F9FB0F9F0BB9ADB9B09E9E9A9090A00900000009000000000000900000000000009009090000000000000900090000009A090A00C0000009000090000000009000000000000009009000000000000000000000000090099A9A9E99DB9B9BDBDB9E99F9A9BDBDF9AFDF9B99C9B0090900000900000000000000000000000000090009000000900000000000090000909A000C0D0D0F0909000900000000090000090000000009000000009000000000900000000090000009DB99FB90DADA9B9F9FB9B9F9BDBA9F99A9EDB0B0D9A900900900000000009000000000000000000000000900900000000090000009090009090900CAC0C0000000000000000000000000000000000000000000000000000000000000000009A9A9F990F9B99BD0B9090D0F9FCBD9F0BE9F990F9B0A9CA90000000000000000090000000009000000000000000000000000000090000009000E0C0C9C909000900009000900000000000009000000000000000000000000000900000000000909D9ADAF9AD0BD0BD0BDB9F9A9B90B0DF990BAF090D9009009000000009000000000909000000000000009000000000000000000000090B00F0D009A000C090000000009000009000000000009009000000900000000090000000000000000909A9BDB99099F0B90BD9B0B0BD0F9F9B9ADABD99BDA9A9009000090000000000000000000000000000000000000900900000000090090000900DE900D0D000000090090000000000009000000000000000000000090000000000000009000000BC9BC9B0BDA9090F90B0C9D90B90B09CB99D0B09CB90D0B00909000000000000000000000000000000000000090000000000000000000009ADAD00C000009C00000000000090000090000900000000000000000000000000000000000000000909B0B9C99090B9F9AB9F9B0BBD0B9F9B90B0F0F0B0F0B0909000000000000000000000000000900000000000000000000000000000000900C0DAD090C90C00000000000000009090000000000900000090000900000000000000000000000090B90D9A9ACB0BD0909C90B0BD90BD00A9CBDA999099909000000000090000000000000000900000000000000000000000000000000000000009ECF0E00C09000090090000900000000900900000000900000000000000000000000000000090090F9BC90999D9A9ADA9A90D09A9A9FBD0B909F0AD00BCB09090909000000009000090000000000000000000000000000000000000000000090009C90D0900009000000090000000000000000900090000000000000000900000000000000000009090B0B0B00B90999909A9B09C9090BD0F9A9990B00909A00000000000000000000000000000000000000000000000000000000000000000009E9C00CAC09C00000000000000090000900900000000090009000900000000000900000900000B0B090099C9BD0F0B0F9F990DB9BDA909B90D0F09090A9C9090000000000000000000000000000000000000000000000000000000090000000900C09E9090000090900000900900000000900900900900000000000000000000000000000000990D009BDA9A90B9BDB90B0F9B9ADADB9E9EB9B09ADA990B0000900900000000000000000000000000000000000009000000000000000000000000FC000C0C0090C0A009000000000900000000000000000000000000090000000000900000090090B9090999B9C999CBD99BC9F9BDBDE909DADA99090090090000000090000000000000000000009000000000900000900009000000090090000909C9090090009C0D000000000900000009009090909009000900000000000000000000000090B009BE90F0DB9BE9B9ADF9B9BDBBDBFFF0B9BDAC9A9A090090090000000000000000000000000000000000000000000000000900000000009000C00AC0C000C9009000000000000000000009000000000000000000000000000000000000009A099B099B9B90F99B9F9B9BDBDBDFFF9F0FDADA99A9C900B0000000000000000000000000000000000000900000000000000000009000000000909C9C9A90C9000C0E90090000900009000000009000009000000000000000000000000000090990B0D0BC9F9F99BDF9BDFDB9BFFFBDFFFB099F9AD90B09009009000000000000000000000900900000000000000000000900090000090909000CCAC00C00000CB0D0C00000000009000900000000900000000000000000009000000090009A90E909B999B09BDBDB9F9BBFFDF9FDFBF9FDFCB0F90A9000900000009000000000000000000000000000000000000000900000009090000000090B0C9E90D0D0B0C0CBC900090000000000090090000900900900009009000000000000000009099BD09FBDF9BDB9BDB9FD99BFFFFFFDFFFBFBDB0F99E9A909090000000000000000000000000000000000000000000000000000000909009A000C9F0C0CAC00C09C9C0E090000090009000000000900000000000000000000000000000000909F09A9B09B9F9F9F9B9DBBFFFDBFDBFFFFBDFDEDB9E9909C00000900000090000000000000000000000000000000000000009000000000000090C9CC0C90909C9CE9E0C9C00009000900009009A0000000000000000000000000000000000900B09BDBD9F0F9FB9BDBDBFD9BDBDFFFFF9FDFFBDB0F9BCB0B0090000000000000000000000000000000000000000000000000000009000090900CBCA0F0CAC0CAC90C9CBC9E9000000009000000090090900090000000000000009009000000B9DB09B09B99B9D9F9BDB99BFDBFBFFFFFFFBF9FE9F0F0BC9090009000000000000000000000000000000000000000000000000090000090000909C0DC0F090D090E9CAC0C0C0C900900000009000000000000000000000090000000000000090B09F0DBF0BD0BB99F9BDBD9BBDBDBF0DB99FFFDBFF9BD9B0BC9000000900000000000000000000900000000000009000000000000000000900000FC0FC0C0C0E0C9C0D0F09C9A0000000090000900090000000009000000000000000000009A999B9B9099DB9D9E90BDA9B9D99F9E9FBDFFF9FBFDBFCBADBC9A09000000000000000000000000000000000000000000000000000009000000000C0DEC0DAD009C9CA9E0C0CA0C09000900009000000009000000000000090000000000000909ADAD9E9F9FB0B9B99B909909A9B0999BDBBBDBFF9E9E9BD909B090000000000000000000000000000000090000000000000000900000090000909C9E90FC0E9EC0E9C09C9009C9CAD000A00009000090009000000009000090000000000000BD9B90B9B9B09DBE9DBCBB90F990D9F0F9FDFDBF9FFBF9F9EB9FC9E0000000000000090000000000000000000000000000000900000000000000000BCCDC0F0D0DAD0E9CA0C9C0009CAD0909000090900000000000000000000000000090000D0B09F9DA99BDB999B0999CBB9EBB0B9B9E9BFF9FBDF9FDAD9E9AB099900000000000000000000000000090000000000000000000000000000900000C9ACBCCADEADE0D0AD0AC00D0C0D0A000090000A000000000000000000000000000000090B9F9A9B9F0DB9ADBC9BCB99D099D9F9F9BF9F9FFDFB9EBDBBDBD9FCA0000900000000000000090000000000000000000000000000009000000009090EDCCCBDE0D0C9CAD0CD0BC00E9E0D009A00000909000000000000000000000090000090B9DB9DBDA99B9F9B99BF9B9F0BDA9B09FFFDFFFFFFBDFF9FBCBDBF0B90D0000000000000000000090090000000000000000000000000009000000000CD0BB0CE0FCADAD00F000C0C90C9E0F000900900000000900000000000000000000000BD9EB90B09B9F9F09F9F999D099999999F99FFFFFF9FFFBDB9F9FBC9F9E900000000090000000000000009000000000000000000000000000000000000DACCC9E9C0FC0CAD00DAD09ACBC0D00BC00B00090009000000000000900000000000000B99B9F9BD9F9B9F9BB9F9A9B9BD9BDF99F99FFFFFFFDFF0F09BCBF9CBDA900000000000000000000000000009000000009000000000000000000000090DAD9E9CAD0BCF0DAD0C0C0C90CB0E9C9A000900009000000000000000000000000009BDAD9E9BF0B0BDB9BDD99999D9D9F999DB9DBDFFFFFDFF9F9BFFBDBFBF0F0F090000000000000000000000000000000000000000000000000000000090C0DCC0E0D0EC90CAC0E0DAC90E90C9C0E90900A0900000000000000000000900000099E9B9B99F99BDB9BDB9B99F9990909999099FDFDFFFFFB9FB9F9BDBF0F9F990000000000000000000000090000000090000000000000000000090009000CBC0AD0F0D09ECBCBC9C0DA0D0EDA0BC900A009000009000000000000000000000090B9F9FDBF9BF99DBDA99CB09999B9B09BF99999FFFDFFDFD90B9FFBDF9DBDBE90000000000000000000000000000000000000000000000000000000000009CF09EC0E0C090C9CA0F0CD0E90CDC00E9009000B090000000000090000000000000BDA9F9BDBD9BE999BDF9999900B9F9BFFFF099099DFDFBFBDBDB9FFBFFBDADF0F0900000000000000000000000000000000000000000000000000000000900CDC9E9C90F0E9E0DC0CB0C9CE9A9AD00F00A9000000000000000000000000000909F9F9AF9BFBD9BE9B9909090B9BFBFFFBFFFFFF9D9B9FD90B90BFFDFDBFFFFBF0000000000000000000000000900000000000000000000000000000000000F0C9E9E0AC0C9C0F0909CC9E090C0D00F0090009000000000000000000000000009F99BDF99F9DBAD99CB090B9F9FFFFFBFFFFFFFFF00999BFBD9F9FFFFFFDBDFC9C90000000000000000000090000000000000000000000000009000000900D0CBECCD0D09E0F0C0CAC0BC0F0E9E0BC0900090009090000000000000000000009A9AF9B9BF9BBD9B9B909009BFF9FFFF9FFFFBFFFFF0000999A99BDBFBF9FFFFFFB0A000000009000000090000000000000000000000000000000000900000EDFC9E9AC0DA9C0F0F009C0BC0D009C0BCE9000090000000000000000000000000BDBDBDBF9BFDFBD0F090009BDBF9BFBC0BDBD09B90B909000990BDBDFDFFFFF9FDF99000000000000000000000000000900090009000090090000090000090000FE9EC9E0CCBDCD00DA9CC9E0F0E0FC090090000900009000000000000000000DB99BDB99F9B9DB9090000B090090909990909909D0000009A09F9BFFFBFFDBFFE9E0000000000000000000000000000000000000009000000000000009000DED09CC9E0D0BCCA0AD0CCE9A0D0C9D009E0000090000000000000000000000099A9FBDB9DA9B9FB009000909909B90999B0F9BDEF90999F9A9C9999BF9BDFDBFFF9F090000000000000000000000000000000000000000000000000009A000DAD0FECBC9CADE0BCDCADA90CDCADACACFC90009000090000000000000000000009F909F9FBDBDF9DB90B9F090909099090999099999F9FFFFDB09F0BDBFDFBBF9FDFBDA900009000000009000000090000000000000000000000000900009000C0F00BCACBC0DCCB0D00CE9A0F0CD0D00E0900009000000000000000000000000B9FB99A99B9B9B99E90B9F9BCB9DA9DB9FDBDF9FFFFFFF9FFDB09BDBDBB9FDDBFBEDBD00000000000000000009000009009000000000000000900000900009A9DCFDC9C9C0F0E9CCA0D09CC90CB0F0FC900000000900000000000000000000090F9DBD9BD9F0F9BC9BD9B9DB99F999B9F9BDBFFBFDFFFFFF9A9DB099BDDB9FBFDFFDBCB0000000000000000000000000000090000000000000000900000090CCAD0CA0F0CBC0D0E90DA0CA9ACF0CC0C000090900000009000000000009BF0099BB9B9BFDBB9B9B99B90BC9B99F9DBF9F9BDBF9DF9FFFF9F0F99B9DBBDABFDBDFBFFFE90090000000000000000000000009000000000090000000000900000C9AD0F0DC0F0C9CAD0CA09C90CD00DA9EDE90000000900000000000000000BF000BD0F0F09B9C9F9DA90BD99A9F9B9B99B9DB999BBFFFFDFF9F9F0D0B9DB9D9FBFD9FDBDF900000000000000000000900000000000090000009000900000009CBCDED000F00F0E9CAD0D0E0E9A0F0CC090C00090090000000000000000000909090B99B9BD9BB99A9D9F9B09D09BC99F9DA90F9D09B9FDBDF99A99B99F9DBF9DFBFFFFFBEDA900000009000009000000000000000000000000009000000000C0C0E9EFC90C90C9C0D00A0909C0D0DA9ECE90000000000000000000000000000000BDBD9F9B0D9F9DB9B909BF9BD09B0B9B99F90B9FDFBDFA9F9F9F0DB9B9F9FFBDFFFFDFDB00090000000000000000000900900900000090000000000090090D0D9C9C0AC9ACB0E90CBC9CACADACE9CC900009000000090000000000000000909B99CB9AD9F9F09B9AD09BD9090B999D99CB09B9FFFFDBFDF0BD09BB9F9FBDFFDFFFFDFFED0900000000000000000000000000000000000000000009000000C0F0CADECD0C900D00F00CA909C0D09CB0C909000900000000000000000000000009CBB9F9DB9B99F9D99B909B9B99E99A9B9090D9BD9FFDBDBDB9B99DB9F9DBDFFFFFFFFDBBC00900000000000000009000000900000900000090000009009E9C0FCDA9AC9E0FC0F0CF09CEDA9E0DE0CDA00000000000000009000009000009090F9DFF9B99F9F99B9BD9F909D9F99A99009B090B0B90FBDF9BD90F9BDBDBFFFFFFFFFFFFDE9900000000000000000000000000009000009000000900000000C9C0BCFCD0E9C09E0DA0DE0900C9CA9CB09000090000090000000000000000000090BB99BDBF9F99F9BDA99090B0990900990990BC90099DB9BDB0999F9F9F9FDFFFFFFFFDFBCA0909000000000009000000090090000000000000000090090D0E9CC9CBCAD0E9E0DACDE0DACAD0E9C0C000900000000000000000000000000909A9BD9BDBD9BDFBDBDB9DA9B909B09C90B099CB99F0909B9BC909B9F9B9FBFFFFFFFFFFFFED0900000000009000000000000000000900000009000009009AC0C90C9EBC0DAC9C0F0C9E0F0C9DAD0CADA90000000900000000900000000000000090DBF9F9FBDB9DBDBDB9D09AD909B00D9B0B99F999BDFFD9B9B99F99FFFDFFFFFFFFFFFFDFF00090000000000000000000000900000000000000090000C0DCBCDACDCF9C9ACBC0F0E9C0F0AC0AD0D0C0090009000000000000000000000000009B99B9FBDFBDBF9BDBDBBD990B0999B09D99B99BDFFFFFF0D09DB9F99FFFFFFFFFFFFFFFFCDA90000000000000000000000000009000000000090000909C09C0CDA9E0CA0CD09E0D0CBC0DC9ED0E0F090000900000000000000009000000090909FFF9BDBDBDBDBDB9F9D9A999099BD9B9BDDF9FFFFFFFC9B9F9BDBFFFDFFFFFFFFFFFFFFFB00000900000000000000000000000000000900000009000A9EC9EBCDE9F09C9A0E0DACBC0DA9AC0F0DC00009000000000000000000000000900009BF9BDF9FBDBDBDBDF9F9B9DB099AD9BDBF9FBFFFFFFFFDB9DB9F9BDBDFFFFFFFFFFFFFFD90D0090000900000000009000000000009000000000000000DCDAF0D0F0FCC0AC0D0BC90C9E0CCDAD0E9AD090A00009009000000000000000000009A99F9F9FBDB9BDBDB9FBF9F90B0999BDBD9BBDFFFFFFFF0D9B9FFFFFFFBFFFFFFFFFFFFFFFF00000000000000000000000000009000000000000000009ADADC9EF0FCB0D09E0D0ED0F090B00DADCE0C0A09009000000000000000000000000909F9BFBF9DBDF9F9BDF9D9F9BD990F90BDBD9FBFFFFFFFF9BDF9BDBDF9FDFFFFFFFFFFFFFFCBF000000000000009000000000090000000000009000000000DAFE9EF0FE000C0DAD00E0CAC0DA0D0BCDE909000000000000900000000000000000B0BD9F9FBDB9B9F9F9FBF9BDB9E999BDB9BD99FFFFFFFD9BBBFDFFFBFFFFFFFFFFFFFFFFFBD0900000000000000000000000000009000000000000000009ED0FF0FFAD0C9ADAC0DE9C9C9A0C9CACDA9C000090000000000000000000900900099F9FFF9F9F9F9F9BDBF9DBDBDB99A9D99F9B9FFFFFFFFFFDFDFFBFDFDBDBDFFFFFFFFFFFDF9E00090000000000000000000000000000900000000900900CB0FE0FF0FF90C00D0F00C0A00D0BCADF0CF09090000090000000000000000000009A99F99FBDBDBDBFDB9F9FBDB9BDBD9B0FB9DBDBDFFFFFFFFFFFBFDFBFFFFFFFFFFFFFFFFFFDE9000000000009000000000000000000000000000000000909CFF9FDAFDAC90E9E00DA0D0C9AC09C00F0CE00000090000090000900000000000009A9FFBDF9F9FDFDF9F9F9BDBF9B9BF999DBD9BDBFFFFFFFFFFFDFFFDF9F99FBDFFFFFFFFFFFF0900000000000000090000000909000000000000000090CAC9CAFAFDAFF00C9C9EDAC90CB0C9ACBCFCE90900090000090000000000000000000009F9FDFBF9B9BD9FB9F9F9BD9F9F90BDB99B9DBDFFFFFFFFFDFFFFFF9F9FFBDFFFFFFFFFFFDE90000000000000000000000000000000000000000000009C9EBDCF0BFCB0E9E0E9C0D0E90C9AC9CBC090000900000000000000000900000000099BDBDBBDDBDBDBFD9B9B99F9F9B99F9A99F9F9BFFFFFFFFFFFFFB9F9F9F9BDBFBFDFFFFFFFE9000000009090000000000900000000000000000009090DE9ECD0EBCFCBFD00D0D0ADAD00DA0D0E9CADE90000000000000000000000000090090009BDBFDBBDBDBDB9FDDBDB99BF9DF9F9DB999F9BFFFFFFFFFFDEDF0F9FBFFFDFDFFFFFFFF9F000000090000000000000000900000900000000000000000C90BC9CDABCF0CF0ACD0C0ECD0DAC9CE9C0000900000090000009000000000000000090BBDBFDBF9F9BDA9BBDA9F099A9B09B99F9F9FDFFFFFFFFFCB9B9F9F9DFFFFBFFFFFBFFFE9090090000000000000009000000900000000000090000090FCDCBCBCDCBC090DC9ADAD09AC0C9E0DCBDE900009000000000000000000000000000009FFBDBDBBDBDB9D0909D09E9D99F9D9F9BDB9BFFFFFFF99BDBC9090B90B9BDFFDFFFFFFD000000000000000000000000000000000000090000009000C0000C0C9E9EFCAC0A0CC0CBCC9E9E0D0AC00000000000000000000000000000000000909B9F9B9BDB9BD9A9A990B0990B0B9AB9BDBDFFFFFFDD0BC990A90B090B9FEFF9FBFDFA9000000000000000000000000000000000000000000000000090DAD0DAD0FC99C9C9CB0F0C0BC0C0DACD0FC9090000000090000000000000000900000909FCBF9F90F9A99D99A9090A90909D0D9BDBF9FFFFEB909A09909C99F9F9F9FFFDBFBDB00090000000000090000000000900000000000000900000900C0C00CDAC9EF0CAC00C90DAC0BCBC0DACD00E000900090000090000000900000000000090BBDBCBFB9D9B0B09099A9909090B9B9DBDBFFFFFD0E909000909A09B0FDFBDEBCBDBC09000000900000000000000090000000000000000000000000900DA0CDAD0FF0D09E9CA0D0D0D0DE0D9ADF090000900000000000000000000000000090099B9B99DB9A9D090B009000A909099FBFBDFFFFDA9909090B9A999CDFBF0F9999B9A0900000000000000000009000000000000000000000009000000C90CD00DE9EC0CAC9C0CDACACACA0D0ECC000009000000000000000000000000000000090B9F0B0B0BD909BC90BD09990B090F99BDFFFFDF090B009090000AFB0D099A09ADBC900000000000000000000000000900000000009000000000000000C90EDE9ED0F0D00ADA0C9C9C9CDAC9E9ED09A0000090000000000000000000000000000909D090900B0F00090BFA00909A99BFDBFFFFE99F00090F0009090DF000099F9B0B0000090000000090000000000000009090000000900000000909C90CC9C0DEBD0CAC9C0D09AC0FCBCDAC9E9CA0D09000000090009000000000090000090090B0B90909090B0900009DF00909099BBDBFFF9E099090BC9000000A9009B090F0D0900000000000000000900000900000000009000000009090C0000C9A0CBCBCDCAD09C09A0E09E00C0ADF0CCB0DA000900909000000000000000000000000000990B0B000BC0000F0BE009A909A9F9FFFFFF99A09009A00909090009E909B90B000000000000000000000000000000000000009000090000C90F0D0C0D0CDCBE09C0E0BC0D0D0C9EDADC0EDBCDE090B0C9A000000000000000000000000000909AD090900900909A090990090B9DBBDBFFF9E009009000000000009E909E9CB009000000000009000000000000009090A90900000900000DA0C0C000D0CBCBED0CBC9C0BC0CA9E090DCAFDAC0E9E000AB0C0000000000000000000000000000909A90099C000000900000900099B9FFBF9FF90909009009000009FE90A99A90900090000000000000000000900000009000000000000090009009E9C0E9CBC9FE9CAC9C0DA9C09CECA9C0EDBE9C9F0DDEB090000000000000000000000000000909ADB0B09090000099B009090F9B9F9FFBDF9CA090090009C9FBD00990BCB009000000090000000000009000900000009009009000000090C9C00C9C0C9CF0F90D0DA9CADC0FCA90DCBC9E0DE9ECBFAFC000090000000000000000000000000090909009BDAD9CB9A0009A09B99FFBFF9F0B9B0900909B0B9A0009BCBF0909000000000000000000000000000009000000000900090000C00009C000DACBCFCCACAC0CE9CAFC09CFCAC9ECDE9ECBDAFC090A000000090000000000000900000909A90B09009A0B000909009B09FB99F9FF9F00900900000900909A09009000000000000000000000009000000000009000900000900909090D0C090D0C9CBCB0D0DAD09CAD0ADE009CBED0F0EDBEFFF900D9C90000000000000000000000000090990D9E0909900900909909DB99FBFF9F90DB0090909090090B09090900000000090000000090000000000090000000900090000000C00C000900E0DACF0FE0E9C0ADAD0FCFADEDE9C9ADAF9EDFBEFEF0A9A009000000000000000000000000000A9A990B000990900000B090F99F9B9E9B0900000009090090000000000000000000009000000900000000000090000000009009090D09C0C0AD0D0D0DE9FC9CADCC00E0F0DADACADEFFDEFBFAFFBDADFED0000000000000000000000009009099090A9090900000900009FB9BF9FFF9F9DAD000000000090909000000090000000000000000000000090000090009090900000000E0C00909C000C0F0DE99CAD00BCF0D0FEF0E9DEBEBEBFEFFFFFEDFADA09A09000000000000000000000000000909090000090000999B999F9FBF9DA9B99A90900000000000000000000009000090000000000009000090000900000000000009C909C00C09CF0F0DE9EE9C0FCC90DAD0D0ED0E9FDFFFFBFFFEFFADFAD009000000090000000000000000909B0009000900009090BE9DADB9F9F9FB9F0F09000090090000000000000000000000000090009009000000000B00900090090009C000C00D090C00D0CF0FFCBED0BCE0C0ADADBEDE0CBEFFEFFEFFBFFEBDA0009009000000000000000000000909B9A09000090CA9C9D9B9B9F9FBDF9F9DB9F9BD9F090090000000000000000009000000000000000000900D00D00A90000009009CD09C00C0C9C0C9E0F0FADCBEC90DADC0CAC9ADCBCBFBFFFFFFEFFBFE0D000A900000000000000000000000909C99A9DBDA999B9FB9FDF9BDBDBFF9BBDB9E90B00090000000000900900000000000000000000000000C9A9FA9ED009090000C0A00C09C00B00BCE9CDADDFAFC9EDE0C9E9C9EDCBCFDFEFFFFBFFFFEFE9000900000000000000009000009090B9B9B9DB9BF9FBDFB9DB9B9FBFFFF9FFDBDF9B9009000900900000000000000000009000000000009000FADFCBDE90F000090090D0D00C090C0DC09CFADFEADBFE9E9CBC0E9E9EADC9AFFFEFFEFFFFFF9E90009A090000000000000000000009099ADB09F99BF9FBDFFBFDF9F9F9FFF9BF0B9FC9009000000090000000000000000000009000000000900DEBFEFBEF0DCB0000C0000D090C09C00FCB0DFA9DECBFEBEDCBC90C0DCACFC9FFFFFFFFEBFEFEFE9009000000000000000000009090B0D9BDBDBF9DBF9FB9BD9FBFBF9FB9FF9F9F09B00000000000000000000000000000009000000090000090DFBFFE9EDACC9CA909C000C090C00D00DCF0DFCADBF0FFFABC0EDADA9CBCBEBFFFFFFFFFFFBFC9000009009000000000000000000909B90B9B99FBD9FBDFFBFBDBDBDBCB9DA9BDB0009000000000000000000009009000000000000000000000FAFFFBFDAD0F0C9C0C09C900C09CDACD0E9EBC9C9ECFFF0FCDE90CC9EFC9EDFEFFEFFEFFFFFCB000909A00000090000000900000909B09F9FF9FB9FBDBDB99F9FDFFBDBD9A9D090909000000000000000000000000009000000000900009000DBDFAFCFADAD0C9C0C90C000D09C000DAC9CBCFCBCF9E9EF0FA9EDEBCC0BCDADBFFFFFFFFFEFBC0900000000000000090000000090909DA9B99B9DBDFBDBDBF9F9B9BDBDBC9B09A90000009009000000900009000000000000000900009000090FAFFBF0FC0C9CAC90C090D000CA0DC0DADEDF0EDACBCF9EFDECBC9CBDCCADCADFBFFFFFEFFFEF00009009000000000000000000009A999F0F9FBBDB9FB9BDB9F9F9CB9A9B00909090000000000000900000000000000000000900000000C0000DFFFFFF0FDE0DC0CB0C000D0D0D00F0CD0F0FFFADFCF0F9FAFBCFACCADADADCFAFFFEFBFFFFFF0F09009000900000000000000000009A99B9B0DDBDBDBDBF9DB9EB99F9D0090B000000000000000000000000000000900900000009000900909EBFFEBCF0C0D009C0C90D000C00C9C9CAD0F0FFFFAFBFEF0FFCF0CDADAD0C0DADFEFFFFFBEFBEF0000000000000900000000000090909DA9DBDBBB9B9F9F99BBD99DB09B0909009090090000000000009000000090000000000000009000000CBFFFBDF0DAD0E9C009C00C0D00D0C0CADCF0FFFBFFFEFBFFEBE9EF0D0DE0F9EDADBFFFEFFFFFFDF0909009000000000000000090009A9BDB9F9F9DBDBDB9DBC99A9B0F09A000900000000000000900000000090000000000090090000009000BDFFFFEBEDC0D0C09C00D09E09E0DAD0DADADF0FEFFFFFEFBDF9E9EBCE0DCCC00DECBFFFFFFFFFAFC0A090000000000000000000000090090B9B9BBDB9BDBB9B9BD0990909090090000000000090000000000000000090000000000000000090CBFFFFFCBCBC0D0C09C00E09C0D00D0E0D0F0FFFFFEBFFDFEEBEFFDEDBDADA9FCAD9FCBFFEFFEFFF090000000000000000900000000909B9BDBDBC9B9F9BD0F9F9A9F09A900090009000900000000090000000000000000090000009009000009EFFFFFBCBCCBC0BCC09C9C00D0CD0C9DE9CF0FFFBFFDAFADBDFBFAFACECADCC0D0ECBEFFBFFFFADAC090009000000000000000009009B0D099B99BDB9BE9B9B0D9900900909090000000000000000000000000009000000000000000B009CC9FFFFEFBCFCC90C9C0A9C000CD00F00FCE0DE9FC9EFCBEDADAFAFEFFFFBDBDADADE9C9CD0FFFFFFFEF9C00900000000000000000000090099BCBDBBDBDAD99BC99A009B09000000000000000000000000000090000000900000090009000000BCFBFFBFEF9E9ED0C0D0C09CD0A9C0CD0D0DE9EFBE9EBC9EDEDFFFBFFFFFEFEDADADE9E0FC9EFBEFFFAFBC00000000000000000000000090A09B09C9B9B9BBD9BC999A090090900090000000000000000000000000000000900000000000900009EFFFFFBFE9C00D0C0C9C00AD0C9C9ACADA9E9CFCFC9EF0FBFAFFFEBFEFFBFFFFFE9EDBCBCBDFFFFBFFCA9000009000000000000000090999009B9BC9BD0D0B90B00900090000900009000090090009000900000090000000900000909000900CBFFFFFFCBEDED0E90D0AD0D0C9CACD0DCDE9EFB0F0FE9FBEFFFAFFFFFBFFFAFFAFFFBEDF0FEFBFEFEDA90090000000000000000090000000A990D09BD9B9B9A900B09090090000000009000000000000000000000000000000000900000000DBFFFFFFEBF0D00D0CC00D0C0C9E0C9C9E9E9EDBCF0F9FFEFFFBFFFFFFFFEFFFFFFFBEFFBEFDBEFFFFBFFC0000000000009000000000009090900B9B099A909C9090900000000090090000000000000000000900900009009000900000000900ADBFFFFFFFCF0CF0D09AD0D0F0C9C9CADCF0DEAFFFFEFAF9FAFEFFFFFFFFFFFFFFFFFFFFFFBEFFBFFFEFBF090000090000000000000000000909009CB0D9BDA99A090090090090000000000000000900000000000090000000000000000900090EFFFFFFFBF0F0C0CC0C0C0C0D0C9E9C0E9EBDF0FFAFBFFEFFFBFFEFBEFFFFBFEFFEFFFEFFFFBFFEFFFBCF00090000000000000000000009000090B099A9C9900900090090000000000009000900000009000000000090090090009000900090DBFFFFFFFFFE9E9CB0D0DAD0D0E9C0C9E9C9CE9FFFDFFCFBFFFFFFFFFFFFFEFFFBFFFFBFFEFFFEFFFBFCFB0900000000000000000000000000090090B090B09A9009000000000090000000000000000000090009000000000000900090000B0EFFFFFFFFFFE9CD0D0C0C0D0E0C9C0CDADCFEFBFFAAF0FBEFFAFFFFFFFFFBFFFFFFFFFFFFFFFFFFFBFEFBFC0A0900000900000000000009000900900909A90B00900090090009000090000000000900000000000000900009000A0090090AD0FDBFFFFFFFFFFFE0C0C9CBC00D0D0D0F0CDA0DADADFFBFEFFBFFFFEBFFFBFFFFFFFFFFFFFFBFFBFFFFFFFEBF09000009000090000000000000000000900090909000900000000000000090009000000090000000000000000009090000000DADAFFFFFFFFFFFFF9F0F0C0C9C90C0CAD0DACDE9CFFAFFEFFBFEFFFFFFFEFFEFFFFBFEFBFFEFFFFEFFFFFFFFFC90090900000000090009000000000900009000090909000900090000000000000000000000090090000000900000000009009AFFFFFFFFFFFFFFFFECD0C9C90CAC9E9C0C0D0F0FBCBDFFFBFFFFFFFBFFFFFFFBFEFFFFFEFBFFEFFFFFEFBFAFCBC0B0000000000000000000000000000000009090000000000000009000000000000000000000000090900000909AC9090009EFFFBFFFFFFFFFFFFE9F00DAC0C9C9C0C0D0F0F0DECBFFAFFFEFFFBFEFFFFFBFFFFBFFFFFFFFFFFBFFFBFFFFFFBE9000B00000900000000000900000000909000000090009000090000000000000000900009000000000000900000900009000BFFFFFFFFFFFFFFFFFC0FC0D0D0C0C9C9CAD0CCFADBFCBFFFFFFFFFFFFFEBFFFFFFFFFFFBFFFFBFFFFFFFFFFFEFF0900090000000000000000000000000000000009000000000000000000000009000000000000009000000000900009000090BDAFFFFFFFFFFFFFFBFC0D0C0CB0CBC0E9C0DA9CDACBFCFFFBFFBEFFBFFFFFEFBEFFFFAFFFFFEFFFFFEFFFAFFBDAC009000900000090000000000009000000000000009000009000000900000900000000900009000000000009009000009000CBFFFFFFFFFFFFFFFEDAD0F0D0C0D0C9C0D0EDCB0FDADBFFFFFFFFFFFFFFFFFFFFFBFFFFFEFBFFFEBFFFFFFFEFFE90900090000000000000000000000000000000000000000000000000000000000000000000000000090009000AC0090B000DBFFFFFFFFFFFFFFFADAD0C0C0C0D0C9C0DAC9CADEDAFFFAFFFAFFFBFEFBFFBFFFFFEFFFFFFFFFFFFFFFFAFFFFFAD00009A00000000000000000000000000000090000000009000000000000000000009000000000009000000090909A000000BCBFFFFFFFFFFFFFFF0DC0D0DAD0CB0CBC0D0E9DCB0FDADFFFFFFFFFFFFFFEFFFFFFFFFFFBFFFFFFFFFBFFFFFFFFEFC00090B09090000000900000000000000000009000000000000900000900000900000009000090000900000000009090900BFFFFFFFFFFFFFFEFF0DAC9C0C9CC9C0D0C9CCADEDAFFAFFFFFFBEFFBFFFFFFEBFFFFBEFFFFFFEBFFFFFFFFEFFFF0B0900000000009000000000900000000000000000900000000000000000090000000009009000000000909000909000000DFFFFFFFFFFFFFFFFBCF0C9E0D0E09C0D0F0E9AD0F0FCBDFFFFFFFFFFFFFFBFFFFFBFFFFFFEFBFFFFFEFFBFFBFFF0FC000909000000000000000000000000000000000000000000000000000000000000000000000000900000009000000B09FBFFFFFFFFFFFFFFFFDE9ED0C9C0C9C0F0C0C9CDCF0FCBFFAFBEFFFFFFFEFFFFFFFFFFFFFBFFFFFFFFFFFFEFFFFEFFBDE9000009000000000000000000000000900000000009000000000090000000009009000000900000000000000009000AFFFFFFFFFFFFFFFFFEF0CD0C9C0D0C0D0C9C9CE0F0FCBF0FFFFFFBFFFBFFFFFEFFFFEFFFFFFFFFFFFFFBFFFFFFFBFEFBCA9090000900000000000000000000900000900000000000000090000900009000000009000000009000B0090900009FFFFFFFFFFFFFFFFFFFBF0ADAC9E0DAC0DAC9E90F0F0FCFF0FFFFFFEFFEFFBFFFBFFFFFBEFFFFFFEBFEFFFFFBFFFFFFBCF9C0A09000000009009000000009000000000009000000090090000000000900000900000000000000900000000099FFFFFFFFFFFFFFFFFFFFFCFD0C9C0D0C9C0D0C0CDC9CF9ADAFFFFFFFFFFFFFFFFFFFBFFFFFBEFBFFFFFFFFFFFFEFFFFBEFBCA909000000900000009000000000000000000000000000000000000000000000000900000009009000909009090FFFFFFFFFFFFFFFFFFFFFEBC0C9CAD0C9C0F0C9CBCADEBCFFFFBFFFBFFBFFBFFFBFFFEFFFFFFFFEFFFFFBFFEFFFFFBEFFFFCF90C009090000000000000000000000000000000000000000009000000900009009000009090090000000000000BFFFFFFFFFFFFFFFFFFFFFBCBCBC9C0D0E9C0D0E9C9DE9CFBCBCFFBEFFFFFFFEFFEFFFFFFBFFFFFFFBFFFFFFBFFFFFFFFFFBFAFB0900000009009000000900000000000900000000090000000000000000000000000900000000009000090909FFFFFFFFFFFFFFFFFFFFFFDFC9C0C9C0D0C9C0D0CAC0DE9CFBFBFFFFFFFEFFFFBFFFBFFBFEFFBFFFFFFFEFFFFFFBFFFFFAFFFFDE9E0909000000000000000000009000000000090900009000000000000090000009000000900900009090000FFFFFFFFFFFFFFFFFFFFFFFFADE9CBC0D00D0E9C9C9CFA9EF0FCFFFFFFBFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFEBFFFEFBEBE09000090000000900000090000000000009000000000000009009000000000000000900000009A9000000FBFFFFFFFFFFFFFFFFFFFFFEBCD0C9C0DACDAC9C0E9ED0DCF0FBFFAFFFFFFFFBFFFFBFEFFFFFFFFFFFFEFFFBFFAFFFFFFFFFFFFFFDBDA09000009000000009000000009000000000000000000000000000000000900009000909090000000090FFFFFFFFFFFFFFFFFFFFFFFDFCADAC9C0D00D0C9C9CCBCEB0FEDADFFFFFFFBFFFFEFFFFFFBFFBFFFFEFFFBFFFFFFFFFFFFFFFFBEFEFADBC09000009000900000000000000090000000000000000000000000000000090000000000C90C9C90CBFFFFFFFFFFFFFFFFFFFFFFFBE9D0D0CBC0D0C9CAD0D0C9CDE9FBFBFFFBEFFFFEFFFFFFFBFEFFFFFFFFBFFFFEFFFFFBFFBFEFBFFFBFBDBCA9000000000000900000000000000000000900090000900000009000900000000090000B000B0A00BFFFFFFFFFFFFFFFFFFFFFFFFEFCED0E9C0DAD0E9C0F0ADE9ADE9EDEFFFFFFEFFFFBFFFFFFFFFEFFFBFFFFBFFFBFFFFFEFFFFFEFFFFFFEFE9009000000000000090090000000000900000000000000900000000000000000900009000BC0009FFFFFFFFFFFFFFFFFFFFFFFFFFF9E90C9C0D0C0C9C0D0CDC9EDE9EFBFBFFFFBFFFFFFFFEBFFFFFBFFFEFFFFEFFFFFEFFFFFFFBFFFEBFEFBF9EF0090000900000000000909090900000000000000000000000000000000900000090090009090AFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CF0C9E0C9C9C0DAC9CBC9E9FF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFBFFFBFCFF9EDA0090000000900000000000000000000000000090000000000000009000090000000090000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CD0C9C0E9CBC0D0E9CFCBC0FFBFFFFFFFFFBFFFFBFFFFAFFFFFFFFFBFFFFFFFFFFFBFFEFFFFFFFFFFBEFFAD090000009000000090000000900090000090000000009009000090000000000909000090FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCF0E9C0D0D0C0D0C9CCBCBCFF0FCBFFFBEFFFFFFEFFFFFFFFFBFEBFFFEFFFFEFBFFFEFFBFFFFFFFEFFAFFDBCF0C000000000000900000090000000090000000000000000000000000090009000009090CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF0C9CAD0E0D0D0ADACBC9CBF0FBFFFFFFFFBEFFFFFFFEFFFFFFFFFFBFFFFBFFFFFFFFFFFFFFEFBFFBFFFBEFBFA909090000090000009000000000000000000000090000000090000000000000090000BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FD00D0C9C0DACD0C9C0FED0FDE9EBFFFFFFFFFBFFFBFFBFFFFFFFFFFFFFFFFFFFFBFFFFFFBFFFFFFFFFFFBCFCBCA000000000000900900900090000000000000000000000000000900090090000090CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFC0CF0C9C0D0C90C9CADD09EF0FBFFFFFFFFFFFFFFFFFFFFFFAFFFFFFFBFFFFFFFEFFFFEFFFFFFFFFFEBFFEFFBFCB09090000000000000A000900009000009000000000009000009000000000090900BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9F0C9E0D00F0CDAC9D0EDE9CFADE9FFFFFBFFBFFFFFFFFFFFFFFFFFFEFFFEFFFFFFFFFFFFFFFFEFFFFFEFFBFFCBC9C0009000090009090900000000009000000000090000000000000900909000ACBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9E0C9C0DACD0CF00DACE9CBCBE9FBFFFFFFFFFFFEFFFFFFEFFFFFEFBFFFFFFFBFFFFFFFFFBEFFBFFBFFFFBFFEBFFFFBE9009000000000000B00900000000000000900000000009000900000000909BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAED0DAC90C90C90CD0C9DE9CF0DFCFBFFFFEFFFEFFFFFFBFFBFFFFFFFFFFFFBFEFFBFEFBFFFFFFFFFFFFFFFFFFFEBCBCBCBC0000000090090000009000000000900000000900900900E0009000000CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBCD0D0ED0CBCC90E9CA0DE9EFAFBDEFFFBFFFBFFBFFBEFFFFFFFFBFFFBFFFFFFFFFFFFFFFFFBFFFFFEFBFFEBFFBFFFFFBE9AD0900900A9009090000090000000000000000000000090900009000DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEDADE0D00D0C90E9C0DCDE9E9CDBCFBFFFFFFFFFFFFFFFFFFFFEFFFFFFFFBFFFFFFFFFFFFFFFFFEFFFFFEFFFFFFFFFBFBFFFF0B009A0990C9AC00090000090000090090090009090000009000C9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDAD0C9C0DE0D0C9C0DA9E9CBDEBEFBFFFEFFBFFFFFFFFFFFFFFBFFFEBFFEFFFFBFFFFFFFEBFFFFFFFBFFFFFFFFFFAFFFFFBFBFEBC09FACB9E9BC9000900009090000000000900000909000090B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCBC9CBC09C0F0C0F0CD0DE9E9F9EDAFFFFFFFEBFFEBFFFBFFFFFFFFFFFFFFFEFFFEFFFFFFFFFFFBFFFFFFBFFFFFFBFFBFFFFFBFB9A9DACB9EBFA9E0C0900000000000900000900000090090CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9E0C9CC9C0D0D0DACF0DE9ECFBFFFFFBFFFFFFFFFFFFFEFFFFFBFFFFBFFFFFFFBFFFBFFFEBFFFFFEFFFEFFEBFFFFBFFFFBFFFFEDABDBFEFDADE9FBCA9A909009090009000009000000F0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FC9C9E09C09CBC0D0D0DADE9BCF0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFEFBFFFBFFFFFBFBFDE9FBFBFFBFFCBDAC00A09000000000090009090F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9E0D0C9EC9C0C0F0CBCBCF0FCFBFFFFFFEBFFFFFBFFBFFFBFFAFFFBFFFEFFFFFFFFFEFFFFFFFEFFBFFFFFFFFFFBFFFBFFFFFBFFFFAFBEFFFEDAFEBFFEDBF09C0009A90900000000ACBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC0D9E0D009CAD0D0C9CE9E9EDBBCFBFFFFFFFFFAFFFFEFFFFFFFFFFEFBFFFFFFFFFFBFFFFFFFFBFFFFFFFFFFFFFFFBFFFFBFFFFFBFFFFBFBFBFDBDFAFBE9EF0BDAD00C0AD09000D09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE0D0CDCC9C0DAD0F0DCDE9ECFBDEFFFBFFFBFFFFFFFFBFFFFFFFFFFFFFBFEBFFEFFFFFAFFFFFFFEFFFEFFFFFEFBFFBFFFFFFFBFFBFBFFFEFFAFFBFFFFFF0FCADAF0BFCAACC99AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BD0C9A009C09C0D0CDADA9E9F0FBFBFFFFFFFFFFFBFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFBFFFFFFFBFFFBFFFFFFFBFFBFFFBFFFFFFEFBFBFBFFAFFFBEF0FFADBFCBFCBFDFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FCCCBCDCFC0BCC9CADADADCFDAFDEFFFFFFFEFFBFFEFFFFEFBFFFFFFFFBFFFFFFBFFFBFFFFFFEFFBFFFFFFFEFFBFBFFFFFFBFFFFBFBFBFFEFFEBFFFBFFBFFBCFBCEBDEBCFAFEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9A9C00000DC9AC0D0C9CFADADEBDBFFFBFFFFFFFFFFFFBFFFFFEFFFFEFFFBFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFBFBFFFFBFFFFFFADBCFBDEBDFBFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9FCD0DEDCD00CC9CBCBCF0DCBCBDEBFFFFFFFBFFFFBFFFFFFFFFBFFFBFFFFEFFFEFFFFFFFBEFFFFFEFFFEFFFFFFEFFFFFFBFFBFBFFFFBFBFFFFBFFFFFFFFEFFEBEDEBCAFCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E9E0909AC909C90CD0CF0BCBDEBDEBFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFBFFFFFFBFFFFBFFFBFFFFFBFFBFFFFFFFFFBFBFFFFFFFFFFFFFFFFFBE9E9EBCBFDBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F9C0DCCCC9ECCACC9ACF9EDEDE9EBFFFFFBFFFBFFFFFFBFFBFFFFFFFFFFFBFFBFFBFFFFFFFFFFFFFFFFFFFFFFFFFBFFBFFFFFFFFFFFFFFFFFFFFFFFFFFAFE9EDBCF9EDAFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE9C00B09C909C9BCD90CF09E9FDFBFFFFEFFFFEFBFEFFEFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFFEFBFFFBFBFBFBFFFFFFFFFFFFFFFFFFDBDE9ECBCE9EDADEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD0FCDCC0CCD0CC00ECF0CFCBCBE9FFFFFFFFFFFFFFFFFFFFFEFFBFFBFEFFFEFFFEFFFEFFEBFFEBFFEFBFEBFFFFBFFFBFFFFFFFFFBFFFFFFFFFFFFFEFBEF0FCBDE9FCBCFBFFEFBEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBECF00090B09A090DD09CF9CBCFE9FEBFFFBFFBFFFFFFBFFBFFBFFFFFFFFBFFBFFBFFBFFBFFFFFFFFBFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFBFBCF9EDADA0F0ADA9E9ADBEDBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED90DCFCCCCCCDECCACDE9CADCB9EDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFBFFFFBFBFBFBFFFFFFFFFFFFBFEFFBECB0DCEDCEDCEDCEFCE9EDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0EC0009090900909CBC0CED0FCFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFFFFFBFFBFBEDBFCFAD9E9DAD9E9DADBC9ECBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DEDCCDCCCDCCD0DCBDBDADADADEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE9E9CAC9E0DAC9E0DAC9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0CA900B00B00B00E00C0C0DADADBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEFDEFDEFDEFDFFFFFFFFFFFFFFF000000000000000000000105000000000000A9AD05FE,'Janet has a BS degree in chemistry from Boston College (1984). She has also completed a certificate program in food retailing management. Janet was hired as a sales associate in 1991 and promoted to sales representative in February 1992.',2,'http://accweb/emmployees/leverling.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(4,'Peacock','Margaret','Sales Representative','Mrs.','09/19/1937','05/03/1993','4110 Old Redmond Rd.','Redmond','WA','98052','USA','(206) 555-8122','5176',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D20540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FDB9BFBFFBFB9FBDBBBFDBF9FBFBFBFBFBFBDBFBDBFBBFBFBFFD0000000000000000000000000000000000000000000000000000000000000000BBDBF9BDBF9BB9BFB9FBFB9FB9BBFBBBBFBBFB9F9B9FB9BF9BF9BFBBFBBFBDBF9FBDBF9F9BDBFBFBF9FBB9BDBB9BBF9BBFBFBFBFBFBFBFBFBFBFBFBFFBFBFBBA00000000000000000000000000000000000000000000000000000000000000009BFB9FBB9BBDBFB9BFB9BFFBDBF9BDBDBBDBBFFBFBFBFFBBFFBBF9F9BDB9BBFBBFBBFBFBFBBFFB9F9BB9FBFBB9FBDBFBFBFBF9FBFBDBF9BFBFBFBFBF9FFBFBD00000000000000000000000000000000000000000000000000000000000000000BFB9FBB9FBDBB9BBFBDBF9BBBFBBFBBB9FBBDBB9BFBF9BBDBB9FBFBBFBFBFF9BDB9FB9BDB9F9FBFBBFBFBDB9FB9BB9BFBF9FBFBDBFBFBFBF9FBFBFBFBFBF9FB000000000000000000000000000000000000000000000000000000000000000009BFFBBDBB9B9FBDBDBBFBBF9FBDF9BDBFBDFBBFBF9BFBFFBFBFBDBFF9BFB9BBFBFB9FBFBBFBBF9BDB9FBBBFBBDBDBF9BDBFBFBFBFBFBFBFBFBFBDBFBFBFBFBF0000000000000000000000000000000000000000000000000000000000000000009BBF9BDBF9B9FBBBDB9F9BF9BBBFBB9BBBBF9BFBFB9BB9FBDBFBB9BFB9FBF9BDBFB9F9F9BDBFBFBBFBDBFB9FBBB9BBFBBBDBFBFBDBF9FBFBF9FBFBFBFBFFB0000000000000000000000000000000000000000000000000000000000000000000BDB9FBB9BBFB9BDBBBFBBFBFBDB9BDBF9F9BFF9FBDBFFBFBBFBDBFB9FBBDBFBBB9BFBBBBFBBFB9BDB9BF9BFB9F9FBF9BFFBFBDBFBFBFBDBFBFBFBFBFFBF9BF0000000000000000000000000000000000000000000000000000000000000000009BBFBB9FBDB9BFBBBDB9F9B9FBBBFBB9FBBF9BBBFBFB9BB9F9BBFB9FBBDBBBDBDBFB9FBDB9FFBFBBFBFBFB9FBBBB9BBF9BFBFBFBFBFBFBFBFBFBFBDFBFBFF90000000000000000000000000000000000000000000000000000000000000000000BF9BDB9BB9FB9F9FBBFBFBFBDF9B9FBBF9BBFBF9B9FBFBFBF9F9FBBDBBF9FBFBF9FBDBBFB9FDB9F9B9F9FBBDBDBF9FBFBDBBFBDBF9FBF9FBFBFBFBFBFBBBE00000000000000000000000000000000000000000000000000000000000000000009BFBBFBDBB9FBBB9F9B9BDBBBBBDB9F9BF9FBDBFBFBB9F9BBFBB9FBBDBBF9B9BBB9BBDB9FBFBBFBFBFBBBDBFBBB9BB9BFBF9BBFBFBFBFBFBDBFBFBFFBDFF90000000000000000000000000000000000000000000000000000000000000000000BDBDB90B9FBB9F9FBBFBFBF9F9FBBFBBFBBFBBF9F9F9FBFBDBDBFB9FBBDBBFBF9FBF9BAF9BFBDB9BDB9BDBFB9BDBBDBFBFBFFFBFBFBFBFBFBFBDBFBFBFB9A00000000000000000000000000000000000000000000000000000000000000000009BBBBBFBF9B9FBBB9F9F9B9FBBB9F9BDB9F9BDBBBBBFBB9FBBBFB9FBBDBBDBB9EBB9FBF9BFFBBFBFBFBFBB9BFBBF9BB9FBDBBBDBFBDBF9FBFBFBFBFBFBFF000000000000000000000000000000000000000000000000000000000000000000000BDBDB9B0BFB9F9FBBBBFBFBDBDBBBFBBFBBFBDBDBDBDBF9F9F9FBBDBBDBBDBF9F9E9B9FA9FDB9F9B9F9FBFB9F9BF9FB9BBFFBFBDBFBFBFBFBFBFBFBFBBF0000000000000000000000000000000000000000000000000000000000000000000009BBBDBDB9BDBBB9F9BDBB9BB9BDB9BBDBDB9BBBBFBBB9BBBFBB9FBBDBB9FB9BBBBBF0B9FBFBBFBBFBFBBDB9FBBF9B9BFFFB9FBFBFBFBFBFBDBFBF9FBDF9A000000000000000000000000000000000000000000000000000000000000000000000BDBBBB9FB9BDBFBBFBBDBF9F9BBFBDBBBBFBDBDB9F9FBDB9BDBB9FBF9FB9F9F9E9BBFA00F9FB9F9FB9FBBFBFDBBBFB9B9BFBBFBF9FBDBFBFBFBFBFBFBB0000000000000000000000000090BCBC9F0A9E000000000000000000000000000000009BF9F0FB9BFB9B9F9BDBB9B9BBF9BBFBDFBDBBB9FBFB9BBF9AF9FAB9AB9FAB0B9FBC0000FB9FFBB9FB9F9BDBB9F9BDBFBFBBF9FBFBFBF9FBF9FBFBFBF9000000000000000000000000DA0F0BCBF0FDF9FBFEB00000000000000000000000000009BB9BB9FB9BFBFBFBBDBF9BF9BBDB9BB9BBF9FBB9B9F9E9FB9B9F9FBDAB9DBFA0000000F0B0BDAF9FBBFBBFBFBFBB9BFBDFBFBFBFBFBFBFBFBF9FBDBE00000000000000000000009ABDFDFFBDFF9FAFDF9FDFFAF00000000000000000000000009F9F9A9FBDBB9BBDBB9BF9BF9FBFBDBF9B9B9FBF9ABB9B9FBFA9B0BBDBEB0000000000F0000090B0BDADB9F9B9F9FB9FBBDBBDBBDBFBFBFBFBFBFBF9000000000000000000009EFFDBFA9FDFB9FDF9FAFFBF9F9E9090000000000000000000000BB0BF9B9BBDBF9BBDB99BB9BB9B9BB0BFBFA9A9BDBCBFA9A9BF9FBCA0000000000000B000000000000B0FBFFFBFB9BFBFBFFBFFBFBFBDBFBFBFBFB0000000000000000009BBFFBCBEBDFFFADFEBBFBDF9F9FFFBFFAC000000000000000000000BDBF9BBFBDB9BBE9B0BFBDBF9F9FBDBF09B9BDBCBBB9B9BDBF0A00000000000000000F00000A00000000009A9BDBFFBF9FBBF9BFBDBFBF9FBFBF9BC0000000000000000BEDF9FDFDBDFBF9FF9BDFDFBFFFFDBDFCBDBCB00000000000000000000B9BBDB9BBFBDB9F9F9B9BB9BBB9AB9BBF9E9A9B0F9FBE9A000000000000000000000F000A0000000000000000B0B9FBFBF9FFBFBFBFBFBFF9FBFBB00000000000000BC9BFFEBFBFDAFDFF9FFDBEBDF9E9FFFBFFDBDBCBDAC00000000000000000F0BBDB9FB9BFB9B9BDBBDBDBDBD9E99A9BDBFBF9A00000000000000000000000000D000000000000000000000000B0FBDBBBF9FBF9FBFBBFBFBD00000000000000BCBFFDBDBDE9BF9FADFBCBDBDFBFFBF0BDF9BEBCBDADB0D0000000000000099BD9BBFB9FB99E9BB9BD9BB0B0BB9BFBF0B00000000000000000000000000000000A000000000000000000000000009BFBFDBBF9FBFBF9FBFBDA0000000000000ADBDFDAFFDFBFFDFBDBADBFBDB9FF9FDFFF9FFD9F9A9F0F0A90000000000000BFBBBF9BFBDBFB9F0FB0BADBDBBDBE0000000000000000000000000000000000000F00000000000A0000000000000000BFBBFFBFBFBFBFBF9FA000000000009C9F0FBFBFDBE9FDAFBDFFDBDBCBFF0FFFBF9FF0FBF0F9E9F9F9E90000000000000B9F9BF9B9BB09B9BBDBF9A9BE9A000000000000000000000000000000000000000F000000000000000000000000000000FB9FBFBFB9FBFBFBF00000000000A9E9F9EDFBFDBF0FDBFADBFFF9FDADF9FDFBFBDF9F9F9F90BCBCBCB0000000000009A9FB9FBBC9F0FBDA0000000000000000000000000000000000000000000000000D0000000000000000000000000000009FBBDBF9FBFBDBBF00000000009BCB9BCFBFBDFBDBFBFFDFBD9E9F9BDBBFFBFDFDBFBCB9E9EBDB9F9AD0F00000000009FBB9FB9FBB0B00000000000000000000000000000000000000000000000000000A0000000000000000000000000000000BFFBFBFBFBFBFF90000000000FCBDEFF9FDFEBDAFDFBDFBDAFBF9ADB0FDBFDBFBF0DBDE9F9D0BCBCBDA09E00000000B9B9FB9F0000000000000000000000000000000000000000000000000000000000F000000000000000000000000000000009BFBDBFBDBFBB000000000009BCFBCBFAF9F9FDBBDEBBCBDBD0BDA9F9BDFBEDADBF0B9F9AFBDB9F0B9F09C00000000FBF9FBA0000000000000000000000000000000000000000000000000000000000F000000000000A000000000000000000000BFBFBFBF9FFE0000000000E9BDFBDFDBFFFBFDFBDFDBDADBF0BD00F0B0DBDB0DBDADAD99E9E9BD0F0F0B0000000099BB9F00000000000000000000000000000000000000000000000000000000000D000000000A00000000000000000000000099FBDBFBFBB000000000909FEBFDAFBFDBDF9BFCBFAFBDBC9BCB9F09CB09A9DA09099A9E9B9F0BF9B9E9E0000000BF9FB000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000BFBFBFBFBD00000000000BCBDAFFFDFAFFAFFDBF9F9C9E9BC90F09FBDBE9DA9BDBFA9F090F09F90FCB90D000000B9BB0000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000BFFBDBFB0000000000C9FFFDBDBFBDBDF9FAD9F0FBF9E9FBF9FF09A909A9C9A90D0BBDB9F9ADB9B9E9AD000000FBC0000000000000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000009BFBFBFC00000000B0A9BFFEFFDFFFBFF9FBEFBD0F9FBDBDA99F0DBDBDA9F9E9B9C9ADB0F9ADADA9F0AC0000B9A000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000FBFBDBA00000000009FFE9F9FAF9FDBFF9F9F0FBFBDFADADBE9FBCBDBDF9E9BCF9BDBCB9E9BDB9E9BDA00000F000000000000000000000000000000000000000000000000000000000000000E00000000000000A00C090C000000000000000009BFBFBD000000009CFEF9FBFFFDFFBFD9E9E9F9FBDEBDBF9FDBC9FBCBF0BDBDB9BCBCB9F9BC9ADB9CA90000B00000000000000000000C0000000000000000000000000000000000000000000F0C00A000000A0900A000A0000000C0000000000009FBDA000000000B9BFFFCF9FBFBDBAFBDBFFBDFF9DBFDF0BFBFDBFD9FDBDADADB9B0F0BDBF9ADAB9E0000000000000000000000CA000000000000000000000000000000000000000000000F0A000C00AC090C0000A000AC0AC000A0A0000AC000BFBF00000000A0FDBCBFBFFF9FFDBDAF9BDFBCBFBCBBDFD9F9FDBFDBFDBDBDADF9F9F0F0F9F9DE99E0000000000A000000C0A0000000E0000000A0C0000000000000000000000000000009000000A000000A00C9C0C900090A0900C9AC00000E9AFB000000000DAFFFFDFF9FFF0FDBDBFFFBDF9FDBFDBFBFFFFBDFBF9F9F9F9B0F0F9F9F9FCBB9FA900000000000000000000000C0A000CA000C000A00000000000000000000000000000E000A000000A00000A0A0A0C0AC00C0C00000B00A000DBF000000000BFFADBFE9FFDBFBBEBFFCBDFBFFBFDBDBFDBDBDFBFDF0F9FBCBDBDBCB0B0FBBCDAD00000000000000AC0A000C0A000000000CA0000000000000000000000000000000000F0000000000000000000000A000A00A0A0AC00C0C90A09BE00000000FBDFFF9FFBFADBDF9F9FBFBDF9FDFBFFDBFFFFFFFDBDBFDE9FDBCB9F9F9F9FDBBDBE000000000000000000A00000000CA0C00000AC000000000000000000000000000000F00000000000000000000000000000000000A00A00C00C0B000000009EBFCBFBDFDFBCBFFFFBDFFBFFBFDF9FFDF9FFF9FBFFDBF9F9ADBDE9E9E9B0FCBBD9F0000000000000000C000000AC00000A00AC00000000000000000000000000000000B0000000A00000A00000000000000000000000000A00A00C00000000FDFFBFDFFBE9FBF9F9FDBF9F9FDFBFFF9FBFF9FFFDF9FDBF9FDBCB9F9F9F0F9BDDAF9E00000000AC00000000E00C000A0000C0C00A000000000000A00000000000000000C0000000000000000000000000000000000000000000000A00000009BFFADFFBCF9FBFDFBFFBF9FFFFFBFDF9FFDFDFFF9FBFF9FDBCB9F9F9CBDADB9FFBF9E9000000C00000CA0000000A0000C0E00A0A0C000000000A00000000000000000000F0000000000000000000000000000000000000000000000000000000FBDFFBDFBFFBDFBFF9FDFFF9F9FDFBFFDBFFBF9FFFDBDBE9F9FFDBCBF0F9F0F0BC9FBDF0000A0000A00000E0000000E000000C00000000A0000000000000000000000000B0000000000000000000000000000000000000000000000000000000FEFBDFF9F9FFBDF9FFBF9FFFFFBFDF9FBDBDFFF9F9F9FDBDBD9ABF9DBDBCBDBDBFBDBBCBC0000000000000000E00C000A00A000C00A00000C0009000000A000000000000F000000000000000000000000000000000000000000000000000000ADBFFEBFEBFF9FFBFF9FFFF9F9FDFBFFFDFFF9F9FFFFF9F9FDAFDF9FBCBDBDBCBD9FEDFBDA00000000000A0000000A00C0C0C0A0A000000000A00E00A00000000000A0000C0000000000000000000000000000000000000000000000000000009FFDF9FDBDF9FBFFDBFFBDBFFFFFBFDF9FBDBFFFFF9F9FFBCBF9F9FE9F9F0F0F9EBF9FBDAD00000A00CA0C0A0C000000000A00C0000000A000000000C00A000A000000000B000000000000000000000000000000000000000000000000000000BBFAFFBFFFBFFFDBFDBDFFFDBF9FDFBFFDFFDF9F9FFFF9FDBD9F0FDBDBCBDBF9F9F9FBDFBDA0000C00000000000AC0CA0A000A00000000000000000000000C00000000A00F000000000000A000000000000000000000000000000000000000000FFDBDE9FBDBDBFDBFFBF9FFDFFBFFDBFBFBFFFFFFBDFF9FFBFBDBF9FBDBE9FBCF9E9FBDFBDBE000000000C000000000C0C0C000000A00000A00A000A0C0000000A000000F0000000000000000000000000000000000000000000000000000009FBFFFBFBDFFFFFBF9FFFFFBFBDFDBFFDFDFDBFFDFDFBDFBDFDFBDADBCBDBDADBDBFDBDBFDAD00000AC000A00E000A009A0B000A900000000000C000000A00A00000000000000000000000000000000000000000000000000000000000000009EFDE9BFDFFFBF9FDFFFDBDBDFDBFBFDFBFFBFFDBFBFBDFBDB0FBDBDBDBDADBDBDBF9F0FFDBF9E000000A0000000E00CA0C0C0E0C0E00CA0B0C0000000000000000000A000F000000000000000000000000000000000000000000000000000000BFBFEDFBF9FDFFBF9FBFFFFFBFFFDFBFDBFDFBFFDFDFBDEBDF9DAF9F0F9F9EBDBCDBFF0BFF9E9E0A0000000C000000000A0A000A00CA00C0A0A0A0A0A0000000C00000000F0000000000000000000000000000000000000000000000000000000FDBFF9FFFBFBDFFFFDF9FDBDBDBFFDBFDBFDF9FBFF9FBDFBFFBD9E9F0F0F9DBFBFDBDF9FFF9F90C000C00A00A00C0A0C9C0BC0D0A9CA9A0C0D0C9C0D0E0E00A00A000000B0000000000000000000000000000000000000000000000000000009BFE9BFF9FDFFFBDBFFBFFBFFFFFDBFFFFFFBFFFDF9FFDBDF9DFFBDBDBDBDAF0FDBFFBDBDBFF9EB000A000000C00A00CA0A0C0A0AC0A0C0CB0A0A0A0A00009C000C0A00E0C000000000000000000000000000000000000000000000000000000FEF9FDF9FFBFF9FFFDBF9FDF9F9FBFFDFBDFFDBDFBFFDBFF0FBA9CBF0F0F0BDBDBF9FDBCBFDBCBD00000000000000009000D0A90C9AC90A00C0C00C00C0BCA0ACA0BC0D00B000000000000000000000000000000000000000000000000000000BDBFFBFFBDF9FFBDBFDFFBFBFFFFDFFBFFBFFFFBFFDBFFDBF9FDFBD9F9F9BDBDBDFFBFF9DBFFF9E9AC00AC0A00B000A0000A00C0A000AC9E0B0ADA0E9AC000C900C00A0A0F000000000000000000000000000000000000000000000000000009EBCBDF9FFBFF9FFFDBFDBDFDFBDBFBDFFDFDBFDFDBFDBFFDBF9BDBEBCBCBDADADB9FDBFBE9FF9F9E90000000C000C000E00000A000C0000000000090000ACA0AC9A0C00C0F00000000000000000000000000000000000000000000000000000E9FFBFBFF9FDBFF9FBF9BFFBFBDFFDFFFBFFBFDBFBDFBDF9FDAFCBD9DBDBDAD9F9EFBFFDF9BDBFFDBCA0000000000A0000000000000A000A0C0AC0AC0AC9009C00AC0B0E9A00000000000000000000000000000000000000000000000000000A9BF9FFDF9FFBFF9FFFDFFDBFDFFBFBFBDFF9FDBFDDAD0F99E99DBDEBFADBCB9F0BF9FDFB9EDFDF9ADA9C00A00A00000000000A000A00000000000000000AC0000000000000F00000000000000000000000000000000000000000000000000000FDEF9FBFFF9F9FFBDBF9FBDBFBDFDFDFBDBEDBF9FBDBD9AD99E9099C99E9BDADBD9FFBDFF9BABFFDBF009000000A000000A0000000000A000A00000000000A00AC00AC0000F00000000000000000000000000000000000000000000000000090BBDBFFDF9FFFFBDFFDBFDFFFDFFBFBFFDEDBD0DFDFFFFDDAD99DBC9BC9F0DBDADBF9FFBDFFDDBDBFD9FAC00000000000A000000000000000000000A0000000000009000A0000000000000000000000000000000000000000000000000000000ADEBFDBFBFF9F9FFBDBDBFBDBFBDFFDF9F9D9FDBFFFDF9F9D9AD0D9BC9A9DBCB9BCBDBDFFBDBBDBFCBE9DA0000000000000000000000000000000A0000A00000000A0000000F0000000000000000000000000000000000000000000000000009FF9FDBFFDF9FFFFBDFBFFBDFFBDFE9FBD0F9E99F9C9090D0B0D09A0C9C9D00BDADBDBFBDBDBFCDBDBF9DA000A00000000000000000000000000000000000A000A0000000000A000000000000000000000000000000000000000000000000000ADBFBFFDFBFFBDBDFFBDF9FFBDFFBDF0DBD0D9FD09B9FDB9BDFBFBDF9AB00BD09DBDBE9FFFFBDBBDBDBEBDBC0000000A0000000000000000000000000000000000000000A000D0000000000000000000000000000000000000000000000000009ADFDBFBFDF9FFFBDBDBFF9FFBDFF9DF0D0B09BFFDFFBFFFFFFFDFBFFDFF009E909BD9F9BDFFFDEBDFD9F0B0C000000000000000000000000000000000000000000000A00000F000000000000000000000000000000000000000000000000000FFBEBFDFFFBFF9FFFFAD9FFF9FF0DF0900BDFFFFFBFFFFDBFFFFBFFFFBF0F0090DBCBFDFDBF9FB9F0BBF0FDB0000A00000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000009BF9F9FDBFF9FF9FF9F9DFAFF9FF9F9090F9FFBFFFFFFFFFBEFFFFFFFFBDFFB0900B09BDB0BFDFBDFDBDEDBDA00A00000000000000000000000000000000000000000000000000D0000000000000000000000000000000000000000000000000ADAFFFBFF9FFDBFBDF9FB9F9FFBC90E9EF0FBFDFFFFFBFFFF9BFFFFFFFFFFFC9E090DBCBFFDBF9FF9ADB9BDA9FC000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000BDBDFF9FFBFFDFFBFBDE99F9EDBD90B9FF9FFBBFFFDFBFCF0DB9F9BDBDADBF090C0099099F9FF9FFDBCF0FDA9AC0000A000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000BCBFBF9FFFDFBFBDFDF9BDBBF9F00A9FFF9EFFCF9E9B0D9B9DBC90C90DADBC900A909CADBF0FBDFBDBDB9F9AD9F0A000000000000000000000000000000000000000A00000A0000000000000000000000000000000000000000000000000000BDBFDFDFF9FBFDFDF9F9ADAFC9F090DFFE9E9B990BD90D9E9CB09AD99E909090E9909A99BE9DF9F9F0FA9DADF9E0000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000ADBFBFBFFFDBFBFBFBDF9D9B90C00B09F099C9E9DADF0BDDBDFDDBAD9BDADBF9F0F0DBC99FB0BDBDBD9EBDA9E9BC00000000000000000000000000000000000000000000000000E000000000A000000000000000000000000000000000000009FADFFDF9FFFFDF9FDFBDBAD0F99BD0F09FE9BF9F9F9FDFBFDBFBFDFBCF9F9CBDAD9B0DBDA9DFDBCBDBD90BDA9EDA90A0000A00000000000000000000000000000A0000000000009000000000000A0000000000000000000000000000000000CABDFBDBFFFBDBFBFFBF9E9DB9ADADBF9FF9BFDFFFFFFFBFDFBFDF9F9FF9F0FBDADBC9F09A9FB9ADBDA9AF9DA9F9A9C000000000000000000000000000000000000000000A000000E0000000000000000000000000000000000000000000909A9BDFBFFFFF9FFFFDFBDF9F9BCBDBDBE9FF9FFDFBF9FDBDFDFBFDFBFFFDBDADF0F9DA9E9BF9DF0FDBDB9FD99A9E9E9CA0000A00000000000000000000000000000A000000000A0000900000000000000000000000000000000000000000000BFFFFBFDF9F9FFFBDBF9FF9E90FBDBCBDFFDAFDBFBDFFBFFBFBFDFBDE9F9ADBDBDBD0BDB90D0FA9F0B9F0F9BCBD990F0BCB00000000000000000000000000000000000000A000000000E000000000000000000000000000000000000000009ADBF9F9EBFFFBF9FDFBDFF9E9FBD9DADBDB9FBDBFDFFBDFDBDFDFBF9FBDFFFFF0FB0FBFCBCB9BD9F99F9E9F9E9BDADA9AD00CA00000000000000000000000000000000000000000000000B00000000000000000000000000000000000000000ADFFDFEFFDF9FDFFFBFDBF9F9F9C9ABD9F9EF9DFF9FBDFFBFFFBFBDFFFDBF9F9DB9DF9C9BD9DE9A90F0BDBDBDBDBC9BC9CBCB0D00000A0000000000000000000000000000000000A000A00C0000000000000000000000000000000000000000BDFBFFBF9FBFFFFBF9FDBF9F9F9E9B9D9BE9F9FBF9FFDFFBDFDBDFDFFBDBF9FF9FADE90FBDA9A9BDBF9BD9F9E9F0F9BCB0B0BC9A00A0000000000000000000000000000000A000000000000B0000000000000000000000000000000000000009FBFFFFDFFDFBF9FDFFBFD9F9F0F9BDA9AD9F9F9E9FDBFBDFFBFFFBF9FDAD9F09E9DB9BF90BDBD9DAD0F0FBDBDBDBDAD9BC9E00FC00000000000000000000000000000000000000000000000E00000000000000000000000000000000000000ADFDFBFFBFBEFDFFBF9FDBEFF0FBDFCBDF9A90F9F9FBFDBDB9DF9F9FFFBDB9E9F99E9FC90FD09CB0BDB99F9EDBFDBDBDADCB09CB0BC0000000000000000000000000000000000000A000B0000900000000000000000000000000000000000009FFBFBFDFFDFFBFBDFFFFBF9F9F9DBB9F9AD9DB9E9F9E9FFFFFBFFFFF9DFBCBBDADA990B9F9A9F9DBD0DAF9DBBDBCBD9F9BBC9EBC0DA00000000000000000000000000000000000A0000000000E000000000000000000000000000000000000BBFBDFFFFBFFBDFDFFF9F9FDF9FBFFBDFDBDF0B0F9F9F9FBDBDBDBD9F9FFADBDCBF9F9E09C909F0BAD0BBD9FFBDFDBDAF0F9C9A900BA00A000000000000000000000000000000000000000000009000000000000000000000000000000000000DFDFFBDFFFDFFBFFFBFFFFBFBFDBDBDF9BF9BF9D0BDBDF9FBDADF9FB9F9F9FDFBF9F0F9F0B0F09D9DBBD9FBDBDF9BF9F9F9E9AD0F00D000000000000000000000000000000000A0000000A00A00E000000000000000000000000000000000000BFBFDFFBFFBFCFFBFDF9F9FDF9FFFDBFFDFFDFBF9CB0BDBDFFF9AD0DADADFBF9FDFF9F09F0F9FA9A9D0BC9FBDBFFDBF9F9F9F9AD0ADAD00A00000000000000000000000000000000000A0000000B000000000000000000000000000000000009F9FDBFFFDFFFBF9FFFBFFEFBFFDBDBDBDBF9F9F9FB9DF9FBC99FDBFFBDBFBDFFFBF9F0F9E99E99C9F0BDFBFDBFDBFD9EDADADADA0D00A0000000000000000000000000000000000A00000090C00C00000000000000000000000000000000000BFFFBFF9FFFF9FFFF9FFDBDBDBDBFBFFFFDBFFF9FD9E9A9F9FBFFBFDBDFFFDFFFFDFFF9F090FB9E9B0F9F9FDBFDBFDBFF9F9F9F90F00BC00000000000000000000000000000000000000000A00A0B00000000000000000000000000000000000FDBDFFFFFBFFF9FAFFFBFFFFFFFFDFDBDBFDF9FFFBF9F9CBD9F9FDBFFFF9FBFFDBF9F9E9F0F0DE90DB9F9FBFDBC90BDB9F9F0F0E90BC0900000000000000000000000000000000000000A0000900E00000000000000000000000000000000000BFFBF9FFFFF9FEFDFBFDBDBF9F9FBFFFFDBFFFBFDF9F9B9EB9CFBFDFBDBFDF9FFDFF9F9F0D0B99E90F9FFD0900BCBC0D0BCBD9F9E90B0E0E0000000000000000000000000000000A000000000000900000000000000000000000000000000009FBDFDFFBFDAFBDBFFCFFFFFDFFFFFDBFBFFDFFDFFFFFFDF9DA9BDFBFDFDAF9FE9FBDFCBCB0BCBC09F9E90BCBDBDBDBF0BC90FADA9CAC09000000000000000000000000000000000000A000A00A00E0000000000000000000000000000000000FDFFBFBFFDFBDFFFFFBFBF9FBFBDBDBFDFFFFBFFBFF9F9F99ADBDF9FDBEBD9FF9FFDBDBDBC9C90B9F0F9CBDBDBDBFDF9FFD0F09DBCB909E0000000000000000000000000000000000000000000000B0000000000000000000000000000000000BFBDFDFDBF9FFF9EBDFFDFFDFFFFFFFFBDF9FFDFFDFFFFBFFDBCB0F9BDBDBFF9FBDBCBDADB09E9C9AD0F9E9F0FBDFBFFD9FBDE9A0BCCA00000A000000000000000000000000000000000000000000C00000000000000000000000000000000000FFBFBDBDADBFFFFFBFBEBFFBDF9FFBDFBFFFFFFBF9F0FDBDBDBDBCF0FDBDADFDFBDBDBDADA90B0F09BCBDBDBDFBDF9FBE9F0BC9C0B9DAC0BC0000000000000000000000000000000000000000000F0000000000000000000000000000000000BDFDFFFFBDBFFBF9FEDFDFDBFFFFFDFFFDFFF9F9CDADF9EDBCBDADB9F9F0FDBFBDFBFDADBC9E9C909E9F9F9FF9BDFBFF9FF9FDBF0BCA0090000000000000000000000000000000000000000000000A0000000000000000000000000000000009FFBFFBDBDBFFFDEFFFBFBFBFDFBFFBFFFBFB9FCFFBF9BDFBDFFF9F9F0FBFDBF9DF9EDBDBC9A9DA90F9F9FF0F9FFFBDF9FF9FFBDCBC090F0ACA0000000000000000000000000000000000000000000D0000000000000000000000000000000000BDF9FFFCBDFDBFBFBDFFFDFFFFDFDFFBDFCDCBBF9FDFFFBDF9FFFDEBDBDFBFDEFBFDBDADA9D0E9E9BDBE9BDBFDBDFBFF9FF9BCBBDBDE0000000000000000000000000000000000000000000000000A0000000000000000000000000000000000BFFFFDBDBFBFFDFDFAF9EBF9FBFFBFDFF0BBFDF9F9F9F9FBFBDBFFFDBDBCDBF9FDBFDBDBDE9B909E9E9DFDBDBFFBDF9FF9FFDFDE9EBFCB0F000000000000000000000000000000000000000000000F0000000000000000000000000000000000FDBFBFFF9FFFEBEBFDFFFDFFFFFFFFFE9FDF9F9FFFBFFFFDFDFBDBDFEBCBBDBF9FFDADADA90C0F99F9FBFBFFF9FFFBFF9FF0FBDBFDBDF0C00000000000000000000000000000000000000000000000000000000000000000000000000000000BFBFDFFF9BFFFBDFFDFBDBFFBDBDFF9E9FBF9FBF9FBDFDBDBFFBDFFBFFD9F9CBDFFDBF9F909E9B0BE9FBDBDBDBFFDBFDBFF9FBDBFCBCBE00AC00000000000000000000000000000000000000000000F0000000000000000000000000000000009FDFFFF9FC9F9EBDABFEFFBDFFFFBEF9FDF9F9FDBDFFBFFFFBDFFBDFF9EBCFBCBF0FF9F0FDA90C9D9F9FFFFFFFDBFFFFFDBFBDFCFBDAD9E0900000000000000000000000000000000000000000000000000000000000000000000000000000000BFBF9FFBFB0F9EFDF9FBDFFBDFFFD0FBFFFFFBFFBFDF9FBDFBFDFF9FFFDBFDBDFF9FFDB00DA9ADADAF9F9FF9FFF9FDBCBDADBBF9E9FACBC0A00000000000000000000000000000000000000000000F000000000000000000000000000000000FFDFDFFDF9DBC9B0BEFFDEBDFFBFDBFFDFBDB9F9FDFBFFFFFBFFBFBFF9FFFCBFBDBFDADFDBAD0DABDBDFBFF9FF9FFFBFFBFDBCF9E9E9DBC00000000000000000000000000000000000000000000A00A000000000000000000000000000000000BDFBFBFFBCADABCFDF9FBFFFBFFDAFDBFBDFFFFFFBFDFBFDBDFDFDFF9FFBCBDBCBFDBFF0B0D00BDDBDBBCF9FDAFFBDFF9F9ADB9E9F9EBE9009C0000000000000000000000000000000000000000000D000000000000000000000000000000009FBFFFFF9F99A9CB0BFFFFBDFFDBFDBFFDFFBDBDBDFBFFDBFFFBFBF9FFBDFFF0DBDBFDBDBCB00D0BADADDF9EBFDBDFBD0F0FDAD0B9E9F09EC00A0000000000000000000000000000000000000000000E000000000000000000000000000000000FDBDFFFFFFF0A9ED0FBFDFBFBFFADFFFBFBFFFBFFBDFBFDBFDF9FFF9FFBBDFCBCBFDBCF9F0DAADDBDBA9BF9F9FFBDFFBDB0BDAD0F9E9F09A0000000000000000000000000000000000000000000000B000000000000000000000000000000000BFFFBDFFFFAD009ABFDEBFDFDFCDAF9FFDFDBDFDBDFBDBFFDBFF9F9FBDFDBFF9FBDBFFBDADA9DABCBDFFF9FFFFFFEBDFADFC09B0BCBDADAC0000000000000000000000000000000000000000000000C00000000000000000000000000000000BFDBFFFF9FDF09AFADFFBFEFBFBFBFFFFFBFBFFFBFBFFFFFDBF99E9FBCBDBEF0DADFFDBDE9F09E9DFFF9F9EFDBF9DBDF0FDA9BF0FC9FADA900000000000000000000000000000000000000000000000B000000000000000000000000000000009FFFDFFFFFBDE000DA9FFDBDFFFC9F9F9FDFDBDBDFF9FFFFBDBFFBF9DBFFF9BE9FB0FBFBDB09E9EB9F0FBD9FBCFFEF0BD0BC9C9F0BF0DBC000000000000000000000000000000000000000000000000F000000000000000000000000000000000B9FABFFFFFADA0F0DAFFFFFBDBFEFFBF9BBFFBFBDFFFFBDFFCBD9FAF9F9FFDF0DFF9FDF9EFDAD0DAD90CAF9E90909CA9FCB0BCBD0BF0CBC000000000000000A0000000000000000000000000000000E000000000000000000000000000000009FF9FDFFDBFDF0000BF9EFFBFEFC9BDE9EDF9FFDFFBDBDFFADBDBE99DFFFF0F0FFBDFBF9E90000B0F0ADB9C00E0E0009CA90D0BC0F09BF0000000000000000000000000000000000000000000000000900000000000000000000000000000000BD09FBFBFFCB0000BF0FFBDFFDBFBCFBFB9AFFDBFBDFEFCBDBCBC99EB09B9FBDA9CFBFDA00090BCD9FDB0CF0F0900E9CA9C00BD0B09EC0C000000000000000000000000000000000000000000000000E000000000000000000000000000000000FBF09FFDBFBE900C0FBFFFFBFF0DBFDFDFDBDADBDFBDBFDA9F9F0F99FEDE9FE9EBFDFFD09ADADBE9BFFFB0CADE0000AD09A9CAC9CA99A0E00000000000000000A00C00000000000000000000000000F00000000000000000000000000000000BDF9F09BED0D0E00B00FDBEDFBFFE9FBFAF9AF9FFFCBC000C0CBCB0F09B9BDADBDFBFFBFFF9F9E9FFFFFFDA900000000000DA90B09CAC0900000000000000000900A0A0000000000000000000000000B000000000000000000000000000000000FBFCBC09A9A900000BDAFDBED009EBDF9FFD9AD0A0C0A90A0BDF0D0BCF0DAD0FFBDFBFDBDE9FBDADFBFFC0EDAD0AC09ADA00CBCBCB000E00000000000000090C0090000000000000000000000000A0C000000000000000000000000000000000BFCB009AD0000000ADAF9FAD0BFFBDE9FF0BED0BFDB09CAD0DA0DA9E9B9EBCBF9FFFDFBFFBF9EDBFFFDB0F90BCAD09ADAC9CBC09000DA00000000000000000A00E00000A0000000000000000000000B0000000000000000000000000000000000FBC0000000000000000A0FBFCFFCFBFE9FD9BFDFFFFE0000AD009F9FCF9CBDFFFBFBFFDBD9F9BDBDBFEDACBCBDACBC090A909E00E9AC9C000000000000CA00090000000000000000000000C0A00C0F000000000000000000000000000000000009A0000000000000000CBDEBFEBF0F9FFAFE90BFFFF0F00000BCBCF9BCB0FBF9FDFF9FFFFADF9E9F0F9FF0F0CADBCBCAD0E0000F0F9A0A0000000000000909E000000000000000000000A000000A0C00000000000A0000000000000000000000AC000000000000000BDBDAFDE9FFF0FDADF9EF9FBFDFDADADBCBCB9EDAC9FDFFFBFDFF9BDF9BE9F9BDA9CE9E9C0000000090F9F9F0C9C000000000000000E0000A00A00000000000000C00A0CA000B000000000A00000000000000000000000090000000000000009E9EBFFFBFFDADEBFF9E99EDFFEFADF9F0F9F9EDA99FBFBDBDFBF9FDFBFFDBF0F0F9F9BC0A00F0DBCBCF0F9E9EB0A00000000000009A000000000000000000000A0A0D00000C0F0000000000000000000000000000000000000000000000000009FFFFCFF9EBFCBCF0F9EFDBE9DBDAFD0F0E0F09CBE9F9FFFBFDFFBFBDBDBDF9FF9F0BCB9D9F9E9AF9FBF0F9E90C900000000000000C09A00000000A000000000000A0AC0A0A0E000000000000000000000000000000000A0000000000000000A00BCFBFEFDFBFCBCF0E9EADBEBCFDAE9F9F00E9BDFBDF9FDFBF9FDBDFFBFBFF9F0F9F9EFADADBC9AD0DADA09E9A0E000000000000A900000000000000000000000C000A00D00D000000000000000000000000000000000000900000000000009CBFFBFDBFFADBBCBDFBDFDFEDCB9AD9E0C00F0FCB9FFBFBFBDFFFBFFBDFDFDBFBF9E9E999BDADBC9A9BF09F0000090000000000000000000AC00000000000000000AC009E0A0B00000000000000000000000000000000A0000A00000000000000BDADFEFDADFCFFFAFDEBFFFDBFCEDAC90BDBDB9FFF9FDFDFFF9FFDBDBFBFBFDFDF9FB9FEF0F9ADADAC09E0E0DA9E000000000000000000000A00000000000000A090ACA000CE000000000000000000000000000000009E00000000000000000BCBFFBFBFFBFBDBDFCBDEF0FFFCBDADBCBC9A9FFF9FFBFFBDBFFDBFFFFFFFDFBFBFFDFF9F9F9FF9F9F9BC909A0C0000000000000000A000000000A000000000000CAC90C0CA0F00000000000000000000000000000000009E00000000000000009CBCFDEDBDEDBCBDBFBD9F9ADBCBCB0BDBFDF9FFFBDF9FFFFDBFF9F9FBDFBFDFDBFBDFFFFFF0FF9FEDBADAC9A9E9E0000000000CA00000A000000000A0000000000A0A0A900B000000000000000000000000000000000A00000000000000000A0BFFBFBFEFBFFBFBCBCBE9EDADBDBDFDBF9FBFF9FDFFFF9F9FFDFFFFFFFFFFBFFFDFFBDBDBDFF9EF9FCDADBC9E9C0000000000B0000000000A0000A00000000A0000C0900E0E00000000000000000000000000000000AD00BC00000000000000DADAFDFFBDF0FDEDBDFBDBFBDBFBDFBFFFFFFDFFFFFBF9FFFBFBFBF9FFFF9FFFFDBFBDFFFDBF9FF9E9BBF9ACB00A000000000000900000000000A0C9000ACA0000E0A0E0E00F0000000000000000000000000000000000A00000000000000009ADBDFFADFBFFBFBFFBCFFFDFFDFFFFFFDFFDFBF9FBFDFFF9FDFDFDFFFDFFFFDBFFFDFFBDBFDBFCBDBEDC9EDBCBD0000000000000000A00000000000ACAC0009CA009C0009A0F00000000000000000000000000000000B0C0009A00000000000000FB0FFBFE9FFDF9FFBDBFFFBFFDBFFFBFFBFFFFFDFF9FBFBFBFBFBDBFBFFFFFFFBFBDFADBFCBDFADBFBE9E9ACAC000000000000A000000000000000000A0A0000A0ADAC0C090000000000600000000000A00000000000A9A000000000000000A90FFBDEDBFF0FBE9FDFFFBDFFBFFFDFFFFFFDFFBFBFFFDFDFDFDFFFFFFDFBFF9FFFDFBDFDFBDBFDBCBDBF9EF90B00000000000000000000000A0DA0A000C0CA00C00000A0AE00000A000000A000A0000000A000000A9AD00C000000000000009CBDBCFFBFDFFFFDFBFFBDFFFDFFFFFBFDFFFBFDFFDF9FBFBFFBFBDBFDFBFFDFFFDBFBDFBFBDFE9ADF9ED0F090AC0000000000000000000A0000000D0C0A90A0C0A0AC0F0C0F00000000A00000000000A00000000000000A0A000000000000000A9EBFF9EFFBF9FBFFFDFBFDFBFF9FFFFFBDFFFFFFFFFFDFDBDFDFFFFBFF9FBFBFFDFDBF9FDAF9FFCBDFBF0DAC90000000000000000000000F00000A0AC0E0C0A90C9A000B0F0000000000A000000000000000000000E00C90000000000000000009E9BF9FFFFFFFF9FFFFFBFFFFFFDFFFFFFFDBF9FBDBFBFFBFBFBDFFFFFFFFDFBFBFDFF9FDBF9FBEB9E9FA9A0000000000000000000B0C000ACA0009A00A90CA0A0CAC0C0B00A000000000A00000A000A00000000909A0000A000000000000009E9EDFFF0FFF9FFFFBDFFFFDBDFBFFBDFFFBFFFFFFFFDF9FFDFDFFBFDBFDFFFBDFDFBF9FFBFCF9F9DE9FC9C0000000000000000000000A000009C9E0C0F0CA00C0CB09A0AE0000A00AC00000000000000000000A0C0AC9A0000000000000000B0A9FBE9FFF9FFFFFFFFFBDFFFFFFFFFFFBFDFFDBDBDBFBFDBFBFBDFFFFFBF9FFFBFBF9FF0FDB9E9FEBDA9A00000000000000000000C0000A9C0A0A000A00A0CB00A0CAC0CF0000000000A0000A0000A0000000000A00000C09000000000000000D9E9FFBFFFFF9FBDFFFFFBFFBFFBDFFFDFFFBFFFFFDFDBFFDFFFFFFF9FFFFF9FDFDFFDBFDBEF9F9BDA9C0000000000000000A00000AD0000A0C00E9E9E0CB0CA9CA000B0F0000000000000000000000000A000009E9A000A00E00000000000000A9E9EDBDBFFFFFFF9FFFFFDFFDFFBDBFFBFDBDFBFBFFF9FBFFDBF9FFF9FFFFBFBF9FBDBBDBDADE9FDA900000000000000000000A00000C009A900A000B0CA0CA0DACAC0900A00000A0000A0000A000A0000000A000C0B000090009000000000B0F9FBFFFFDBFDFBFFFFDFFFFFFFFFFFF9FDFFFFDFDF9FFFDFDBFFFFFFFF9FFFDFFFFDEDFBDADBFF0A9C0000000000000000000AC90A0A0A0E0CAD0F0E0CAD0A0CA0900AE0000A00000AC000000000000C00000009A9AC000000A00A000000000C9AFE9FBFFFFBFFFFFBFFFBFFBFFDFFFFFFBFFBFFFBFFDBFBFFFFFBDBFFFF9FFF9F9FBB9CBDBDB09D0A0000000000000000000000C00D00000B00A0E00B00A9CB00E0BCF000000AC00000000A0C00F000000A00AC0C900B0A000C00000000000BCBDBFCF9FFFFFDFFDFFFDFFFDFBFFF9FFFFFFDFBDFDBFFFFFFBDFFFFF9FFFFBFFFFBDDFBCBDADF0A900000000000000000000000A0000BCBC0E0C00BC0E0CA00CB0E0AF00000C00000000A00900000A00A000C90A00A0C090090090000000090B0F9FBFFFBDFFBFBFFFBFFBFFFFFBFFFFFFDFFFFFBFDFBDFFDFFFFF9FFFFFFFDFBDFBE9F9FF9B0D0C9A00000000000000000A000000A0000A90B0F00A00B0CA0AC09C0B00A000000A000C0000A0A00C00000000A00A09A0C0A00A000000000000DADADBF9FFBFFFFFFFFFFDFFFDFFFFFBDFBFFFDBFFBFFFFBFFFBFDFFFBDFFFBFDFBDBFDB0BCF0A9A0000000000000000000000000000CAC0E0CA0CAD0E0CB0F00ACA0E000000A0000A00000000000000000A90C90C0000A000000000000000ADA9FBFDFFFFFDFFDFBDFFFFFBFFFDFFFFFFFFFBFFDFFFDBFDFBFDFFFBDFFBFDFFBF9FF9ADFDB0F90C0000000000000000000000A9C090A90B00BC0B00A90A0C00ADA0DF0000000000000000AC000C0A0000000A0A9000B0900009C0000000009A9F0FDBEBF9FFFBFFFFFDBFFFFFFFBDFFFFFFDFBFF9FFFFFFFFFFFBFFBFFDBF9FDFFDBDFA9A09C0B0090000000000000000000000A0E00CAC9E00E0DAC0E9CA0E00C0AF000A0000000000A000000A00CA00C00000A9AC00CB0DA00B0000000000CBDAFFDFFFFBFFFFFFBFFFFFFFBFFFFFFFFFFFDFFFFFFFBFFFFFFFDFFFBFFFFFBDFBEBDF9D09B000000000000000000000000000000B000A00F00A0CB00A09E9ADAD0D0000C0000A0C000000A009000000A0009C00C9A0A00000000000000000B0BF9FBFFBDFFDBFDFFFF9FFDFFFFFFFFFDBFFFBFFF9FDFF9FFFFFBFDFFF9FF9FFBDF9F0B00AC000A00000000000000000000000000C0F0DAC0E9CA00E0CAC00CA00AA000000A0000A00000000E00A000090BCA00B000900000000000000009C90F9EFDF9FFFFFFFBFFFFFFFFFDFFFBFFBFFF9FFDBFFFBFFFFFBDFFFBF9FFF9FFBDFBFDBCF99000900000000000000000000000A09A0A00A00A00AC9E90B00F0A90E0F000A000000000000A00000C0000E00000B0C0A00000B0000000000000A0F0F9FBFFFF9FBFFFFDBFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFDFFBDFFFFF9FFBDFFBDFADF0B00000000000000000000000A000000C09C9E0CBCBC9A00AC0E00E0CA9CF00000000000000A00C000A0000900E00000B0900E90000B0000000000090BCBCBDBFFFFFDFFBFFDBFFBFFFFFFFFDFFFFFFFFFFFFDBFBFFFFFBFDBFF9FFBFDFBD009D9E9000000A000000000000000000000A00A00F0000AC0AC9A09E09A0CA0F000000000A0000C0000A000A00A00900F0F0CA000000000000090000090A09F9FFF9FBDBFBDFFFFFFFFDFBFFFFBFBFDBFF9FFFDFFFDFFF9FFFDBFDBFF9FDBF0F0EB0A00000009000A000000A900F000000000A0CA00E9E0B0DAC0E00BC0E90EA00000A000000A0000A000C00000000A00000B0090000000000A000A0000D9F0BE90FEDFFFFFFFFBFDFFFFFDBFDFFFFFFDBFFBFBFBFFF9FFF9FBFDBFF9FFBF0BFB9C09000A0000009000000000A0000A000000D0B00F0A0C0CA00A90AC0A9CA9F00A0000A0000000000000A0C000E000D0BCBC9C0A0000000000000090A00A0BC9FF9BFADBDBFBDFFFFFBFFFFBFFFDFBFFFFFFDFFF9FFFF9FFFDFBFDBF9FDB0DBCF9AC0000900A0000000E00000000C000090A0E0CA00CBA0A0CBC0E90F0CAC0F00000000000000A00000900000090A0A0000A0A009A0900000000000009090DB09AD0BDBFFDFFFFFFBFDFBDFFDBFBFDFBDF9FBF9FFBDBFF9FBFFDBFFDFBAD0F0B0C900900A0009E00090000A09E0A00C000E900A9CAD0C0D0B00AD0AC0A90B0D00000C0000A000000AC0000A00000090CB0BC9090C000000000000000000ACA0DADAF9EFDBFBDBF9FFFFFFFBFBFDFFFBDFFFFFDFF9FFFDBFFDB9FF9EBDFD0D9D09A00A00D00D000090E0009C0C09000A00A00E9CA00A0A0AAC0E00AC9ACAC0EA000A000A000000000000E0000A00E00A00C0BC0A0A0000A00000000009AD0909A0909CB9BEBDFFFFFF9FBDFFDFFFF9FFFFBF9FBF9FFBDBDBDBEFF9F9DA90B0A0AC00D00A000A0000A00000A09A0ACB009000F00A09E0F0D0C9A90AD0AC900F0F0000000000000E000000000C00000000A9ADAAD0090C0000000000000000A0000F0F0BDEDBDAF9FF9FFFFFBFFBDBFFBDBFDFFDE9FDBDAFDAF9F99E9AF9E9C09C9090A90D0B0000B0C900A00000D000E0E0F00AC9E0000A0A0AC0E00E90ACA00F0000000000000000A0000A0000000009C000D0AC000B000000000000000000F00090F0B9E9F9FF0FFBDBFDF9FFFF9FFEDBF0BF9FBF9FDBF9E9FE9FFD0F09A0000AC90CA00C00000000090D0AD0A000900A0BC0A00E9E0CAD0CA09E00E00BCB0F0000A00000A00000000A0C0A0000A0C000A0AD9A9A00000000000000000009009A0F00DA9BCBD0FBDFEFDBFFF9E9E9F9BC9FD0BD09F0BF0F9F09F09AD00E090A0000A909A0009000A0ACA0A00A0D0A0E9C0C0AD0E9A09A0A0B0F00BCBCBC00EA0000000A0000000000000000000000A0A090F0A0C0000000000000000AD00000AC900FADDE9E9FBDADBDBF9F0F9F9F0BCBCB0BDAFF0FF09E9ADFADBCB0900000D09AD0AC009A0CA90C900C900000AC0000A0BC0A0C0CAC90E0C00AC0000ACB0F00A0000000000A000E000A0000A0900090ADAFC9A000000000000000000A000009EF0900B9B9E90F9BDBCFADBC9ACB9CB0BCBDA909F09DF90DA900090E0000000A000C900000000C9A009A00E900009A0E9E00AC9A0A9ACA90A0E9A0E0F0AC0F000000000000000000000C000000E0000C0090AC9ADACA000000000009009AC00090E0DAC0CA9E9ADACB90F00BF900E9C909E9CBF09FAA0F09CA9F0A9000900090F00A000000090A0C0AC00000E09A0C9000F09AC0F00C0CAD0B0C9A9A0C9A0D00000A0000A00000000A000A000000ADA09ACBDB0C009090000000000AC000090BE909A09A90090F0DB0E909F00CBC90B0F090BC90F0D9F09E09C00D00A0000A0000900000A00A0009090BC000000C0A00E000E0A00ADA9A00E0E0E0C0F0E0DA00000000000CA000A00000000000000000AC90A0E9A9E0AC000000000009000A0C90E0000000F0E90B0C9A9E0C9B09AF0F0F0AD9ADADBE0A009A00B0009C00C90F0000C0A09C90C90A0E000B000B00BC0E900E090DAC00AC0E909A009A0A90AF00A0000A0000000000009E000000A900A09A0E9E9ADE9C90A9000000F00AC0000BFE900000F0009CADABC9CB0BC0E9C0DB00F9A0DB00090D000090CA0000A90E0000A9A0D00000A0C00000000000000B00ACA9ACA00B0E0B00ACAC9EAC9CAC0F00000000000000000000000000000CA9C00CB009E09AFAE9CA0000D000000009000FEC09E00090A9C0D0BE9CB0BC9A9E0CB00C9A0CBCBCA09000E90000BC00B0F009C000000A0900B000BC000000CAC0E90BC009CA0CA9C0AD0A9A00DA0BCB0D0000000000A000A000CA00A000000000A0A90CBE9AE9C9F0B0DA00000000000AC9E9A9000000A000B0AD0DA0F0CBADA9B00DA90D0B09090CA00900009C009AD000F0000B0AD00E0000F000A00A0A900B00E00BCAA0F00E0AD0AC0CBCA0CA00CA0000A000000000000000000000A00A0009C00A090C90BAF0FCA00A00A0000BC09A9FC0A00000C9CBCAD0E9ADADB0D0D0C0B090E0BC0A0E9000000000A0B0E000B000A9C00000000000000000009C0CAC0E09AC009C00F0BC0ACB0B0A9CB00FAF0000000A000000000A0000C0000009CACA9E09CBEB0E9C0F0BDAD00000000000ACBCBC0000B00A00909A9AD09E0DA0A9AD0CA090009C90A000000000D0C09000C9A9CA9AC900A9000A00E009C0A0A090A90E0A0E0BCA0C00E90E0CAC0AC9E00F000000000000A000000000A0000000090009A0000CB0EB0FE0F0FAD00000000090E9E9E9000090F0A0E0C0BE09A0DAD000B0D0E90A0000000000000A009A00DA00CA90C00AC000C000900000A9CBCA0C0E00D0B0C0ADA0E90E09A0DA9CA00F0D00A00000000000000000A000000000A0A0A0C00BCB0F00F09F0F0DA0F0000000009E9E00C00CAC00D090B0C09E0F090ADAC0A0000D00AD00000000090A00DA00900000B09000000A0CA000A000A009E0B0F0A0CA9AC00E90E0BC0F00E09EA00A000000000000000000A0C00000000A0D09C0B0BCA0F00F0AF0E9EBED0A90A00000F0E900A0B0090B0ACA0DA9E0900E0D0090090000000000000090AC0D0DA090CA90AC00CA00A000090009C0F00D0E000C0AC0B00CA9E9CA9AC0A00E90E090FF0000A00000A0000A0000000A0000090ACA9E0C09ADADA00D0BDE9C9AD0C00900000A9EE090CBCAC0C090F0C09E0F090A000B00CB00B0000000000009A0A0000A000C900A0C09000000A0C0A00E0A90ACB0AC9E0E0BCA00AC0CBC9CB0CA9E0E0F00000000000000000000000000000C0900A9A0E090F0F0E0E0B0FACBE9A0C0A000AD0900E9A0090A9E000B0E0900CA9CB0C0CB0000000000000A0000D0D000C000A0A09090AC0E0000D0A09A090CAC9AC09A09C9E00DA0DA9A0AA0CA9CA0DA0D0000000A00000A0000A00A0000A09A00AD0C0900E00DAD09AD0E9CBC9AC90AC00000ACA090D0F0AD009E9C090E0B000000B000000000000000000F0A0A00A9000D09C0E00A900000A00000C0CA0B0A0CA9E0CA0A0BE00F0CAC9C9E9CA0DA00CB00000000000000000000000C0000A00F000B0E0A9AFA9E0AD0E9AF00AC9A09090C0BC9000E0A00DA09E00A00E90C09E000000000000000000000000D0000000A9A0A0900C000B00900A000B0A9C0C0CB0E00B0E90C09E00A90E0A0AA9CA0BCBE0A00000000000000000C000A0009C0000A0C0900C009EDBCA09AD0BC9AC000C0A0000E00009C9E00F09AD0F00090A00000000000000000000A09A00000000C00C0D0CA0A9000C00AC000BC00C0A0B0AC00DAC00E9ACA0CBCAC9E0C9C0AD0E00F0000A000000A0000000A0000000A000BC0B0E0F0A9E00ADADBC0AD0AC9A9E0A0900009E9000A09AC0FE0A009E00000000000000000000000090C0DA000090A09A00A90C00ADA0000000C00A9A0C0CB0ADA00ADA0C0BCB0CA9A00B0A0F0A09E0D000000000000000A0000000000AC0B00090090009009F0AD0E9ADA9CBAC0090CACA00000A0000C09A09C9CA0000000000000000000000A00000000000A00009C00000A900C000BC0B0B0000C00B0A0C0A0CBCA0F0BC0ACBC0CAD0E9CAC9E00BB00000000A00000000A000A000090000C0ACA0E0A0E0E0ADAADADA0DA0D0B0CA000900A000009A09AC9E0A09C0000000000000000000090C0CA09A000C00CA00A09E9C00A9A0AC00000C00A90A0C00E9A0DA009C0AC0AD00A0BC0A0CA90A09E0E000000000000000000000000000E000B0009000D0909ADA9CBCBDA0CB0ACB009000A000C0000C00CBE9C00000A000000000000000000000B09A0C09A090009C0000A0BC0C0909A9E000A0C00CB0E90AD0AD0EA0E90F00AF0E09E9CBCAC9CA9CF0000A00000000A0000000000A0000E0000A0E9A00E0000DA00E0EDA00F00CB0E0AC90C9A0000A0B000A000A000000000000000000000A00000C9A0C9ACA90A09A0D000A9A0E0C0009A0900A00000AC0AC0A90DA0E00E90090E00A00A9A0ACA0D00000000000000000000A00000000000CB0C00C0B00A00A0DA909ADAC00F00C90000A000000009C0F0D000000D000000000000000000C090E9A0C9A0C90CA000C0A0E90C0D00A0000C0E0BC0A0CBC9ACB0CACAC90E09E0E0E9CBCBC0C0F09E0B00000000000000000A000000000A000A000B00B0C09C0B0DAC0FACAD09A00B0A0DA0C0000000000B000A00C00A0000000000000000090B0E90C9A0C900A09C90A90900CB0A0B0CA0E0A9000000A00AC90CB009A0E90E0B0F00A0AC0B0A0CA09E000000000A000000000000000000000000C0AC0A0A000C0A0BA0DA9EE0D00C0CA00000A0000000000F0D0000000000000000000C0BCAD0E9E9AC9A0A009CA0AC00CACB00C0C09009090C0E00AD0CAD0E0ACBCACB0CA9AC00F0F0CB0CBC9AD0EF000000000000000000000A00000000000A00000D000A0000C0DA0F09AF0F0B009ADA00C00A000A0CA0A0F0A000000900000009A0BCB9AD9A9E9AC90C9E000090B0A90CA90B0E0ACACA0A000C00A90A90AD00A90CA9C09ACA000B00E00A0CA00F00000A0000000A000000C0000A0000009000E0A00009CA9A0B0C90FAD0A0ACAF0C000900000000009C0000000000E00C0DAC0E0D000C0A0C00000000A00AD00AC0D0A00CA000090000D000A90AC0E0CADACBCACBCA0AC0BCBCACAD0BC0E90F090000000A0000000A000A0000000000000E900900AC00000C00CBAE0C0ADDF0D00FADA0A000000000A09E0AD0CA0000A0B009A900ADA9A9C9A9C09A0000900A0CB00AC90B0C9ACACB0A00A000000A90BC00A00DA009AD0BC00AC900AC0B00E00E000000000000000000000000000000000000AC0000A0A0A9E9AC9C9AF0A0ADACB0DAC00D000000000000D00A9C900090CA0C00E90000C0A0CA0A0CA900CA0CB000090AC00A009000C000C000CA90E0CB0F0F0A0F0E0AC0A0E90E9E90E0DA09EF0000000000000000000000A00000000A00A000A000000D000E9A0AC00D0F0E9ACA0DADA0AC0CA0000000A0F0A0E0F0E90DA9E90ADADA90DA9C900000E0009000BCAC09AC0DACA00000C000A0000E9AA0E000E900A9C0BC0B0EA0A0E90A0CA00F000A0000000000000A0000000000000000000000000000A0D0E9E9A9E0A009ADADA0DA9C90A0000000A00000D09A0BCADACB0E0D00000E000A0E09CB09E0A0E0009A9E09A0090C0A000B00C090E00C9C0ADA0E0F0E0AC0F0C90D0E00E9E90F0900000000000000000000000000000000000000000000A000A0BC0ADE09CADAC09A0DA0E0A000000AC00C00C0A0E09C09AC90E09A0CBCB090F0090A000E09C090F0AC000AC0AC0A000A000000A000F0A0F0AC90B0C0BC9A00A0E0A90E9A00E00E000000000A000A000000A000000000000000A000000000000000F00BE0B0A0BCAC9ACB0D0F0D0E00000000A9009CA0AC00A0900CB000C0E00C0AD00E0900B0E00D00CA900900090C00C00A0000F0A0DA0C9ACAC0BE0AC0E9CB0F0CB0C0CB0CAF000000000000000000000000000000000A0000000000000000000E909C0F09CB00E90C0A000A09000A9A0900E0000D0A90D00CA00F0A0090A900A0090A0E090F0ACA90C00E00A00A00000C00000C9A0CB0E090AC00D0A90A0C00A0CA9A0CA90F00000A000000000000A000000000000000000000000000000000000ACAF00E00CB00E9AD0E00000E00C00A0000AC9A0D0E0A0A9000090A0000AC0DA00C900E00009000A00000C00000A0000ACA0A0CB00E90EADACA0AD0E9E0AD0F00E0DA0CA900000000000000000000000000000000000000000000000000000A0DA909E09EB0FE9AC0A90E0A009000C00C9000AC00A0BC90C0E00E0D0E9C09A00C0B00F00BC00CA000A000A0000000A0000900DAC0E90E9000B09CACA00BC0A00E90A0DACE000000000000000000000A0000000000000A000000000000000000000E0E9E00C009E0BD0E090C000A0A000A0E0900F09C00E0A90F090A000A00000B00E00000A0A0009C0009000CA000000000E0A09A0CA0CADACACA090DAC9E0CB0CAD0A90FA000000000000000000000000000000000000000000000000000000A00B0E9E9ADA09E0A09ACA90AC9C00B00000E000E0AC909C0000E000A90AC9E00F00BCAC0000B0CA00A0C00A00000000A000D0E00F09E90AD00ADA0E00A00F0CB00AC0E0D000000000000A0000A000000000000000A00000000000000000000000D0090A0CA0DE0F0F0C90CAD0A0BC0CBCB000F00090ACA0A0A000D00C090A00C0000009AC00C0A000000A00000CA0000CA0A09AD0AC0AC0A0F000E90F0DA00A0CBC9A00B000000000000000000000000000000000000000000000000000000000A0A0E9CB0DA090E0F0ADA90AC9CADA000E0F00BC0ACB0D0D0C9A0A0A00AC09A0AC0B0E00A90000000000000000000000090CAC0AC0BC9A9C0A9E90E00A00E9CA00AC9EE0000A000000000000000A00000000000000000000000000000000000000C900AC0A9CAC900BCA0CBC9EB009E9E900AC0AD0000A0A9AC00D0DAD09AC009A0C00900CA000C0A000000A00000000ACB09AC0B0CAC0E0F0C0E00AC9E90A0DAC9A00F00000000A000000000000000000000000000000000000000000000000000A009AD0A09A0E009C0BCA09CF0E000E0D0000ACBC0C0C09ADA0A000A000A0C0B0AC0000000000000A000000000A0000CAC0BC0A09A0900A900F09A00E0DA00AC0F0D000000000000000000000000000000000A00000000000000000000000A000C0AC0ADAC0F09E0A9E0DACA009ADA9A0ADA0090A9A9A0C000C000AC0F00DA0C000A000000A00000000000A00000000A90AC0F0DAC0E0E9E0E0CAC0F00A0CBC9A00B00000000000000000A00000000000000000000000000000000000000000000000BC009A00E009E90A0B0ADAC000CBC00DACA0C00C0A0A00B0E90000A00000900CA0000000000000000000000A9E0CAD0B00A00F0B000A90A90B00F0CB00AC0EE00000000000000000000A00000000000000A000000000000000000000000A00000B0E00CB0BCA0E09C0D0009ADA00BCA000C900A0000D0000000A0000000ACA0000A0000000A000A0000A000000B000AC0E0DA00CACBC0E0E0CAC0A0CAC0A90F000000000000A0000000000000000000000000000000000000000000000000A000090E9AC00BC09E0A0AE90C00090090F00A0E0DA09000AC00C000000CA0000000000000A0000000000000000000E9C0B09A0CB0AD00A0900B00BC9A09AD0E0D00000000000000000000000000000000000000000000000000000000000000000C0AE9C00AC00A000D0D00A0A00E0E0E00F0000000E000000A0000E0000000000000000000000000000000000E0E9A0AC0E0DA0C0A0E9CACAC0E00AC0E00A00B000000000000000000000000000000000A000000000000000000000000000000A00D00A00900B0D0B0A000C90C000900000000A00000A000000000000000000A000000000000C0000000000A00900CAD0A09A0C0B0D00A0B00B00BC0B00AD0FE0000000A00000000A0000000000000000000000000000000000000000000000000A0F009ACA0C0AC0C000A0000B0000ADA000000CA00000000000000000A00000000A000000A00A000A0000000ACA90AC9E0CA9AC0A0E9C0F0CAC0A0CAD0A00F000A0000000000000000A0000000000000000000000000000000000000000000000000E000000000A00A0000A0000E0000CA00000000000A000A0000000000000000000000000000000000000C09CAC9A00B0CA09E090A000A09AC9A00AC9E0D000000000000000000000000000000000000000000000000000000000000000000000A000000A000000000000C000000A0000000000000000000000A000000000000000A0000000000000A000A00A0A0C9E0CAD0E0CAC0F0E9CAC0AC9E00A00A00000000000000000000000000000000000A000000000000000000000000000000000000000000000000000A00A00000C0000000A00000000000000000000000000000000000000000000000090E9C9C0A00B00A00B09A000A00A9C0A09AC9EF00000000000000000000000000000000A000000000000000000000000000000000000000A0000000000000000000A00A00000A00000A000000000000000000A000A00000000A0000000000000E00A0A9E9E0CAC0F0CAC0CAC9E9CA0BCAC0A00F000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000000000000000A0000000A00000000000000000000A000000000F0C0A000B09A00A90A909A000A0C009AC9E0D000000000000000A0000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000000000000000000000A00000000000000000A000A9ACACAC0E0DAC0E0E0E0E0E9E9ACA0A000A00000000000000000A0000000000000000A000000000000000000000000000000000000000000000000A000000000000000000000000000000000000A0000000000000000000000000000000009E0C09090A090A09A090009090000000D0C9EF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000A000000000000000000A0000E009ACACAD0E0E0E0CACADACACACBCADA0A0A0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000A00000000000000000000000000000000000000000000A000A000000000000E0090A00A90090A090000A00000A00CBC0D0D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000000000A0000A000A00000000A000000000000000000000000009A00E0E9CAC0E0E0DACACAD0DADAC0DA000A0AA000000000000000000A00000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000000000A0000000000000000000AC0DA9000A09A0900A000B000A00090A00CA9C0F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0CADAC9E0CACAD0CBC0CAC0E0E0E0E0BCA0AF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090A000A000B000A000A090B090900090000D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ACADACBCADACADACBCADACACACACADACADACA0F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010500000000000020AD05FE,'Margaret holds a BA in English literature from Concordia College (1958) and an MA from the American Institute of Culinary Arts (1966). She was assigned to the London office temporarily from July through November 1992.',2,'http://accweb/emmployees/peacock.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(5,'Buchanan','Steven','Sales Manager','Mr.','03/04/1955','10/17/1993','14 Garrett Hill','London',NULL,'SW1 8JR','UK','(71) 555-4848','3453',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D20540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00000000000000A0000000000000000000000E900000000C9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D000C000000000000000000000000000000000E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000A90000000000000000000000CA0000000E900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0000000C00000000C00000000000000090000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0000000000A000000000000000000000CA00000000000000000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000909000000000000000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000CA0000C000000000000000000C000000E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000C90000000000000000CA9000000E90900000000000000D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000000000000000AC0000000000009000000A0000E0E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900CA0000000000000000B00E900CB0900000000C00000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C000000E000000000000000000CA00F0000DA00000000000000000CACA90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009CA0000000000000000C0000000A90CA9C9090000009000C0C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0000C0B0000000000CA000E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000CA09009000000000000E9000000000000000000000000000000000000000000000000000009A0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0000C90000000000000000000000000C000DA09000000000000C9CE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C000000000000C0CA00000000CB0D000000000000000EA9000000000000000000000000000000000000000000000000000A0B000000000000000000000000000000000000000000000000000000000000000000000000000B00000000000A000000000C0000C0000C0D00C0F09CB0B09000000000000DE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0000000000000CA9E9F0B0F0B9CBCB0D0000000000000000CF0000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000CB9C0D0A9C9ADCB9AD0B090000000000000EFA9000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000C0A90000000000A00000000E0DE90CB9AD9CB0DB0F0DBC900000000000000000C000000000000000000000000000000000000000000000000000E00000000000000000000000000000000000000000000000000000000000000000000090000B0000000000000C0000000C9CA90F9AD0DA9AD9AD90F00BCB09000000000000C00000000000000000000000000000000000000000000000000000A9A0000000000B000A00000000000000000000000000000000000000000000000000000000000000000000000009000E0F0BDCB0F9A9A9C90BC9AD0F9C909000000000000000E000000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000C0C90DAD0B0D0C9C9CBCBC9A9CB9CB0E900000000000000E0900000000000000000000000000000000000000000000000000B00B00000000A000900A00000000000000000000000000000000000000000000000000E00000000000000000000A0B0E9A9AD0F0B9A9A90909ADF99CBC99CA900000000000C0C0000000000000000000000000000000000000000000000000B00A0000000000000A0000B0000000000000000000000000000000000000000000000A000900000000C0000000000C0CB0D0D9A99C0D0D9E9E9C900FCBDBE99C09000000000000A0000000000000000000000000000000000000000000000090C00900000000000090000C000000A0000000000000000000000000000000000000000C0900000000000000C0000C09090DA9AC9CA9B0B009090B0F90BC0D9E9B00000000000000D0000000000000000000000000000000000000000009A900A0090A0000000000A0A00000A000000000000000000000000000000000000000000000000E0E000000000000000C000ADADA90DB9A9D0C90F9E0F0D90F0DBFADAC9000000000000CA000000000000000000000000000000000000000900000000DA0000000A0A0B0090000000000A0000E90000000000000000000000000000000000ACB000900000000000C0000AD090090DA9C0D00B9E900990B0E90DBC0DBDBC90000000000DAD000000000000000000000000000000000000C0A000000CB0090000C0F090000A000000A900009A000A900000000000000000000000000000000C90000000000000000000CA9000ADADA9CB9A9BC0090B00E90D9EBC9F9EDADB0900000000CACA0000000000000000000000000000000090A0B0000B0DA000A000ECBA00A0A009000000000A0000000C0000000000000000000000000000000000000000A0000000000000000090D09090B0C9009A90C0D090F0A9C9ACB9ADBCF000000000000D00000000000000000000000000A0B0CB0C000090000000090D00FF0C9E9090A00000000000000000CB00000900000000000000000000000000CB000000C900000000000090CBCB0BCBC9C9B00F0D00B909AD009C9BC9FCDBE9B0900000000EDA00000000000000000000000ADAC90090009000ACB000090E00A00EBEA0ACA9000000A00A009A00000E90000EB000000000000000000000000000000000000000000900E0090009C909A9A00C909A9D00AD009F0BC0ADA9BC9FCB000000000000000000000000000000000EFDFBDADA00A009A9000009A009A90000C9EF9ACA0000A90090000000000ACB0000F000000000000000000000000CA0000000000000E000E9000A9F0B0F00D09DA9AC900A9D0A9E00D0BD9ADE9FE9FC9000000000C0000000000000000009EFFFFEBCB0090090A0009009A000000C0000AEF0E090000A000A000A0000000CB00000CB0000000000000000000000009000000000000009E0000909C09C909A09CA9C900F90CA9C099F0F00ED09E0DBCBB00000000CA000000000000000CEFEFFFFFBDF0DA0000090C0A0000090E09A00000DEBC9A00B0000A90A000000000FE90000A90000000000000000000000000000000000900000090F0BCB0B0B09AD9A09090B900A99090F0009AD9A9E9F9EDE90000000CA90000000000000CFFFFFFFEFDEFA0B090E9000B0090A9000900090000A0EB00A009A9000009000000000FF00000E0000000000000000000000CA000000000A09A9E00000D0909C90BC900C9ADA9CAD09000F90E9F0DA0DAD0FADBDE90000000C000000000000CEFFFFFFFFFFBF9FD00A900A0000000C00A0009E00000000000DAE000A0A9A000000000ECBC90000B00000000000000000000090900000000C0C0000F09B0B0DA09C0B09A900900900BC9F0009000B0DA9DAD0F0E9F0000000000000000000CFFFFFFFFFFFFFFEF0BC9000090900F09000900A09000900000A0E09ACA090000000000000FFB00000CB0000000000000000000E0E0000000009A0000909E909C909A900D090F90E9A09090090BC990C9A9CBCBCDBFDA90000000E000000CFEFFFFFFFFFFFFEFFFF9FA9A09A9C0A0000A090009C0A0000A09A00FA9AC90B0A00000000000EFE9A0000A00A0000000000000000C0900000000000090ADA9E90DA9A9C90F90AC900090C909A09AD000E09E9CBCBCB0EDADB000000C0000CFFFFFFFEFFFFFFFFFFFEDFAC0D09000000900900A0CA000D000000000000CFFEAC00900000000000FFF9000009000A00000000000000ADA9000000000E000909099A909090A90A99B00B009000C09C009A90900F0F09EDF9EDFC000000000EFFFFFFFFFFFFFFFFEFFFFFBFDBB0A00000B000A00900090B0A0A0000A00000ACADB0A0A0000900000C0FFEB0000A0000000000000000000C0E000000000900DA9CBC9C9AC9A90C90C0090090A90B09A90BC0090F0090F09A0F9A9B000000E0CFFFFFFFFFFFFEFFFFFFFFFFFEBC9D00DA90000900A009000009000A0090000000F0E09000000A000000FEFF900B00000000000000000000CA9000000000000B909B09A90990C90B09A90F090C900000000009AC009E0F0FCFDADFCF900000D0FFFFFFFFFFFFFFFFFFFFFEFDF9FFA0B0000090F009C9000A0D0E000900A00000A000A9A000000000000CEFFE9A00000A900000000000000CB00000000000ACBD0F0C9099A90A900900900000A900090900900000ADA090D0B9A9E9E900000CAEFFFFFFFFFFFEFFFFFFFFFFFEBEF00D09A09A000000000A0900A900A00009000900A00000000090000000FFDB00000000A0000000000000000F0000000000990B99B90BC0DAC90B0C0BC909090009000000090909000D0E9EDEDE9E9F000000CFFFFFFFFFFFFFFFFFFFFFFFFFFDBF9A000000900090A00900090000000A0A00000090000C0000E0900000E0B000A09A0D0B0000000000000AC0F00000000CADBCBC0BC99A0990009A90909A009000090090000000000A90B00B0FCBCFB0000CFFFFFFFFFFFFFFFFFFFFFFFFFFFADAD0B0909CA09A09090000A09E0090A0900000A0A00000A90000A00000B000B0000000A00000000000000DE900000000C9B90999909A090A09090900A0009000900000000000009000C0C9EDE9F0F090000EFFFFFFFFFFFFFFFFFFFFFFFEFBFFFB0B00CA0009000000A0DA9C0090A00000A9A00000000A9000B000000000000000000000000000000000CE9A0000000E9BD0F9A0E9AD90D090BC0009090900900000000000000000909A9AD09AE9E9E900CFFFFFFFFFFFFFFFEFFFFFFFFFFEDB9CBC90090900009A009000000B000090A0C00000B000000A000D09A00A00A0000EB00A0EB00000000000CBC09C000099F09B9C99909009A900090B000000000000000000000000000000C0A0FD9E9E9000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA900B000A90B0009009000B0C00A0A009A9A90000A00000000A00000900000CAF0B00CFFF9000000000ACBE000000E99F9CB9E9A909A900F09A0090900090000090000000000000000000DA0AD0F9E90CEFFFFFFFFFFFFFFFFFFFFFFFFFFFBFDBCB000900000C900E00A9000B0090000A00000A0090009A0E909A0B00A090EBE90000FFFFB00000000C0F0900000F9BF9B99090D0B0D0990900900000000009000000000000000000900900D0AD0EDA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDADB009A00C9A90A0909000C09000A090A00000009A0000E0F9ACA00000000A0090000EFFFFFF00000000FE9E0009DB9E9DADADA9A9C90B0000090090090900000000000000000000000000C00BC9E9B0DEFFFFFFFFFFFFFFFEFFFFFFFFFFEFBEBF0CB0090B000009A000000BC00000A09090A00A0C0A000F0ECBDADA0A9000B000A0CFFFFFFFFB00000E0F00900CAFDBDB99909C909A90090B0000000000000000000000000000000000009AC00E9ECFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC9B0C0000000090000090B000B00B000A0A000000A9000000B0CA009000A0000A000FFFFFFFFFFFF9000C0FA0009F9F9BCBDA9A90B090DB000909090000009009000000000000000000000009C09A909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBE9B909A9009A0B0090A0090000000B000000009000E900A000A9E0AC0A09A09000EFFFFFFFFFFFFF000AF09000F9FBF9B9A9D090D00B000900000A0909090000000000009090000000000000A9C0DACCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFCBC00A000A9000C0B00900CA09000A000A90000A0A00A00C90A9CA900B00000000FFFFFFFFFFFFFFFB00C90000FFFBD9F09D9A90B0B9090900900909A00000000000090000000000900000E090C0B00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBD0B09090D009090C0000A090A0A09009000A00000B0DA00AC00ADEFA09E0B00EFFFFFFFFFFFFFFFFF90CA000CF9F9FB9F0BC9AD09C0090A900900000909000900090009009A90900A90090C00B0CAD0CFFFFFFFFFFFFFFFFFEFFFFFFFFFFFBFBA90000A000A00A009A090009009E00A00A90090000A00000B00000EDF0000EFFFFFFFFFFFFFFFFFFFFB0D0009FFFBDBDBD9B090B09B009009A090900000090090009C0090000DA90009009A9C09000B0CFFFFFFFFFFFFFFFFFFFFFFFFFFEFDEDADBCB090B0909090090090A000A90B00A000A00A0009A9000CA9A90AA0FFFFFFFFFFFFFFFFFFFFFFFFF9A000EFBFDBDB09AD9E909009009000900009090B00900DA09090D090000909C9C09CA9E9AD0DAFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBDA090C000000A00A000A0009009CA00009A0D0000B0ACA000A9C00AC9CBEFFFFFFEFFFFFFFFFFFFFFFFBC090FFFDBBCBDBD0A9090090A90909009090A09009009009A909A9E9099AD0B0A9CA9C00C00ADEFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCBC9A00B090B090909090C900A9A09E09A0000A900C009C0000E0BC9A0ACBDFFFFBFFFFFFFFFFFFFFFFFFBC00FFFBFDB909A9909ACB0C90A00090A00909E990A9A90C90BC9090B0C9090D9E09CBCB0BC90DFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB0B009000A000CA000A000A09009E09E00A0A9C0B00A0A0B0009E0A0D0F0AEBEFBCFFFFFFFFFFFFFFFFA90B0CFFFF9BDFBD9E9909009009090BC9090F090AD90D09B9AD0BCBD0DB0DB0F0B9FE9CBCD0BCA0FFFFFFFFFFFFFFFEFFFFFFFFFFFBEFF09A090909C909009009000000C90E9A90900A9C0B0900000A00F0DA000D00CB0EFFFFFFFFFFF9FA90000C0BFFDBFDB9CB090E90090A9090000909A90F990ADA9E9C99F9BD0B0C9B0D0FDE9DEBDA9AC90DEFFFFFFFFFFFFFFFFFFFFFFFFFAFDB0DA90A0000A000A9000A090A9090A9A000A00D0A90C0A09A000E0EA9CBFABCB0B09E9CAD0A900A00000000BCFFBFDBBDB99E990B9090900F909A0F0DB09CBD99C90BDA90D0BD09B0DBF9CBDEBDECBC9ADA0FFFFFFFFFFFFFFFFFFFFFFFFFFDBADB0C0909A909A9000090000000A9C0C9A00A0A09E9A90A0090900D0A0C0DEB0C00A00B0A900000090009000CFFFDBFDA9E990A900A9000900F0990B9CBCB9ADA9BD09DBDBD9ADBCB0D0FBCFFDADBCBC90DACFFFFFFFFFFFFFFFFFFFFFFFFFBFDA009A00C000000D09A009A9090CA90AC909090E00C0E9000A0A00AFCB0E0F9A0FFCB00000A9A90000CFA900CFFBFBDBDB90E9090D0090B09009E0D0A99BC99AD90BDA9090BC90D9D9AD0D0F0FDADF0BCB09ACFFFFFFFFFFFEFFFFFFFFFFFFFAFDB00909A90B0900A0090000E00090A90A0A00090B0B00B0A0000AD09E09A00CFFFFFFBCB0000CA9ACB900000FFFFDFBDBCB99C0B090A9C90B9A99A9DBC9B9E9B0F9B9DBDBDBDB9A9E99F9F9FFADF0FDADAD09EFFFFFFFFFFFFFFFFFFFFFFEDF9ADA90A000000A090900A0909009E0D0A09000A0E09C0F0C909A000AFE9AC90FFFFFFFFFFFFFFB9D0DA000000FFBDBBDB09900A909090900B0C9DA9DB09F9C909D90D9A9ADBC9BC9F99E9E9EDADF0FF0BC909E9FFFFFFFFFFFFFFFFFFFFFFFBFAD0900090090909000A0D00A00B090A0D0A0A9009CA9A00B0E009A9C0BE90A0CBEFFFFFFFFFFFFF0BEF90000CFFFFFDB9DBCB09090A090A9C99B0DB09F090B9F9ADB9F9D909B0D9F9EF9F9F9F9E9FE9EDB0F09ACFFFFFFFFFFFFFFFFFFFFFFF9F0B0AD0A9A0A0000B09009090900E900AD0000A0A0D090C0B0F00CA0C0FEFDA009ADAFFFFFFFADA0CFFF90000FBF9FBDA909090DA99C0990B0F0B09F0BDBD090F990F9A9F90DB0B0D9EBD0FCBCBD0DF9EDB9E0D9AFFFFFFFFFFFFFFFFFFFFBFE9F0D00900909C9A000000A00E00090E900A9E00C0B0A0CA9C00BCBCBFFFFFFFFBC00000CB0BC9A9CFFFF00000FFFFFDBDBCB0F009009B0C90909DBC990909BDB9ADB90D909F00D0DA9990F99F9DAFF0F90FC9F0ACDFFFFFFFFEFFFFFFFFFFFFBF0B0B00090000A09C9A9090909A9E090A0D009A0B0C90A9CA9FCBCBFFEFFFFFFFFFFFFEBCFE9E9EBFFDA9000CFFBDB9A9090900B90B000B0F0BCB0B9E9A9F0B09D99C9A90900900B0D9EDBDE9FCBD0FD0F09B00D9EFFFFFFFFFFFFFFFFFFFF0F0BC900A9A0A90900A0000AC0A09090AD09A9A0D0C9A0BCA0DA09EFDEFFFFFFFFFFFFFFFFFFFFFFBCFFBDA0000FFFBFD90F0B0090C9090909099909D099D09D9DB0B0B900F009A90D0B09BC9BCBBCBF9AF0FADADA09EFFFFFFFFFFFFFFFFFFFFFF90A090009C0A09090909090D00CA900AC00DA0B0C9C09CB0DAC9AFFFFFFFFFFFFFFFFFFFFFBDFF9CFFF99000FFDFBBC909090090A9CB0DA9E9ADA9BCB0B0B909D9D0D9009000C9A9C9E9BCBDDBD0FCDBD09090DA9CFFFFFFFFFFFFFFFFFFFFBDE9DA09C0090900A000A000A0B0A90E909A900D09A0B0F00FADAFCFEFFFFFFFFFFFFFFFFFFFFFF9EBFFF0000CFBFBDB9A90F09A090900909090D90D099D9D9CB9A909A0900090900CB090DBDAF0FF9FADA9E9E9BCF09EFFFFFFFFFFFFFFFFF9EB9A009A0B0A00A9090909A090009C090A0C0E9A0E0D0E00F0D0F0FFFFFFFFFFFFFFFFFFFFFFFFEBDFFF0B0000FFDFB9C0DA9090DB09A90B909A9A9A9E9A9A9B9C99A9090909000009090DADAD9FF9F0DB9E9C9AC90BCFFFFFFFFFFFFFFFFFFFF9E909009000909000A00C0900F00BCA0D0B090C909A090F00FADEFFFFFFFFFFFFFFFFFFFFFFFBDF9ACB90000CFFF9F09B09090B000090D0A00D09C9999D99C09BD09C90000C9090900F0BC9DFFD9E9FF9E90B0D9E9CBCFFFFFFFFFFFFFFFFBF0B0F00B000900A0DA909A900E90900900A9C0A0B0E0DACB0F00F0FEFFFFFFFFFFFFFFFFFFFFFDFFEFBDEF90000FFBF9F09BCB0D099BC0B090D0A90B0E0B0DB99C90B090B9090A9090F90D0FA90FAFDF9AD9E9CB0A9E9CBEFFFFFFFFFFFFFFFFFFF90B009E0A90D00000000B000A09E0AD00A9C9C090A09C00F09EFFFFFFFFFFFFFFFFFFFFFFFFADBD0B090000EFFFDA9BC9999A9A00990909090909999D9B090B9F9DB900D099CBDA90F9F9DFF9FDBDEDB090B0D9E9EBD0FFFFFFFFFFFFFFFFFBDAF00900900A00B09A090009AD0000909E90A09ACBC9CB0F0FEFFFFFFFFFFFFFFFFFFFFFFFFFF9E9E9C00000DFB9B99C90F0AD90D09A09A09A9E9E90F0B0D9BC909A9CBDB9BCB90DBDF9E9FBCFDBCBB90BCBCB0E9CBD0FFFFFFFFFFFFFFFFFBCF900BCA90A900900009A009E000E90CA000C9AC900B0A0F00F9EFFFFFFFFFFFFFFFFFFFFFFFFFFBDA09A0000EFFF9CA9A90990090900D009C90909A999D9BC9BDBD9F9909C99C9F9CB0DBDEDBF0FF9DAD09F0C99BCADADEFFFFFFFFFFFFFFFFBA9E9090090090A90B0009A009A990B09C9A0C90E9C0D090F00EDFFFFFFFFFFFFFFFFFFFFFFFFFFCBDB009000DFBDBBD99F9E9B090B90B09A90B0909CA9B09BD099A99E9DB9DA9F0F9DBEDBDFDFF9FE990F09F9EADBCBCB9FFFFFFFFFFFFFFFFFDA9A0090A9CA900C09A009000C00E000A009A0A90A9A0F00F0FBEFFFFFFFFFFFFFFFFFFFFFFFFBFF0F090000EFF90DA9E9099C90B0C9090909D0BC9B9D0DBCBDBD9DB99A9CB9D090DAD9FCFADE9F99DA90DADA9DADBDBCFEFFFFFFFFFFFFFFF0F9C90B0A9009009A9009C0A9A900909AD0F00C90E9C0F00F0FDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF900000CFF9ADBD990BDA9B0D09B09E90B0090B0909A99909BCB900909000090909CADF9F9F0BCA9DA9BDBDADACBCB0FFFFFFFFFFFFFFF9FB0B0BC0900B00B000090A09C00B0AC000000B0E900B00E90F0EFFFFFFFFFFFFFFFFFFFFFFFFFFBDBDE900000FFBDA9ADAD9AD09B0B00909AD09B0909CB99DADBC9909090000990000000909C000D0990090DA9CBC9FDBCF09EFFFFFFFFFFFFFEDAD00900F00B0CB090A09000BC0D09ADA9AC090E9C0F09E00F9EFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFF90000FFBDF9DB9AD9BD0D09BCB090B0D000DB00F099009000000909C0AD0BC909C0A909000009A0F9FA99F0F0F9F0F9EFFFFFFFFFFFFBF9A9A0B009009000A90009A90B00A00000C9AC090A900E99F0EFFFFFFFFFFFFFFFFFFFFFFFFFFFF99E9A090CFBCB9FB0D9BC9A9B9C990DA99DA9B900990900090090D09C9C999909009A99C9E9A900000D009D0F0F0F9E9F0FDFFFFFFFFFFFBF9E9C0900B009A9090C0B000C00009C90F09A00B0E9C0F09E0EFFFFFFFFFFFFFFFFFFFFFFFFFFFF9EF0909000F9DBDA9DBBC9B9D0A9A09A9C9A900009000000909B0B0909A9B0F0F9F9FD9E9BDAD0B090DB0BF0F0F9F9EDBCFFFFFFFFFFFFFFFCB090B0A900B000A09A90CB0B09E0A0A00000D0C900A90BC0F9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0BE90B900AFF9F9BC99BD0B9D09BC99A9909909000909BCB09D9BDBD9D0909909E9AF9FCBDB0D0DAD09C9B9DADADFADBCFDFFFFFFFFFFFBFBDA90D00B0CA90D000090000A09D09C9A9E0A9A0F0C0E0B0E9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD99FD099C9BCBDADBDADBD0B99E99E99E90000000009C990F0BC909A9A9E90E909D9CF9F0FDB0A90BF09EDAF9FDADF0F9FFFFFFFFFFFFFFADADA0A90C9090A09A90A9090DA00A000C00900C900B09C0F0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9B9B909FDBDBDB0BF9B0BC0B90B90B9090D0A909E0B0F99999B9C90D090900BCBCBDADFCB0D9DED09E9BD9E9EDBEDBCBDFFFFFFFFFFFFDBB09C90A9A9A909A00A90AC009009C9A90B0CA9A0F0CE9E9ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDBDBD09CFBDBDADBD9FCBD9BD0F90F9090A909C00990D09AD0AD0B09000009D09CBDADBCB9E9ACB9B099EDAF9F9EDBCBDBFFFFFFFFFFFBFBC9A9A0900000A0900D0009A9AC00A0CA0C0900D009A9A0DE9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBDB99B0BDB9EBDBDBE9B09A9A99E909CB090909A9009A9090D909090090900ADADAD9ECBDE9D9BD0C9EF9BD0DAFDBEDE9FFDFFFFFFFFFFCBAD009B0A9E90D009A009A00009F090909A0ADA0BC0D0DA0ADFEFFFFFFFFFFFFFFFFFFFFFFFFFFBFB9F9F999FFFBDB9E9F9F9F9D0DA99B9B9090DA90909AD0BDA909E99A90000909090DADBDA9DA0FCB90990F0FBFD0BCBF9E9FFFFFFFFFFFFBDBAB00C9C090A0BC090A0909CA000E0AC00D000D09A0A0D0F0EFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DB9F9F9CFBDFBDA9F0F9F0B0B99F0D09090009C909E9090990B0900D0909000C9E9AD0DADF0D9090090F99F9C9EFDFD0FDFF9FFFFFFFFFFFF0D09B0A9A0B0900B009C0A0A900A90909A00E9A0E0D0F0F0FBDFFFFFFFFFFFFFFFFFFFFFFFFFFBDB9F9FB9FBDFBDBDF9F9FBD9F9CB09B9F9A0900B0A9090B0DAD0990B0090090DB090DCBCBD0B9CA90BCB9CFADBFBDADAFF0F9FEFFFFFFFFB0B9A9E009009C00A900B00A9C9009C00CA0D0900D09A0F00F0DEFFFFFFFFFFFFFFFFFFFFFFFFFF9DBDBDB9DBDFFBDBCB9BDAF9A90B99F0D0909909009D0909C9090900D0900C90000D0F0BDAD0BCA990C90C9B9DBCD0FDBDADFB0DFFFFFFFFFFFCBD09CB0BCA9A90A9C0090000F0A90B090A0E9A0E0D00F0BE0FEFFFFFFFFFFFFFFFFFFFFFFFFBA9F9FBDB9BDFBFF9F9F0F9DF9F9CB09B9B0900F0900009E09A90B0DB0909A909090A90DCBDADD9DA9909B9C9E9FBFDBEFFDBCFF0DFFFFFFFFFBF0BA0900090090D0A900A90B000000C0AC9090C909ACB0C0DADBFFFFFFFFFFFFFFFFFFFFFFFF9D990D9BDBDFFFDBF9F0F9FB9F9B99F90D0DB99090090B0990D09090090909090909D0F0BD0DB0B09CA90D0B9DBCDFBCF9CBEF909FFFFFFFFFBFDBC90A9E9A0B0A0900A900C00B00F0A90900E0B00E090E9FADEFFFFFFFFFFFFFFFFFFFFFFFF9B0B0FBBF99BFFFBF9E9F9FB0F9AD9E9F99B90CA9009009C90B09F9099090D090BD0F0F99C0FF0F9D099C90BCDADFBEDF9FBFD9FBDEFFFFFFFFFCBA09AD0900D0C09A09000A90BC900900ACB0900F09CAD0A0DADEFFFFFFFFFFFFFFFFFFFFFFFF9909DBD9BFFFFFF9F9F9FBDF9F9BDB99AD0B9990990B009A9C900090009A9B9D0B99D9EDB9099090B009A9D9BDBFDF9FFCF0FADF9DFFFFFFFFFBD9F00B0A9B0B0B09CA9090000009A09C900CAD009E09AD0F0FAFFFFFFFFFFFFFFFFFFFFFFFFB90909FBD90DFFFFF9F9F0DBFF9F0BDAD9B9C9A9D009090009099909099C90DA9D9E9ADBFDAD0F9E90900DA9E9FD9FFF0FF9FDB0FBFFFFFFFFBFBEB0B009C000090CA900E090F0B00C90A0CB090ADA09E0ADAD0DEFFFFFFFFFFFFFFFFFFFFFFF90DBDB9090DBFFF9FF0F9FBDB9FBDB9F9BD9B9D9A9B0909090B000B0DADB9F9DB0F9FFDFDFDFB909090F909D9F0FFF9FDF9EDADFF9CFFFFFFFFFF9BC9CB0B0F0B0B0909090A000000B0E90B00AC9009E90DA9EBEFFFFFFFFFFFFFFFFFFFFFFFB9DB909090B0FFFFFF9FDBFDBDFF9F9F9BDB0D9A999C90C909090DB9DB9BDBDBB9DBDBDBFFFFBD0DA90990DF0BDFFFDFFFBEDBF9F9DBFFFFFFFFF9BCA9A900909C0000A0A000909AD0009C009C90E0F00ADA0DBCFFFFFFFFFFFFFFFFFFFFFFFF90999909090DFFFFFBF9BDFBFF99F9F9BD0DBBD9F0909990B000909DBD9F9DB9DFBDBDFFDFFFDFB990DACBB9FDBDFFFDFDFDBDE9EFBDFFFFFFFFBFEB9000E9A0A0B0F09090B0CA0009E00A9A0A090009E90DAE0F0FFFFFFFFFFFFFFFFFFFFFFFB9CBCB090909FFFFFDFFFBDF9FFBDF9F9BB9D9B09DBDA9A909D909A99BD9FBDB99DBDBDFFFDFFF90DA999D0DADFFDFFFBFFBDBDB9FD0FFFFFFFFE9BCBDB9009C900900AC000909CB000909C9C9CA0F0E09EAD0F0FFFFFFFFFFFFFFFFFFFFFFFF99B99990909FFFFFFBF9FDBFF9FDBFDB9DDBBD9F9A999D09D0A09C9DBD0BD9F9F9BDBDBDFFFFDBDA99CBCBDBDBFDFFFFFDEDFEF0DFB9FFFFFFFFBFF9A00CB9A9A9E0A9090B00A000009AC0A0A0B0D0009E090F0FFEFFFFFFFFFFFFFFFFFFFFFB9C9DB90090F9FFFFFFDFFBDF9F9BF9BDF9B9D9B9D9BC9A99A999B09A9B9DBF9F9BDADFDFFDBDBD090DB9F9F9FDFFFFFDFFBFDB9DBF9CFFFFFFFFFF0BC90B00000090909A00009090BAC0B09C90C0A90F00F0F0F0FFFFFFFFFFFFFFFFFFFFFFF999FB909900DBDFFFFFBDBDBFFBFF9FDB9F9F9BD9AD9B99C9090D099D0DB9C9F9F99DB9FFFFFEDBDBF0FDBDBCFFDFDFFFDFDBFDEBDFB9DFFFFFFFF9F09AD0ADA9E9A0A0C009E000E00909C0A00B009E00F00F0F0FEFFFFFFFFFFFFFFFFFFFFFBF909DBD0990FBFFFFFFFFFFF9F9FDB9FDB9F9F9BD9BD9E9B9DB9A9CB9B9CB9F9F9F9BDFDFDFDBDAD9DB9F0FDBDFBFFDFBFFFDAF9E9FFBCFFFFFFBFFAF09A90090009C90A90090B00900A00909AC0F090F09ECA9E9FFFFFFFFFFFFFFFFFFFFFFF999FB909009CBDFFFFFFFFF9FF9FBDF9BDF9F9BD9BD9A99C9A9D99B9C9DB9DBDB9DBDB9FFFBFFFDBEBDEDBDBDBDFDFFFDFDFFFDF9FF999FFFFFFFF0F9CB00F9A9A90A0090A000009A00D0BCAC00900CA00E0B9E9EFEFFFFFFFFFFFFFFFFFFFFB9ADBD9B9090FFFFFFFFF9F9FF9FF9F9BDB9B9BD9F90B9DB9B9DA9E9DBDB9FBDB9FB99DFDFDFDFDBF9DF9BDBDFDFFFFBDFFFBD9F0FFFB0FDFFFFFFBFB0B0E9000C90A90B0009009A0000A00090B0ACB0DAD0D0E0F0FFFFFFFFFFFFFFFFFFFFFF9D99FBD9A9090FFFFFFFFFFFDBDB9F9BD9BDDBDBB0DBDB9D0DA99990B9BD9C99FD9DBFBDFFFFFFFFDFF9FCBDE9FBDBDFFDFDFFEBFDFFD99FFFFFFFFF0F0900B0B0A9C0000000A009C9090DA000C9090A09A9ADAD0FCFFFFFFFFFFFFFFFFFFFFFB90F9FB9D09009BFFFFFFFFBFFFDB9FDBDB9BD9D9B999CB9B9DBCBD9D9CBB9FB9BF9D9F9FDBDFFF9FDADBF9F9F0DFFF9FFFBDBD9EFFFBDADFFFFFFF9F0F0B9C00900B0F00B0900C00A00A00D0B00CAC9CAC0DA9ADAFFFFFFFFFFFFFFFFFFFFFF9999DBDB9B909CFFFFFFFFFFDB9BDF9BE9DBDB9B9DBDB99D09B0990B0B9D9F9DBD9BBD9FDFFFF9FFFBDBD9F9BDBF9F9FF9FFEFFFDFFFF99FFFFFFF0FBA90C0B0F0A900009000090A9000D090AC0B0090A90FA9EDADEFFFFFFFFFFFFFFFFFFFF99E9FBFBD9909A9FFFFFFFFFDBFFDB9BD99B999F0DB099BCB9F99F9F9D9F9BD9BDBF9D9F9FFFDFFDDADBDFAD0F0F9FDFFDFFDFDADAFFF99EDFFFFFFFF09CB0B09009C90B000000A000000A0E9090CB0AD0CB00D0ADEFFFFFFFFFFFFFFFFFFFFFB9999DBDBF9F99C9FFFFFFFFFFF9BDBDBDBDBDB9B99DAD99D90F09090B99F0BBDBD9F9BDFFDFBDBFBDBF09DBD9F9CBE9FFFFFBFFFF9FFF09FFFFFFFBDFA90900CB0A0A0000A09000909090900CA900D0A9ACBCAF0B0FFFFFFFFFFFFFFFFFFFFFF99E99FBDBF9BF9FFFFFFFFFBDFF9F9BDB99DAD9DB999A9B0B99F9BDBDAD9D9DA9F9BD9BDFFDFFDEDBD9F0B0A90FBDFF9FDFDFDBDFFF9F909FFFFFFFADAB0E9A00D09090900000900CA00C0B0B00A9A9C0C9CBC0FCFEFFFFFFFFFFFFFFFFFFFFB9099F9DB9DBD9B9DFFFFFFFFFBFDB9DB9F0B99B09CB99D09D0B09C99099B9BD9F9F99FDFFFFF9F9BDA909C9DAD9CFBDFFBFFFFFF0FCF9F90FFFFFFBFBD0C9090B0A0E0A00900A00A0000B00C09C90C0A0B0B0DB0FAFFFFFFFFFFFFFFFFFFFFF9D90F9FBFDBB9F0FBFFFFFFFDBFDBBDB0D9BD9F9D9B9CB0B9A9C909B0F9BCBD9B99F9F9BFF9F0FA9D00D0B09A90ADBCF0DFDBCF9009FB090FEFFFFFFE90B9A0E0090909C00000000909000B090A0E9AD0D0E9EA0F0FDFFFFFFFFFFFFFFFFFFFFBB99099F9B9DF9F09000FFFFFFFBFDBD9BD0B090B0DA9090C9090B0C99C999B9F9F9B9DFDFFBD990099AD09C9E9DADF9FBFFFFFFB0EDFF909FFFFFF9F9E00090B0AC000090090090000090C0AD09000A9A90C9EDADAEFFFFFFFFFFFFFFFFFFFFF909AD9BDB9B9B9F09000FFFBDFDBF9BD0B99DB9090909C909A09C9000B09E909F9FDB9FFFDFBCBDA09009A9090BDADEDE9FDF9FC90FFFF90DFFFFBFEB9E9E09C909A9A00A0000000E000F09000A0D0D0C0FA090F0DFFFFFFFFFFFFFFFFFFFFFFF99D9ADBDBDFBD90009DFFFFFBBF9FB9B9C9A0DB0909A909009090B0909C99F99F9BDBDFFF9990090009090BCBDADBDBDF0FFFFB0E9FFFFFFFFFFFF9BC9090A000A00090000000A90900000ACBC9A0A09A90DAE9EBEFFFFFFFFFFFFFFFFFFFFFB90909090F9B99A0BCBEFFFFFDFDBD9C9CB999909AD090A9090000090090B09BF9BDBDFF9B0F009090909E9C9CADBCBEDADFBCF0D90BFFFFFFFFFFBFCA9A0A90BC90D0000900090000090B09000090DAC9ECBC9ACFFFFFFFFFFFFFFFFFFFFFFFF99090BDB9F9F00D000DFFFFFFBB9BB9B90BC9A909A90990D09090909A090F9C9BDBDBDFFD90090000000009A9D0FBC9ADAFDFFB0EFDBDFFFFFFFFDA9B0C900C0A000A0900000000A00AC0CA90B0E009A09A0F0F9A9EFFFFFFFFFFFFFFFFFFFFFFB9BDDBDB990900F0F0FF9FBFDBD9C90099B0DBD09DA0D0900B0000090090B9F9F9F9FFBFB9ADB90D0BD9BC90A90DBD90DEBEDF9EFFFFFFFFFFFBFF0F0B0DA9090B090A0009000009009A90C0C090BC0DAC9AD0EDEFFFFFFFFFFFFFFFFFFFFFFFFFDBB9B9F00009000FFFFFFFBDBA9B9000C9B09B0099A0B0D090909C900909BDBDBDFDF90D9000909000000F0DE9CA0CBDFDFB0CFFFFFFFFFFFFEBF0900A00AC000C0090000A0D0000000B0B09AC009AC9AD0AF0FFFFFFFFFFFFFFFFFFFFFFFFFFB9DBD900000A00F9FFFF9FDB9D9D09009B0D900900090909090009A99E9FDB9F9FFFBC9A09090A00000000DA9A090BCFBEFC0FFFFFFFFFFFFF9F090E90D090B09A90000009000A09A9C000A09ADAC90BC0F90F0FFFFFFFFFFFFFFFFFFFFFFFFFFFB90009000C90CFFFFFFFBD0B0B90900090A9000000CA90000900900909B9FBDBDF9B0DB000009000000CAD09000CBCDFFB9EFFFFFFFFFFFFFADA900A0A000C000C0A9000000900C0B0D09C0009ADACB00E09E9EFFFFFFFFFFFFFFFFFFFFFFFFFF090000090000FFFFFFFFBD9F0BD090000900000000DEB900090090BD0FD9DBDFFF9B00900900000000ACB00C09CFBE9FF0CFFFFFFFFFFFFBDBCA9090DA90B00A9000000000000B000A0E0BCBC00090F090E9EFFFFFFFFFFFFFFFFFFFFFFFFFF90000000000F0FFFF9F9FB9A99C9B0900000000000DA9000900090AC9B9BBF9FBDF9C900090000000000900090CBD0DEF00FFFFFFFFFFFFBDEB090E00000A009000900900B000000AD09090009ACB0E090E90FADFFFFFFFFFFFFFFFFFFFFFFFFB000900000000FFFFFFFF9F9D0BB0D000900000000000009009000999ADFD9FFDFB09A0900009000000000090E9FCBF0F90CFFFFFFFFFFFFFB09CA90B09C90CA00A00000000E09C9000A00E9AC90C909E09AD0FFEFFFFFFFFFFFFFFFFFFFFFFF90000000009C9EFFFFBDFF90B90D9B0900900000000009000000909E9F9BBF9FBFDBD90090000000900009ACBDF0F0CFDA9EFFFFFFFFFFFBCBDA9000C00A009000900A000009000A90D0900090A90AC09AC0AD0FFFFFFFFFFFFFFFFFFFFFFFFF900000000000A9FFFFDFBFBD0F0BCBDBD000090000090000B009009090F9D9F9F9F9A9D0A990090000D0C099EFBF9F0EF90CFFFFFFFFFFFFFDADA9CB0B0900A0D0009000090000B0CA0ACA90E0D0BC9AC090DADADFFFFFFFFFFFFFFFFFFFFFFFB000900900000CFFFFBFDFFB909090909B99DA0909A0C9A9009A09A0BD9FBFDBFF9E90A90CA9D00909A9BF0FDBC9E0DF9A0CFFFFFFFFFFFFBE900000000CA9000A0000090A0000C0090909C009A0000009ACA0FFFFFFFFFFFFFFFFFFFFFFFFFF9000000000900FFFFBDFFBD9CB0CB0F9E9CB099B0D09B0900900909D09AD9DBDF9B990909090A09ADADAD0DA9E9E0DEBE900FFFFFFFFFFFBE90E9A90D0A90C00090000000C0B090B00AC00A9A00F09ADA0909FADFFFFFFFFFFFFFFFFFFFFFFFF90000000000000FFFFFFFFFB900909009A90BCBCB0B0090900900900F9FBAF9B9F0F0F000009090909090B0D00009ADF900CEFFFFFFFFFFFBDB00CA0A900000B00009000000000009090BC90D000AC0090E00CFAFFFFFFFFFFFFFFFFFFFFFFFFB000000000CA90CFFFFBFFFFF9B00A9009009090909090009009009A090D99F9E9F99099A90000000000000090DAC9EEF000FFFFFFFFFFFDFADB009000CB0B0000A00000090000B0CA00000A0AD090B00C90FADFFFFFFFFFFFFFFFFFFFFFFFFF90000090009000FFFFFFDFF9F9C90900900900000000000000000BC9DBDA9E9E9FDBDB0D0090000000000000A0009EDF9000EFFFFFFFFFFFADA0DA0C0B000000D0900090A000000009C90B09C900AC0CA9ADADBFFFFFFFFFFFFFFFFFFFFFFFFFB000000000000E9FFFFFFFFFFB90D0000000000000000000909C9090B099F9BDBDB0BC9A99C0900000000C90C9ADEDFB0000FFFFFFFFFFFBFDA9090A90090C90A000000000A909CB00A00C0A00AD09A900CBEFEFFFFFFFFFFFFFFFFFFFFFFFFF900000000000900FFFFFBFFFF9FB09909A90090900000090C0B0BCBD9FAD0FDBDADBD9F9F0B909C90900900F0FCFFFFF9000EFFFFFFFFFFF9A9CA0D000E0A0A00000000090000000909CB09CB00A0C0A9E9C9FFFFFFFFFFFFFFFFFFFFFFFFFFF9000000000000900FFFFFFFFFF9F9AD9C90900A009090009BC9F990BC9DB9BCBF9BCBF9E9F0F9EBE9CBCADADFFFFFFFFA900DFFFFFFFFFFFEDA900A09090090090B0900000000090E00A00000C9C9A9C00EAFEFFFFFFFFFFFFFFFFFFFFFFFFFF900000000009AC0BDFFFFFFFFFBDBDB0B0F0BD909CB09F9E9FBCBDBDBFBCFDBFDFDBDBF9BF9FF9F9FBDBDFFFFFFFFFF90000EFFFFFFFFFFFBF9CB090CA00C00A00000000000900A0909009E90B0A00C0BCBDFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000C090D0FFFFBFFFFDBDFBDBD9BC90F9BCBDBDBDB9F9BDADBDBDBF9B9BDBDFDFDFF9FFFDFFFFFDFFFFFFFDE900CFFFFFFFFFFFBC9A0000A9000B00D0000000009A000900A0DA00E00D0F0B0CBCEBFFFFFFFFFFFFFFFFFFFFFFFFFFF900000000009A90A9FFFFFFFFFBFBBDBDBF9BF9BCB9BF9E9F9F9EDBDBDBF9F9FFDFFBFBFBF9FFF9FFFFFDFFFFFFFFBFB0000FFFFFFFFFFFFFAD0F0D000B009A00C9000900000000C9C0090909A000009ACBDEFFFFFFFFFFFFFFFFFFFFFFFFFFB000000000000C09CA9BFFDBFFFFDF9F9BDBDDBFDBDFDADBDBCB9BDBF9FDBF9F9FB9FDFDBDFFDBDF9FFFFFFFFFFFFFDFFB000EFFFFFFFFFFBDAB000A90C00C00090A09000000000B000B0C0A00C9A9E9E09EAFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000000000909A090FDFFFFFFFFBFBDBF9FBBDBBDB9BDB9BDBDBDBDF9FBDFFFF9FF9F9FFFBDBFFBFFFDFFFFFFFFFFFF9C90CFFFFFFFFFFFFF9CB0900A90B0090A000000000090000B000A90DA9AC00009E9DFEFFFFFFFFFFFFFFFFFFFFFFFFFB000000000000AC90FCBF9FFDFF9F9DBF9F9FDB9DB9FDB9FDBDBDF9F9FBDFBDBDBF9FBFF9FDFF9FDFDFFFFFFFFFFFDFBCB000FFFFFFFFFFBEBCB00CAC900000E0009000000B00009009C90C000C909E9E00EADFFFFFFFFFFFFFFFFFFFFFFFFFFF90090000000009E09ADFFFBFFFF9FBF9F9F9BDBF9F9BDF9B9ADB9FBDF9FBDBDBDBF9F9FFBF9FFFBFBFFFFFFFFFFFFEDBD00CFFFFFFFFFFFDB9CB00900A0CB09090000090000000AC00A00B0B000E0009E9DAEFFFFFFFFFFFFFFFFFFFFFFFFFFF900000000000D09C09ADBDFFFFFBD9F9F9BFDBD9F9F9BDF9FDBDBDBF9F9F9FBDBD9F9FDBDFFDBFDFDFFFFFFFFFFFFFFFAD000FFFFFFFFFFFEB0C9A0009000000A00A900000000009A909000C0B090F0000E9DAFFFFFFFFFFFFFFFFFFFFFFFFFF000000000900000B0F9FFFBDBF9FBB9F9F9BBDBF9B9FDB9DB9F9F9F9FBCBF9FBDBFBDBBDFBDBF9FBFFFFFFFFFFFFDFFFB000EFFFFFFFFFFBF9CB0C90BC0B00AC09000000000900900000E90A9C0E000ADADAEFFFFFFFFFFFFFFFFFFFFFFFFFFF90000000000B00F0D9E9FBDFFFFB9DDBF9FDF9BDBDF9B9FB9F9F9F9FF9DBDF9F9F9DBFDFBDBFDFFFDFFFFFFFFFFFFFFD0900FFFFFFFFFFFDBCB009A00000C90900000000090000CA0CB000D00A909AD00DADBFFFFFFFFFFFFFFFFFFFFFFFFFFF90000000000C0090ADBF9FFBF9F9FBBD9F9B9FDB9B9F9F99F9F9BDBF9FBF9BF9F9FBD9FBDBF9FBDBFFDFFFFFFFFFFFFFF000CFFFFFFFFFBF0F09A0C90B09A00A000009000A000A90900090A9C00AC0A9E0AEDEFFFFFFFFFFFFFFFFFFFFFFFFFFB900E00000009E0BCBC9F9FDFFBF9DBBDBFDB9BDFDBDB9FF9F9FDBDDBD9FF9DBDBDBFBDBFDFBDFFDBFFFFFFFFFFFFFFF0F000EBFFFFFFFFFF0BC90A00C0009000B000000000000000090A000A9C909C009C9EFFFFFFFFFFFFFFFFFFFFFFFFFFF900090000009009C9FBFFBFBF9F9FBD9F9B9FF9B9BDBDBF9F9F9BDBBDBF9FFBDBDBDBDBDBBFDBBDBFDFFFFFFFFFFFFFF9000ADEFFFFFFFFF9BCA0090E09AC0C9000900009009000B00E0C90D00A0E0A0F0FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000900E09E9EBDF9FDFDFBF9DBB9BDF99BDBDB9B9DF9F9BDBBD9F9F9B9F9F9F9BDBDFDBFDFF9FFFFFFFFFFFFFFE0000DFFFFFFFFFBCBC909E00900090A0000000000000000C909000A0B0D090D0009DEFFFFFFFFFFFFFFFFFFFFFFFFFFFB000C0000009E90BDFBFFBFBFBD9FB9DFDB9FF9FDB9F9F9B9BDBF9FBF9FBFDFBDBF9FDBDB9BDBF9FFFFFFFFFFFFFFFF99000EF9EFFFFFFFBF0B000B00B00A090E900000000000B00A000B000C0A0E0ADACA0FEFFFFFFFFFFFFFFFFFFFFFFFFFFFB000D0000000F0DADF9FDFDFFBF9FB9B9FB9F9B9F9FB9F9F9F99FBDBDBDBF9FBDBF9FBDFF9FDBF9FDFFFFFFFFFFFFFF00000EFDFFFFFFF9F0DA90C00C09000000A90009009000090C0900D09090909009F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000A00000CB0F0FBFFBFBFBDF9F9FBDF9F9BDBFDB99F9F9F9FBDBF9F9DBDBDBFD9FBDBF9F9FFDFFFFFFFFFFFFFFFF0B000CFBEFFFFFFBEFB00CA90B00AC9A900000000000A000009A000A0A0E00E0E9E0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000090000000DBFDF9FDFDFFBF9F9DB9BDBDBF99BDFB9B9F9BDBD9FBDBFBDFBDBFF9FF9FFFF9F9FFFFFFFFFFFFFFB9000DBF9EFFFFFFFF90CB090000090000000000000000090B0000F090D090909000FDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000000D0BCFBFFBFBFFBD9F9FBDBDBFBD9FBDB9DF9F9BDBDBBDBFF9DF9FBDBDF9BF9F9FFFFDFFFFFFFFFFFFFC00000EF0DFFFFFBF0FB00A00AD0A00A00A9009000000900C000D0000A00A0E0E9E0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000000090A9CBDF9FFDFBDFBF9F9FBDBD9FBF9F9FBB9F9FDBDBDF9D9BFB9F9FBDBFFDFFFFDBDBFFFFFFFFFFFFFDB900000CBEFFFFFFFF0F9D090000D0900D00000000900000009A000B0D0D0D09000DCEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF009C0000000000FFFFBFFFFBDBF9F9DBDBF9F9F9F9F9F9F9BDBD9BFBFDBDFBFDBFDBDBF9F9FFFFDFFFFFFFFFFFFB000000FF0FFFFFFFF9F0A00CA90A00AC90000000000000009A00090C000A00A00E9EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB900000000009EDBDBFDFFFBDBF9F9FBFBF9BDB9F9F9F9BDBF9E9FF9F9BDBDBDBFDBFFDBFDBF9FDFFFFFFFFFFFFD000000FE9FCFFFFFF9EF0DA900C090090A00B0000000090000009C0B00A90B09E900EDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A0000000009A9FDBFDBDFFF9F9FBD9F9FDBDBDB9F9BDBF9F9FA9F9FF9FBDFBDBFDBFDFBDFFBFFFFFFFFFFFFFB00000C0FEBFFFFFFFFB9B00A09A00AC0009000900000000000D00A0009C0C0C000F09AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9090000000000CBADBFFBDBDFBF9FBF9FB9FBDBF9BDFBD9F9F9DBDB9FF9FBDFBDBBDBF9FBDFFDFFFFFFFFFFFF0900000F0DFEFFFFFFFEDAD09C090009A00000000000000000B009000000B09A0BC00EDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C000000000909DBDBDFBFBDF9F9F9F9FFBDBDBFDB9FBF9DBFBDBDF9FF9DBBDFFDFF9FFDFBDBFFFFFFFFFFF900000000BEFFFFFFFFFB9E9A00A0CB0009CA90000900900000000009ADA000A09C00BCBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000000DA9F0FBDBDB9FBF9FBFDB9F9F9DB9F9F9FBF99F9FBFB9FBFDFB9FB9FF9FBDFFFDFFFFFFFBD00000000FEDBFFFFFFFBDE900090900000000C0000000009000009E0000909C9C00B0CBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9000000000009ADA9DBDBDBFFBDBF9F9BFF9FBFB9F9F9BDBDBF9F9F9DF9F9FBDFBDFF9FFDBF9FFFFFFFFCF00000000D0FFFFFFFFFFFA9AC9AC0A009E9A900A900000000000900900000E0A09A00CBCBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00900B000000009C9ADB9E99E9FDBF9FDB9F9F9FDBF9FDBDBDBDBDBFBDFBF9FBDFBF9F9BFDFF9FDADFFFFB90000000ACFBEFFFFFFBFDF9A00900D000000A900000000000000A000B0009000C0D0B0ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00E000000000000BC90F9FF9DBBD9FBBDFBF9F9B9FB9BDB9F9FBF9DBFBD9F9FBDF9FBFDBF9FFFFFFF0F9000000000CFBCFFFFFFFFFBAC9C9A00A0A900C00000000090090009000C0BC00D0B00A0CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000C900000090900BC90B99FBDFBF9DB9F9BDBDF9DBDBDF9FBD9FBF9DBFBFBDB9F9FDBF9FFE9F9F0F9090000000ADADEFFFFFFFBF0DB0A0C09090C00B000090000000000000A90000B0A00A9C9EAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0090000000000000909AD9CB9CB9D9FBDBDBDBDB9FBDBDB9BFDBFBDDBF9FDBDBFEBFDBD9E9F9F0F090000000000C9EF9FFFFFFFFFFFAC90090AC000B0009A00000000000000900A900090D0C0A09CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90C000000000000000090A9CB9FBAD9FBDADBADBF0F9F9FF99BC9FBBDBF9ADF9BD9DBEBF9E9F0F0F090000000000CBEEFFFFFFFFF9F9BCB0A090A900C0A000000000090009AC000C00C00A090D0EBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0009009000000000900090B0D09DB099B9BD9BD9F9F9F99FFDBF9CFBD9FDBBFDBFB9D90F09CB090000000000000FC9FFFFFFFFFFFBE900C900000A90900090000000000000009000B0A090CA00FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000CA0000000000009009090BDB0BCBC9D0BD0BDB9F0BFB09B90B990B09AD09AD0DA0F09CA0000000000000CCEFBFEFFFFFFFFF9E90E900CA0D0000A000000009000000009000B0009C0A90DA9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000C0000000000000000000000909090AD00BDA9E9F009DBC0F9CBC9CBDB0F00B0900000909000000000000BFBCFFFFFFFFFFFFBE90A0B0900BC090C9A0000000000000000A0000C009C0A0C0FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000900900000000000000900900900A909A90090909F0B00B90B009A000900900009009000000000000000CEFDEFFFFFFFFFFFEDBE9C00000000A000000900000090009A009C009A0A0090CBEFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000000000000000900000900000900009090000000900900000900900000009000000000000000000000FB0FFFFFFFFFFFFBFBC9A090ACB009000A000000000000000000009AC090DA0E9EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000C00000000000000009000009090009000000900090090009090090090090000000000000000000009CEBCFFFFFFFFFFFFFFDE9A90AC9000A0C090900000000000000009A000000000900FEFFFFFFFFFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF009A00000000000000000000000009009009000090000000000000000000000000000000000000000E0FFFFEFFFFFFFFFFFFFBBF0C9000009009A00000000000000000900000900F0ACADA9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A0C0000000000000000009009000000000000000000000000000000000000000000000000000000C0F09CFFFFFFFFFFFFFFFFD0B0A09A0AC0A000A090090000090000A00C9A009009000CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF900900000000000000000000009000000000000000000000000000000000000000000000000000000CEFEFFFFFFFFFFFFFFF9EBC9C0C09009000D0000000000000000009000C0A00C0BCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000ACFFFFFFFFFFFFFFFFFFFFFEBD0A9000000009A0000000000000000090A000090C0B000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC00000000000000000000000000000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFBDBA90A9A00B0AC0000A90000000900000000009A009000CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDAC9000000000000000000000000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFFFFDAD0C009C00900009000000000000000009000000AC90B0CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFFFFBAF0B009A00000B0000000000000000090000000C900A0C0FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFBCD9000000090E000C00900000000000000000E09A00900BCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9A000000000000000000000000000000000000000000000000000000000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFBAE9A9E000A009009A0000000000900000B0090000A0C000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCD00000000000000000000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB0C0090C09000A0000A000009000000000000009C0A90E9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA0B00000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF9AD0B00A0900E000090090000000000009000009000900C9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D9C000000000000000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEDA900000000090000000000000000000000900A000A90A0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A9E090000000000000000000000000000000000000000000000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDB9CA09C900B000AD0A00000000009000000A0000C9000C9C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0090C00000000000000000000000000000000000000000000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB90CA00AC0000000000900000000000090000900A0C0A00FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E90A9A09000000000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFBDADA9000000090000900000000000000000000009009000FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9CAD00D00A90000000000000000000000000000000000000000000CFFFFFFFFFFFFFFFFFFFFFFFBEFFFFFFFFFFBFDAD000090090AC0900000000000000000000090A0000A09E0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDA9009A0A900D0E000000000000C00000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFB0B9000E0000000A0000000000000000009000000D00000D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9E9E0D0C0F0A9009C90000C90CA000C0000000000000000C00DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FC0E9A00000900000900000000090000900000900A00C0A0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA900B0B9A0D0E0F0A0CBCBADA90C90000CBC9000000000CBFDAFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFB9B0000900000900000000000000000000000000000909C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9CAD0C0C0F0B090B0DBE9FDA9BCBEFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFBFFB0DAC09000A000A0000000000000000000000090009000A00E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDA09A9A9A900C9E0C9A0DAB0BC0F9FFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFBFFB09000000900000900000000000000000090000000000009E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DBC00C0DADA9A9A90DA0DEBDB9A9CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFFFFFFFFFFDBDE9E9A090000090000000000000000000000000000090000C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA09ADA9A009C0C90E09EB9E9E9DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFBFEB9A900000000000000000000000000000000000000000090BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC09E0090C0F0A0B0E90F0DEDBF9EBFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFF0FFBFFFFFBFFEFB9E900000000000000000000000000000000000090000000C0CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F0090E9A909C9C900F0FFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFF9FBDBC9E09000090000900000000000000000000000000000000A9ACBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9E0E900DACA9A0ADA9E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCFFFFF9FFFFBFB09A009000000000000000000000000000000000000090000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD09090E9A909C9C900CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF9FFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBDFFEBF9E9E9E9000000000000000000000000000000000000000000000FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDADA0E090C00E0A0ADAF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FEFFBEFFFFFFFFFFFFFFFFFFFBFCFBFFFBFBDFFBF9A900009900000000000000000000000000000000000000DADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB90909ACB0B0909C909CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E90DADFBFFFFFFFFFFFFFFFFFFFDFBCF0FBEDFBE9E9AD00000000000000000000000000000000000000000000000ADFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E0C900C0DACA9E0A9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEB0DADF0FBFFFFFFFFFFFFFFFFEBFBFFFDBBEDBF9F9A9090000000000000000000000000000000000000000000ADAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B09A0ADA9A090009C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9CA9A0F0DEBEFFFFFFFFFFFFBFDFCBFBFFDBBDBE9AD0A00000000000000000000000000000000000000000000D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD00E90D0000D0E0BCAF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDA0A90CBCBEBDFFFFFFFFFFFFFFFBEBFDFADBFCBE9BDA0900000000000000000000000000000000000000000000ADADBFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA9E900A0A9E9A90D090DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9CB009009E9ADBFFFFFFFFF9EDBDAF9FADBBF9E90900000000000000000000000000000000000000000000000BCBDBDEBFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF09A9C09C000CA0ACA0ACDAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9E90DA0BC9ACBEDBEBFBFFDFFBF0F9AFDBFCBCB9E9A90900000000000000000000000000000000000000000090C0BCBFBDBF9FFFBFFDFFFFFFFFFFFFFFFFFFFFFFBFFFFFBDB0F0C0A9A0BCB09C909C9ABFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9FDA9E09C000C909ADBDEFEBFBCF0F0FD9AD0BDB9E9AD000000000000000000000000000000000000000000000009ADAF0DAD0BCB0F9EBF9FBEDFBFFFFFBFFBFFFFFFFFBFBFEBC90B09C0D000C0A00E9ACDEDBFFFBFAFEBFFFEFFFBFFFFFBFDBEDA9E99A90B09ADADADE9FBDFCB0B90F0AF0BF0BCB090A0000000000000000000000000000000000000000000000000909A09ADA9E9E9E0FADBDADAD0F0F0F0F9CBC9E9CBC9090A00E0B0A0F0B0DA90009A9AC9E9CBD99E9ADB0F0F0F0B0F0BCB0F09A0C000C000000A9A0DAB09C0E90BD9AD0FCBC9E90900000000000000000000000000000000000000000000000000090000000000900000A009A09A09AD0A09A00B00BCB0C9C90C09C90C0900CBCA0D09A09A00ACB0F0ACB0F0F0F0F0F0BCB0F0D0B0D0B0D0BC90C9E9C0F0B090E0AD0B0B09B090000000000000000000000000000000000000000000000000000000009009000900900900900000900000900900000000B0A0A9A0A0A9A0ADA0090A0009009000000090000000000000000000A000A000A000A09A00A900000A9090BCBCBC0F0A9000000000000000000000000000000000000000000000000000000000000000000000000009000000900000000900BC009C90C90C90C090009C0090000000900090009009009009009009009009009009009000009009009000E0C09A90B0090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009E0ACB0E9ACA9E0E9E0A90000000000000000000000000000000000000000000000000009000000000090B0BC9E9CB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090009009000900090000000000000000000000000000000000000000000000000000000000000000000090B09A9090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFADFBCFBDEBDFADFBCFBDFBEDBF00000000000000000000010500000000000076AD05FE,'Steven Buchanan graduated from St. Andrews University, Scotland, with a BSC degree in 1976. Upon joining the company as a sales representative in 1992, he spent 6 months in an orientation program at the Seattle office and then returned to his permanent post in London. He was promoted to sales manager in March 1993. Mr. Buchanan has completed the courses "Successful Telemarketing" and "International Sales Management." He is fluent in French.',2,'http://accweb/emmployees/buchanan.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(6,'Suyama','Michael','Sales Representative','Mr.','07/02/1963','10/17/1993','Coventry House +Miner Rd.','London',NULL,'EC2 7JR','UK','(71) 555-7773','428',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D16540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF9A9FBCBFFD0000000000000C0BCF9BDF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FCF0EFDE9A00000000000000BCB0FCA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A9A9F9EBFC0000000000000AD0BCF0BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0DACBE9F0A000000000000090BCB0BCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0F0DA0FD000000000000000ADADE90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC909A9F0A000000000000000000B0EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A0C0000000000000000000BCBC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0DA9E9000000000000000000009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF900B0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000BEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000009AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000A0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000A0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000BF9ED0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000900A0A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF090FFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000B0E909000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000009A0A00000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90090F0DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000A0BC0900B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBC009090000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000090A9A0A00000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE909A0DA9B0900DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000009A090000009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF090B09909009A90BCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0000000000000BE9A000000009A9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD09A09090A9090909009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0090000000000A009E9E000000000AA90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00909D09A9909A090090009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA0F0A000B000000090A09A9A9000000009AF0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09A9A09A900090900B00B0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000F009A0000000000000ACB0A00A00009AD0A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0B0D09900909A00009009090900BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000900F00A000000000000090B0E9E900009A0BA90B0ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9090909B0090B00900B0090900A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0A9A0A0F0000000000000000A009A9A0A000009F0BC090900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90B090B000B0009009009000A09909009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB0B000000F09A000000000000000000090CB000A0ADABA0A00009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0909A90990090000000009A09000909009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0B0A0FA9A90F0A0900000000A90000A00A00B0000090A0C9ADA9A000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0909F0909A0090A909A090000900B000A9000FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A090F0B00E00AF090E0000000000A00000000B0000000A909A0000000A9C9FFFFFFFFFFFFFFFFFFFFFFFFFFFF0909A090B0D0B0090900900B0900900B9900B09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A90BCAA9E9A09A0F00B0B0A900000000090000000A00000000A0B0B000BCBAA90FFFFFFFFFFFFFFFFFFFFFFFFF009F099A909A90BC00A09A90C9A9AC90000090900BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA090AC0B0DA0ADA000F0A0DAF9EBCB00000000000000900000000090E09A0090DA00009FFFFFFFFFFFFFFFFFFFFF09B09B099E909AC09A900000B000909A9C90B09CB090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE90DA009A00A00F0A9AF0F000A90F0B00000000A00000000A0000000B0A9A0000ABA900900FBFFFFFFFFFFFFFFFFFF09B09B09AD09E09000000B00900B0A9A90B0909A909090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A9A0A000A0DADAB0ADAC0AF0009AFAF0A00000000000000A09000009A00F00A00B0D00A00A9B0FFFFFFFFFFFFFFFFFF0B0DB0DA9B0B0900B009000900900D09CA9A900090B0DA9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A90CB090090A00000F0A0B0F00000090F0A00000000A00009A00000000BB0B00900A0BC00000F0B00BFFFFFFFFFFFFF0999A99A9DAD00A90090A090A00A09A0B090DA9B9A90B90909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF009A9EBBF00000ADABADA00B00AF00A09A00009A0000A900900000B00000A00DACB00009A0B0A09A0F0B0000FFFFFFFFFFE9BE99AF9A909A90090A09000900900900B0B09E099090B0B90BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A000B0F0FFA00A000C0A9A0CAD0F0900000B00000000000000000BCA9A009AFA900000000BA90900BA000000BFFFFFFFFF9BC90BD9ADA9A900B009000B000900900909C9A9BCA9F09909B09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00A9000A9FBFFF0009CA9ABC0CBA9A0F0A0000000B0090A000A00A00B0A90090A9090A00A000B9E9A00E900000B0F0FFFFFFFA9F9BBF0B09090DA900900090009A09A9ADA90B090B9B099A9F09BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000000ADFFFFF00000A90E00AB0000AF00000000000A00090009000000BCA0A00A0A000900FADA9E0A090A9000090BFFFFFFFDB0BC90BCB9E9A909B90B0B0909009009090B00B0F09E9AD909B0909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000A90000009AFFFFFF00000A000B00A9EB0F0000000000000000A00000000B0B9000B09000A0A90BADA909A0BCA00000B0BFFFFFFBF9FBAD9B0B909A9C0B0909A09A9CB9A90B09B0D90B09B9A9B09B9B90FFFFFFFFFFFFFFFFFFFFFFFFFD0000A000000A0009BFFFFF000A9CA9A0F0E00CAF00B0000000000000000A000000BCA00900A000909EBDBA9A0009A09000A000FFFFFF9F9A90DB0F09A9F9AB99A9B0D9A90B09D0B09AD9A0BC9ADADBC9AD09A9BDFFFFFFFFFFFFFFFFFFFFF000A0090000A090000AFFFFFF00090A90CA009ABA9F0000000A000000A0000000000BDA9000AB0B00A0A90A0000000A09A00000B0BFFFFFBCBF9FB0B09F9A9AD99E9F090B0DB09A0B0FA99A9B90B9099A9B99BE999AFFFFFFFFFFFFFFFFFFF0000090000900000000BDFFFFF0000AC0A0A90A0E0C0F00A9A0000900000009A0900000A00A0B000000000A9000000A90F0000000009FFFF9FB90B09F99B09DB9BEB99ADBB09B09BDB9999DA90DA99EB0F9F0B099B0F90FFFFFFFFFFFFFFFFF0000A000A000A00000000BFFFFFE0000B0CB00E9A90BAF09009A090A00A09A000A0A000B0B0000BFA9A0B090009A00000A0BCA090A000FFFFE9EBD0B09AD0BA9AD99EB9B90DB09F09A9AFA9A9B9A9E090B0B9F0F099B9B9BFFFFFFFFFFFFFFFE0009000000A0090A00A000BFFFFFA0000B00F0000A000F000A0A9AE90B00009A0900000000000B0A9A9A00A0A000009009FA900000009FFFF9B99ABDB09A99DB9A9A99E9AB0BDA9BBDBD99BBD0B909B9F090A9B9B9E9ADA99FFFFFFFFFFFFFF000A000A00900000000090FFFFFF9009A00A00AB0E09E0F0A09090A90A009A000000009000000B0F9B0F00F0900000000FAA90A9A09000FFFCB0FAD900F99B0A909099A99D9990B9D0BB0BBC90BDA9B090B9F9BDADA90B9B9EBFFFFFFFFFFFF0A900000900000A00000000BFFFFFE0000CAD0BC0090A00F0000A0AD0B0B0A0FA00A0000A00A000B0BEB0BB0CA000000A9AD9A00000A000BFFBDB990B9B0A9C9909A9B0D0B0ADA9DA9BC9BC9B0B00900F0BC9A90B9B9B9DBDBBDBFFFFFFFFFFF000A09A0000A0000090A00ADFFFFF9000A90A0A0FA0A0A0F09A09A9AB0A09A90B0900A000B009000B0B0BCBB0000000000BAF0F0B0000A00F0B0FB0BC0999A9A9E090D0B099099A99A9B90B09F9B9B99099B09F90F0BCB09AD9B9BFFFFFFFFFFC0000000A00000000A00009ABFFFFF00000B009000F0C90F0A0000000F0BADABCBAF000F9ADA00A009A9AB0FA00000A00BDF090000B0900B9F9F90F9B9A9E9B0999A909090A9009099090B99A909E9A9B0B0B09AF09F9F9B9BBCBDBFFFFFFFF00A90A00900090000000090ADFFFFFE0000E0A0E0B00A0A0FA9CB00B0B09A90BCB9E909B9ADA9A090BAB0F0F090000090BEBA00A09A00A0B0F9A9AB9090DA9909B0A90B009090099A9E99B09E9A9B90DB09DB9DB999BB0B0BCBDB9B0FFFFFFFC9A00E90A000A00A0B000A000BFFFFF0000B00C09A0CA900AF9AB0B00B0BADAF0B0F0FAACAFB0A90A0090B0B9A090A000ADBC9A09A009A9BDB0F9F9CB0A9A9B0BD09990909A009A00909B0DB99B9C9A9B09A900B0F0BC9DBD9B9B9FBDBFFFFFF0A9A90A0000000000000900A9FFFFFFF0000A0B0A00A00E90F09ADADA0C90B0BB00A9090B9ADBDABCB0AB0B0A9E0009A00A9A00000B0000EBDB9A9B9990909090B9ADA909090009090909B09A90B9B0909A9B99B99B0B0B0BE9E9F0BB9BFFFFFAC0CA09E9A000000000A000000FFFFDA0000D00ACB09A00A0F00A9A009A0ADBC00000A0000F0A000B0A90B0ADA9ABDA0090009000000A0F9FBCBDB0BE9BCB0F9B9099090A00090000A90909BD9BDA9DB0F90DA90FA9F9BDB99BB9BBDF0FFFFF00B0B0F000000000B000000000BFFFFFF000A0A0090E009A00F009009A0009A00B0A9000A0B0A90BB09B0A0090B0BDA0D0A00A0A00B0090B0B0B9A9F99009099AD0B9A9A909090009090B09B09A9A99A099A9A9DB999B0B09EBC9DBDBB9BFFFE0F0A0A0A00009000000000000BFFFFFF0009009CB0A000A09EF000A00000000B00000A09000000A0CBA00900A00BFADBA00009E9B00A0A9FBDBDBDB0B0B9A9A999B9C9090909A909A0090B0DB99B9B099A90999A90BE9DBDB99BAB0B9FADFFF000AD0D090A000A0000B0009A00FFFFFFA000E0A00E00B0C0A0F0000000900B00A0B0F9A00000000B00DBA0B000009BE9F0B0B09EBF0900B9CB9A9A9BD90909DAB0DBB9BDB9F9DB99D9B090B09E9CBDB0F0BDA9A9B999BA9A9E9D9F9FB99BFFDB0B0A0A000000000000000A00009FFFFDF0000B0A90B0CA9A9AF0000000000000090FBADA00A00000BBA09A00000A0F9A0A000BFBDFA00BDBB9F9F9F0B0F0B0B9DB909ADB9E9B09F0B999B99B99B99A9B990909D90F0B09BDB9A9A9A9BEBFFFE00CBCB00A0900000A0000000009AFFFFFA00000C0AACA0000C0F0009A00A0000090BBADB0B000009AD009A0000B0DB0000900BFFFFADA9F0F0DA9B9A99909C990B9ADBDB9F9BDBF9B9E9F9CB90B09A9909A9A99A9B9BD9F9A909BDBDBDB9FFF00AB0A0000000A00900A0000000AFFFFFE0000B0A9E90090A0BAF000000000B000A0ADBEFBC0900A00BAFA900000A00A00000BDBFFFDA9A9B9BB9BCBDABA909A9F0B9B99BDB9F9F9F9F9B0B9C9BDB9DA9F09090B9ADA9A9A99BDB09A9A9FBFF09AD0E90F0BCA900000009A000009BFFFFFD0000D0A00A0AC9AC0F000000900000000B0BB9ABA0000000900A0B0009A09000000ADBFFFFDBDA9CBDB9B99D00B09099C90F9F0F9B999BDBDBDBB9B0B0BB9A9B0B0F099B9F9B9F0B09F09F9B9BFFAC0A9AE00A0BCACA0A0B00000A00ADFFFFFA0000A9CB09A00A0B0F0000000000000900B0DAF09A0090B0A0900000B0000000000BFFFFBFA9B9B9B0BDABB0B909A0B0B9F9B09990090099BDB9D9F99F909D909C909B0B9B9E90BD9B09B09E9FF090B0E909ADBCA9090000CB0A09000BFFFFFD00A00AA00E09A0000F000A900A0000000B0BAB9FA000000000A000000000000000BDFFFFEF9F0F0F0BDA9D090000090909090990BC9A090009BDBB09B0B9B0A9A9A9B0F9E90B9B90B09B0DB9BE0ACA0E9A0E0A0A90A00000A0000000BEFFFFA00009E90CB00E00FABF0000000009000A90A90FB0FB000000900000B000000A00000BFFFFBDA9B9B9B9B99A9A900900000090C0A90B990F0B9090D9F9D90D0990909A9B9B9FB99C9B9BC9B0BCB90009A9E0B09AD0A0CA09A0900B00A09FFFFFF0000A00BA00B09A000F000000000A00000B0A90FBF0FA000A0000000A9A0000900000DBFFDBDA9E9ADB0FB90DA9A000000009B90F90E9A9BCB909099A9A9B0A90B099CB9A99BEB9A9C9B0999BCB0B00CA9E0AC0A9C9000000A00000000BFFFFFF0009A0CA9E0AE0BE0F0090A0900000090A9A0BBCBF00900000000B0000090000000BFFFFFB9BDB9DB0B909A909090000000000B00B909099BE90B00909009000090A99F9BAD99F9B9B09F0B0B9A0CB0BCB0D0B00A0A0000000000000ADFFFFF0000ACB09A0B09A00BF000000009000A0A9090BCBF0B00000000B000900000000009FFFFF09E9A9AB0BD0B0909000090B09A909099000090BC90B09000009009090B99B09F99BBA90B0DB090B9C09A0BCBE9AA0DA0909A000000000009FFFFFE0000090EACB0CA0DA0F000000A00009009A0A90B0B00A0A090000090A000A000000A9FFFFFB9BDBD990B9DA9A9A9A9090BC90909009099A90B009000000000000A909ADBB0BB0D99F9B099B9C9B0A9ADADAF9CBADA0E09A0000A00000AFFFFFF000B0AB09AC0A90A0AF000009000A0009A9B0A000DA900900A0000A0000000000009EBFFF9E9A90B0F90B0909C9090B099B9A9A990B909009090A909090000000909A990F90FBA9A909B0BCB9A9B0CBAFBCAFBCBADA9AC009009000009BFFFFFF0000C0A09A90A0090F000B0000900A000A09A9A9A9ACB0AD00B0F0900090000A0009FFFDB9BDBB9B90B9B09A9A90B09F0B9D990BC90F09909099900B00A0009009E90B99BB999BDBBD09B99A9C9A90DADBDACBFCB0FA9A00A00000000FFFFFF00000B0CA000E0BCA0F00000A90A0090A9B9E9C9E09090C90BC0900A00000090000BFFFBA9F0B0D090BD090B0999A90B09E9BB0B9B9B99B09A9F9A9B909000B00B090F9ABC99AF0B090B9F9AD9BADAEBFEBEBF9EB0F0C0000000A00B0FBFFFF00009A00B0F0A900A00F0A0090A009A009A0A90A90B0F0A9A009A0BC090A0A00090A9BFFFDB9BD9B9F90B0BC9B0F09E90B99AD9F9E9F9FBDBBDB0B9D009009009090B90B99B0F99B99BBDB0B9B099ADBCBFDBCFEDFE9AB000A9A090000BFFFFFF00000F00A000A0B09AF009A00900000A0909A90A900090090B0900B00090900A0900AFFFBDA9B09A9A99B9B0990B09BD0A99A9B99B0B9A9DB9BDBA9B0A900900B090B99E99B0B09AD09A9BDB0B0F9ABFCBEFBFBFADAD0F000000A00000FFFFFFF000A0BC0ADA000E00F0000000A909A90ABA0009009A0000000A0B00A0000A090A0BDFFF9A9F0FB999F0909B9A99B090BD0BDB0DA9D00DBA9E909D0099CB0A9A9DA90DA9BA99F9BDBBD9BCB0F9B09FDEBFFBCFDEDADAA0000000000A09BFFFFF000A000A90A09EB00AF00009A090A090A9009A000A000009A0B09009090A0090A909FBF0B9F9B90DAB09B9A9E9CBC9AB90B0909A90A99B0D99B9B0B9B0B099909A909A990D9A9A9A990B0B9B9BC9BFEBFF0FFBEBAF0F09A00A0000900FFFFFF000090FA90A90A000B0F00B00CB0B0B0ADA0B0900900900A099C000000A0090A0000BEFFBDB0B0B9B999BC999B9B9BBD0F90B0B90909A009B0B0BCB90C9090F0B909B99A9B0B9B9F9A9BDB9BDA99B0BFFFFFFEFFDF0B0E000009A00000BFFFFFF0000A000E00E0B0E00FB000B0BCF9ADB0B00A0A009A00900A9B0B00B009000090009BDF9A9F9F9F0BDA9B0F090BC99B9A9F99CB0B0090B09B0D090B9B0B0B0B0F90DA99A990F090BDA9A9F0BDABCB0DBEFFF9FAF0F0B9A09000000A000BFFFFFA0009A0B0B0900B0B0F09A909FBBCB00B09B09090A90B00900000000000A000A000A9FABDB9A9A9B9A9F9B9B9F9BBEBDB9A9A909C0B0C90F09B0B9CB0BDBD99F9A9A9BC99A99BBB90B99B9B9B99B9BAFDBEBFEDBE9ACAC00A00000000BDFFFFF000A0AD0A0A0AC000AF9F09EBE9DA90B00A000B0A90B00B0A90B00B00B0009000A99FB9DB0BDBDB0DB990B09A90BD99ABC90D00B09090B090B0BD0B9F99A9BA909B99099E99A9C90B9DABCBCBCB0DADFBEDFE9BE0BCB09A00000A9000FFFFFF00000D00AC09A9AADA9FA9A0B9BFA90B0F09A90009AD090009000000000000A09000FBCBB9F9B0B9BBDAFB99F99B0BFBD9B9A9A900B00900B0D909F9F9EBDA9DB9B0DA9B09AD99B9F90B99B9B9B99B0B0FFBCBFE9F0ADA0000900000B0BFFFFFF0000A0B0B0E0090A00FBE9B0F9ADA00B0B00A09009A9A9000B09A90B00B0000A00B9FBDA9ADB9F0DB999BFA9A9C990BBD0900909009A90909A9B0BB0B9B9FA90B09A909B99A9A9A9BB0F0BDBA9F0BD0F0FFBCBDADA9ADA00A0A00A0000FFFFFFB0009AC00B0A0E09A0F0900F0BCB09E0000B00A00909009A900000A000009090090BF9B9F9B9F9BB9FBAD99B99B9A9900B0090A090900A09A90DB9DBDBDB99BBD9B99BD0B09BD9B90DB9B9B0F9A9B0BAFBCFBFAFA9E9A090000900000BFFFFFE000A00B0A009A90AC0F0B0B0B0909A090B000000B0DA090090B0B0909A9A0A0A00BF9B9FB9BE9BF9FAD9BABD0B009D0B900000900A009090090B9FAB9ABA9BC90B09A90BDB9A9AD0BB0B9E9F99F9E9ADBCFAF0F09E9AD0A00000A09A0BFFFFF900000F0AD00E00A0BAF00000000A090A00B009000B09A0B0A900000A000000909ADBBCBB0F99BF0BB9BF9D9BD99B9A9909000009909000090090099DBD9D099BB9BD99B99AD9B99BD9BDB9B9AB0B9B9AFFBDAF9EB0E9A000A9A00000BDFFFFFE0009A00A0AB00AD000F0090009000A0900000A0009AD9909DA909A09A9A0B00A09BDB9F9FBFBDBDBDBDBBB0B9A90990BDB09000A0909A900000900B09B0B9A909D0B0BDA99B0DBA9A9A9BCB9DBDA9E9DAFCBDAF0F9ADADA900009A000ABFFFFF900A0F09000A90A0B0F00A090A09090A000000090A90A0B0A90A0090000900B00BEFBF9B9B9FBFBFBFB0F9F9A9F9A0B9A99A9F999A990000A99BDB09A09099B9B0B9B9A9BE9BB9DB9F9B0B9AB9B9F9B0B9BFAF0F0ADA9A00A00A0000ADFFFFFE000000A0EB0DA09AC0F0900000000000000A09A0A90B09009A009A0A09A00B009F9B09BFBCFBDB9F9F9F9B9BDB90999F9FA9B90BC90B09A990B09099099B0F9E9B9F9F9FB99BD0BB0B9E9BDBDA9F0B0BD0F0BDA9ADABCA0B09A90A9A9BFFFFF9000BCA9A900A00A00AF0009009000A09009000909A09A00B009A0909A09B009A9BBDBF09FB9FBFFBFBFBF9EB90B9B0BFB99D0B9B9B99F99BDBD9B90A9BC9B99B0F9B90B9DBE9BF9DBDB9B9A9B9B9B9F9BB9BCBADA9E9AD00A00000000FFFFFFE000090E00EA90F00B0F00A00000B09000A00B0A9ADA09A00B009A00A9A00B000B0DB9BFB9FBBDB9F9F9F9F9FB9F0D909FFAB9BC9B0FA9B0B0BBF0BD909B09A9B9B9EBDBAB9BF9BB99A9BDB9F0F9E9A9BDBF9BC9ACB0F9ABC9A00A00000FFFFFF0000A90B090E00BC0AF0900900A0000A09000090B09A09A90B0A09B009A90B0BDB9AF9B9FBDFBFFBFBFBFBB9FB9B9A9FB9F9FDBBDB99F9F9FBDBF9A9909BDBDBDBF9BB9F9FB9E9FABDBCB9FB9B0B9F9FADBBDBE9A0F0AD00A09009A09BFFFFFB000A00A0EA090A0A90F00090A9090A9090A90B0B09A09AD0B0B09A00BA9A0009B0BF9B9FBDB9BF9F9F9F9BDF09F0B99BDF9FFBBDBFBFBFBFBDFB9909A9B9B9B0BB9FBDF9FB9F9BBD9BB9B0B09F9BDA9B9B9F9A9ADB0ADA0A000A0000AFFFFFFC0009CBCB009AACB00AF0B0A9909A900000000090A09A09AB0B09A09B0D00B0BF9F9BDAF9FBBFDBFBFBFBFFBBFBBDBCB9BBFBBDFBF9F9F9F9FB9FF0B99BDBCBF9F9F9FBBBDBFBDBDBBC9F9F9FB0B0B9F9F9F9FBDA0E9FA90090000A090FFFFFFB000A0A00B0E09A0AD0F9099EBB09A9B9A90090A9DA09A090B0B09A00A0B00909B9FBBDBB9F9BF9FBDBDB9BFDBDBB9B9E9FFDFBF9FBFFBFFB9FB9090BDA9BBDBBBFBFBDFBF9FBFBBDBB9AB9B9B9F9A9B90B9A9B0F9A09EAD0A0A0900A09FFFFFF00009A9E0B0A09E0AAF0B9A9B0BF9000000A0A90A90A90A9CB0B09A90909A0BF0F9F9BDBEBFB9FBDBFBFFF9BFBDBF9F9B9BFBDBFF9FBFBDFF9DB9B99B9F9FBDBDBDBDBBF9FBDBDFADBF9DBE9F9B9DBCBBBDBDBF0ADAF09A00090A0900BFFFFFC000A0CA0BCADA00B00F90B9B9BB0BA9B0909090A9B090A9AB09A9A900A0A09F99BB9FFBF99F9FBDBBDBDB9FFD9FADBBFBFDFFBFDBFFDFDBB9AB9E9DABFBFBDBFBFBFFBDFBF9FBFB9B9B9BB9B0BCBAB9BD09B9B9E90B0DA0090A00000BFFFFFFA0009CB0F0A9A9EB0CBFA9AFBBCBB09000A000A0900A0909099A9A90B09090A9B9F0F9BDBBFBF9BF9FBFBFF9BBFB9BBDBDBB9FDBFFBFBFBF9FBDB9BBDF9B9FBF9F9FBDBF9FFBF9BDBDBDBE9F9F9B990F9BBBDAF9BCADAA900A00090A09FFFFFFD000A0A00BCACA0CBA0F9090B9B90B0B0900B090A9090A0B0AA9A9A90B0B090BDA9FBFBFDBF9FBDBF9A9B9BFDB9FF9FBCBDFBFBFFBDFFBF9FBDBFBDBB9FFBF9FBFF9FBFBFB9FBFBBDBA9B9B9A9B0BF9B09DA99BCBB0BD0E900000A0000AFFFFFE00009CBCA9A90B009AF0A9A90B0B0000A09000090B0A900B999A9E9B0B00A9F09FB9F9BBF9BBDBB0F9F9E9BB9FB9FF9BFBBDBFDBFFBDBDBF9BF9FBDBFB9F9BF9FBFBDBDBDFBDBDFBDBF9F9F9F9F90BDB0B9FBDB9CACAF00000B00000B9FFFFFB0000A0A09E0AC0AF00F09000A00000000000000A000900B90AA9B0BA9B0B9B9B9B9FBF9F9BFDBB9DB9B099B0FB9FB9BF9BDBFBFFBFFFFBF9BFDBBDBFBDBFBF9FBBDBFFFBF9BF9BB9BF9B0BB9B9A9BDB099FB0B99AB9B00A0000000900FFFFFF0009AD00DA0090A900FFA0900090000000900009009A00B00B99A9BB9EB9A0F90FBFBDBBFBDBBBDAB9A9B9AD9A9EBDAF9FBFBDFBFDBF9BDBBDBBDFB0BDBDB9FFBDFBDB9BDBBDBBFDBF9BFBD9BCB9A9B9F0B9BD90F90E0F0090000000A9FFFFFFC00000B0A09E0B0E0A0F9A0A90000000900090A09B09A90B00A90B0BA90B9B0B909FBBFDBFBFCBBDB9F0DB9A9999B9F9B9D0FBBDBFFFFFBDBFDBB9FBDBBBFB9FBBDBFFFBBDFBDBBBDBF99BBE9B9F9E9A9F9FBBB90BDB0A00A000000000BFFFFFBA000AC09A00AC09A90FA9900000B00A000A0090A00B00B0B09AB9BB9BA00BDB9BFBDF9BF9F9BF9B9A99B0990F0B0B9BDBBB9F9FFBF9B9FBF9BF9FB9B9F9BDA9F9B9B9BDFBBDBDF9BF9EBD9BBDA99B9FB9A99C99B9A0F0F000000B0009FFFFFFC000A9A9E09A90B00CAF90A00B0B009000090B0B09B00B0009ABDBE9A099B099CBF9FBBF9FBBD9F0F99B099A9090D9BE9A99FBFFBDFBFFBF9AF9EB9F9F0BCB9B9ADBDAFB9BDBBB9BF9BB9BFBD9B9BE9B909009BE9A9F0B00000B000A9AFFFFFF00090C0A09AC0A0E0B0FA09A00009A000B0A00B09A00B0A9A009A9BADBA00B09B9BFBFDBE9BDBBB9B0B09E909A90B099F9FB9F9BFBF9B9F9FB9B9F9BA9B9B9BCB9A9B9BDBFBDBDBF9BF9FB99AB9E99F9FB09B099F9A0F00A9A000A90A9FFFFFFA000A9E90E09AD0B000F9A0900B009A00000B00B0BBA09000B0A9A9B00B0BD909F9F9BF9BFBBDADBDBDB90B0909090B0B90BDBFF9FBFFB9B9DBF9BD9B0D909B9BDB9F9FB9BDBFBDBFDBB9FBF9F9BB0BB09F099A99F9B0F0000B0B0EB0A9FFFFDF0000A0A90AA0A00BE0F0900A90B0009009000B0B0090A0B0009ADA0B0090B09ABFBFF9F9909A9B0B0000909A90B09090B99BB9BFBDB9FADBB0B9A9AD9B0BD090B9AB9BDBFBBDBBF9BF9F9B9B9BDBDBC9B090009A90F0B0B0000ADB0DBFFFFFFA00009E9E0D09CBC00BF00A090A90B00A0000B0009A0A90000B0A9A90A9AB0909F9BF9AB9A090909009A900000000B09B9FAD9FF9FFBF99BB9DB0DB90B0900B9F09BDAFBDBFDBBFDBF9BBE9BFBCB0B99B090A999F9B0B0E00A0A9A0FAFFFFFFF000B0EB0B0A0AB0A0B0F9009A99E009090A00009A09000000000900A9000D9009BFDBFBDB9F000000000A00000090000D099BA9BFB9F9BF9DAB0B9009090B9909BDB9B9BBDBBFDBBBDBF9BF909B9B0F00B00900B9BCBCA9000900DBE90FFFFFFC00009EBCB0BC0A9AC0FA9000A909A00000000A09A00000000000B00A9A9AB09A0BF9BDB090B00000009000000000009A9A99F9F9FFBF9BA99D90B9A900000A909B0BDBCBBDBBBDFBBF9F9BFBFB9F9B9009009009B9A9E0A9000A00BEBBFFFFFB000AD9EB0E0B0CA0B0F000A9CA9A09A900090000000000000000000000090909DB9FFF0FB9090000000000000000000990DA9BBFB9B9BC9B0B0000009A90909A90F9BB9BDBFDFBBDBDBBFDB9B0F09F090009099F9A9E9A00A0000B000FFFFFFC0009AE0BE9A0A90F0AF00090A90090000000000000000000000000B000000000BBFFB9B9909A900000000000000000B009B9BBDB9F0F09B0B9000090000000000B9B0DBFBF9BBBDBFBBF9B9F9F9BB000009090B09F0BC00000000009BFFFFFB000A0E9BC000F00A000F09A0000000A000000000000000000000A90000B0000009EB9F0FADB90B0909A00000000000909B090D9ADB9B9B09D0090000B0000000900009A9909BF9FB9F9F9BE9BB0B0DB90090B0999A9E0B0B00000000A0FFFFFF00009A0A0A9A0AC9ADAF0000A90A9009A00000000000000000000000B0000000099DBFB9BB0F90B0B090D99A90900900009A9A9B9AD09DB0B90A000000000000000000000B090B9EBBFBF9BF9BDB9B09B9A90B0F990BDAC000009A0009BFFFFFF0000D0CB000900A000F0090000000000090000000000000000000A00000000000FB9BDBD0B9A999090B000900A09A090909990D099B0B09009090000000000000000009A99B9FB9F9BDBBDBBCB9A9FBC99F999B09B0A90A0000000000FFFFFF000A0A0A00E0A0A00A0F000090A00A00000000000000000000000090000000000BB9E9FA9BF09DA09A909A90090900909A9AD0B9B9A0909009090090000000000000090099ADBB9BFBDBBDBBDB9ADB099B090FB099E0BCB0000000000BFFFFFE000900B00B00CA9CB09F000A000090000000000000000000000000000000000000DBBF99F09B0B9B0DA90900B00009000909A9900099B09A9A9A9009090909A9A9A9909B0B90BCBDB9BDBBF9A9E90B9A90B9B9090B9E9AC90A0000000BFFFFFDA000E00AC00B000A0A0F0A90009000090000000000000000000000000000000009AD9FA90B0DB0D0B090B099090B00B0909090B9BDA9090909090B00A9A9A9D09090CB09D0B9B9BBFFBBCB9BDB9B90BDB090FB0090B0E9A00000000000BFFFFFD0000BC0B0A0B0B0C9AF00000A00000000000000000000000000000000000000009BB090009A9B0B90B090A000909009A9B09B090909A90090009090909C90B9A9A9B09A9B9E9BC9B9ADBDBF9AD0AD0909AD900999E9A9CB0000A0000BDFFFFFA00B00A90AD0E00A9A0F00009000A0000000000000000000000000000000000000BE9F0000000000000000090B009A900909BC90B9B9C9A90A90B00909A9A900909909B9B0B9BDBBFBDBBBB09B0B990B9099B0909A9A9EA000B000A90FFFFFF000000F0ACB0A09ADA0FF090A0000900000000000000000000000000A000000000099B9F00000000000000000009A090B9CB09B9F909A909009090090B0909A9B0F0B9AD0BD9F0BF9BDB9DBDBE9900A90A9B00000B9ADA09A000009000BFFFFFF0000A09A9A0B0A0A0B0F00000090000A09000000000000000000000900000000000F9B0B000000000000000000090B90B99B09A9BD09B0B090A090A909A909A99990B9B99AB9F9BE9BFBA9B99A9A9009009900099E90FBC09A00A00B00BFFFFFF0009ACB0F9CBCB0F0BF000900A00009000000000000000000000000000000000009ADBD00000000000000000000BD0B90BCB9B90B9B090D0B0900900909E990B0BF9E9AD99A9BF9FB9BDBDA00000000000A099DA00A00B0000900000BFFFFFE0009E0B0E0A0A00E0ACF000009009000000000000000000000000900000000000009B9A9A000000000000000009090B9EB9B9D09F9BCB09A90900B00B0A909CB9F0909A909ADBD9BBDADB9A90000000000009B0B00BCBF0A00000B00BDFFFFFB00000B0F9A9E90B0B0BF090A000000000000000000009000000000A00000000000000F9F9C000000000000900A0F9B0B99F9AB9A9A999F90B00B00900090B0B0B0B0B090B09B9ABF9B9B9B900000000000000090000B00D009A000000BFFFFFF000A9E00ACA00AC0AC0F0A090A90A9A90A900000009000000000000000000000000009A9AB90900000000A009909AD9EB9AD9BDB9DB0B0B90900000000000090090000000009F9F9E9BCBCB00000000000000000090AFA0B0000000000FFFFFCB00009E9A90AD0A90B0F009000000000000000900000000000000000000000000000099F99ADA9A9F0F0B99B0F9B9BB99F9BBDA9B9A9F99E9A9000000000000000000000009A9B9BB9F9B90000000000000000009A0D09E000000B000BFFFFFF0000A0A00A0CA00E00AF00A0090090009000000000000000000000000000000000009A9A9E9B9F9F0B99BDAFDB9ADA9DBA9BC9B9E9BDB0B909000000000000000000000009FBDBCBDBB090000000000000000000AC9ABE0000000000BCFFFFFA0000090CBC0B09A00BCF0900000A009A090090A00000A900A009009000000000000009F9B9BDA9E9BDAF9BF9A9FB9DBAD9F9BBDB9F9B9F0B9F0990000000000000000909A9A9B9B9B0D9A000000000000000000009AD00B0000000000BFFFFFF000B0E9A0A00A0CB00AF00090A900A000A00000900000000090000A0000000000000009ADA9BDBBF9BDBE9BF9F9FBBDBB9BF9BADB9F0B9BDA9BA9A900900900000000009DBDBCBF9F9A9000000000000000000000A0ABC0B0000000000FFFFFDB00000A009AC0A00E90F00A000000909A900A00000900000900A00000000000000000A99B9B0B9DABFB9FBF9BFB0F9F9F0F9BDFBBCBBDBDB9F0DB9F0B00000090000B9FAB9B9B99A9A900000000000000000000009E9CB000000A0000BFFFFFE0000F00DA009A00A00AF0000A90A00A0000009000A0090B000090090000000000000090BC9E9F0BBDB9F9BDAFB9F9FA9BF9BCBB9DBBDB0B9FB9BBCB9D09ADA90009B9EB99E9F9BE99000000000000000000000009A00B0E0000000009FFFFFFB000A000A0C0A0DA90E0F090900909000909000A090000009A00000A00000000000000090B9909BD9BDABF9BF9DBFB9FBF9FBB9FBBF9BF9FB09FADBDABBF9B90FBDB0F99FB9B9E990000000000000000000000000ADA9E09A000000000BFFFFFC00090E90A9A0A00A09AF00A00A0000BCA0A000000090A00009A0900000000000000009A90B0B09A90B9DAF9BBBDBDB9B9F0F9B9CB9E9BBDBBF9BB9BDBD9FBFB9B0F9BFB0BDAB9B0B000000000000000000000000000A9AC00000000000FFFFFFB000A00E00C90AC0A00F0009000A000090909000A000900000000000000000000000000000090B09F9FB9BF9F0B9ABDBDBB9BDBB9F9BDBA9F9BD9FBF9AFBCBDAF9BBDB0F9B9F9E900000000000000000000000000BAD0F0B000000000BFFFFFE000009A09A0A090B0CAF090000900B0B0A00A0B0900A00A90000000000000000000000000000009B0B09BDB0B9FB9DB0BB99E9ADBBBDBB9F9BDBFA99BFBDBDBF9FBDA9F9BCB9A900000000000000000000000000F0C0B0A00000000A9FFFFFF9000BCA00A0000CA00B0F0A0A0A000000909000000B090000A0000A0000000000000000000000000099BF9ADBDB9C9A9B09CB99B99C9A9DB9FBA9BDBFB9DBBBB9BA9BF9B9B99F90900000000000000000000000000B0B0E9000A000000BFFFFFE0000900BCACA9A0E00AF00909009A9ADA000900000000900000000000000000000000000000000000090B9B9A9A99909F9B0B09A9B99BADB0DBF9B9BFBBDBD9F9DB9BDBCBB0B9A00000000000000000000000000A0F0B0AC0000000000FFFFFF900A0AC000900090BC0F00000A90000009A0A09A9A9A0A0090009000000000000000000000000000009FBCB09090A0B090099F99B0BC99B9BB9B9FBC9DAB9AB9BBBCBB9B9DBDA90000000000000000000000000B0F00AD0B000000000FFFFFFE000009A0B0A0E0A000AF00B0A90000B0B009090000C0909A00A00000000000000000000009A0000009A909000000090909BDA90B0D9B9BADBDB0FB9BBBB9FBDAF9DBBDADBA9A9000000000000000000000000000F00BDAA000000000B9FFFFF9000BCA00CA009AC00A9F0009000A900009A000A00A9A0A0000000000000000000000000000090900009B000000000000B09099BD9AB9AD9B0BDBBCBF9F9FB9BB9ABF9B9B9DB9000000000000000000000000000B0B00A9C0000000000FFFFFFE0000000B00DA00B0BCAF900A9E000A9AC090B09090090DA900000A00000000000000000000000A90000000000000009009A9A90B99BDBB9FB9BDB9B9F9B9F9F9F9B9E9F9AB0F9B0000000000000000000000000CA0F0CA9A000000000AFFFFFF000A9AC0A000A000000F0090009000009A0000A000A0A000A0900900000000000000000000009009A900000009000000090990B0BCB09CB99E9B9FBDABDA9A9B9BDB9B0BD990000000000000000000000000000B0F09A9E00000000009FFFFFB0000C09A09A0D0E0A9AF0A00B00A9009A00B0B09A90909A09000000000000000000000000090A090000000000000000900B9CB999909BB90B9B0F90B9DBB9FBF0FB9BDB9A9A900000000000000000000000000BCB0AA9E09A0000000BFFFFFFC00B0B0A0E00A0A090E0F0090000009A0000000000000A09C0A0000B000000000000000000000090B000000000000000A009A990F0B9F909BDBDB9BBDBBBDB9B9BB0F9AD0909A000000000000000000000000000BCB0DA9AC90000A000FFFFFFA00000C009E00090A000F90A00A90A00B0BC9A9E909A900A90009A0000000000000000000000000900000000A0009A00900090A99B0B0BDB0B0BDADBBDB0BFBCBDB9BB9A9A0090000000000000000000000000000BCA09E9A00B0009A9BFFFFFF000A0B0A00BCAA0CB0AF00909000090C000000000A00E900A9000000000000000000000000000900090909A9000090000090B99A9D9B9A9F9B9B9B9CB9F999B9B9F9CB9090000000000000000000000000000000E9BCA9E9EB0E9AC00FFFFFFF0009CAC9AF0A9CB0AC9F0A00A0B09A00B00B0B0B009090A0900009A00000000000000000000090A00A0000000000000000A90DA9A9A9E9B9BCB9FBDBBF9BBEB9E9B0B90B0000000000000000000000000000000B9ACA9E9A9CA90F0BFFFFFFF00000A9BEF0AFCBE9E9AF09AC00C000B00900000090A0A090000B000000000000000000000000009009000009090000000909B099DB99BD9E9BDBA9BF99AD9BDB9E9B9AD909000000000000000000000000000000E9A9E9E9EBDAF0BCBFFFFFFF00ADAECB0FDABE9E9AFF000B09A09009A0B09E90009090A90A00000B00000000000000000000000090B090B09E900900000099A9A9E90BB9B9AD9F0BF9FBF9BF9BE9D9A9A000000000000000000000000000000B0F00A9ADACBCBCA9CBFFFFDA000099EFFAFDADAFEDAF09000009A0909000A00A9000000009000B0000000000000000000000000000000090B09A00000009A090909B990BCB9BB9BDBB9B9AD9B99B0B9090000000000000000000000000000000F0BCBCBE9FADA9FAFFFFFFFF0000AE9F0F9EFBF0BFFF0A0A9A9009A0E0A900900A00A9CA0009000C000000000000000000000000090009A000900000000009A09A9ADAF99BDBCBDBE9F0BF9BADB090000000000000000000000000000000000BCBCB0AF9FADAFFE9FFFFFFF000B0F9FAFFAF0FCBFE0F909C000B0009090C0A0A00090A09C00A00B00000000000000000000000000000009090A90000000000900909999ADB0B99BF9B9F99A990090A9000000000000000000000000000000000B0A0BDAF0FBF9E9F0FFFFFFE0000EBCF0FDFFBFEDBFF0B0B0F009A00B00B00C09000000A090000000000000000000000000000000000000009000000000000000000A099A9DB0B0BDA9ABD9E9B0A900000000000000000000000000000000000CBDACB9EBCF0FBEBFFFFFFFB000B0FBFFBEBCF0FADFF0000000B009000000B000A0009000A00900B000000000000000000000000000000000000000000000000000090A090B0F9F9B9D990B90909000000000000000000000000000000000000BA09A0CBCBAFBCF0FBFFFFFC0000BCFEBCFFFBFFFFAF00B00B00000000B0000B00900A0090000A0000000000000000000000000000000000000000000000000000000009A0909A900B09A900A000000000000000000000000000000000000009E09E0FBE9ADE9E9ADFFFFFF000A9EBF9FFBCBEF0F0FF00090000090A9000B0000000000A0000000000000000000000000000000000000000000000000000000000000000090B090B90B09A909000000000000000000000000000000000000000BCA0B009E9A9EBCBAFFFFFFA000CBCFAF0FFFDBFFFFF900000090A00000000000000909000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0B00CBE0ACBE9E00DBFFFFFD009A0BCDAF0FAFCBE9EF0CB0B09AC900009090BC900A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0CBA09ADADEBCB0AFFFFFFA0000BEBAE9EBDEBE9EBFAB9EDAB09A9B0B0FAF0B0BF90B09A9F0ADAF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F09A00DAF0BFADA00FFFFFFF0000F0CBC9E9FEBF0FADFDFFFBDFFBFCB09FBDBFDFF0FFCB0DADF9FF9F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0A09ABDAFE9FA0A0BFFFFFF00000ABCAEBEF9E0F0FAFBFFFFFBDFBFFFADFFFFBFFFBDBFBFBFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ADADA0C0ADBFEDE90D0FFFFFFF00A9CA90BCBEF9EAF0FFFFFFFFFFFFFFBDBFFFFFFFFFFFDBCFFFFFFFFE000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0B00F0BFAFCBFA0EABFFFFFF00000A9EADAFDAADADAFFFDFFFFFEBFDBDAFFFFFFFFFFFFAFFBFFFFFFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCAC0B00BCFFFFE9FADFFFFFFF0009CBCA9E9FAEDA0FAFFBEBFFBDBDFAF09FBFFFDFFF9F9F9BDFFFFBFBF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B9BC0A9EBDEBE9EADADFFFFFF000A0A0F0BEDE9A9FADFF9BC9F0F0B9F0B00DADAF0FBE9E9A9A9FADFCFDA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E0A090E9EBFCBE9EBEBFFFFFFF0009CA0FCBEBE0E0FAFF00B00A90000900B09A90B0090B0D00B09A9A9A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0F0BACB0BCBADAE9E9FFFFFFF0000A0BCABFCF0F0FADFF00000000A9000000000000000000A9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0B0BC090ADABCEBDA9EFFFFFFCA0090BCAFDEBABCBADFAF0900090000A000900900009A0090909A0900A090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0E09A0BDACE9A0ACABFFFFFFF000ACAFDBEBDEDACFAFFF000B00090000900A00A09A0090A00A00000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F00B0BC9E0A9B0E9E9AD0BFFFFFFF00090AAFDEBAFFAFDAFF0A0000A000900A009000000000000909000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009A9ACBCAA0BCACB0E0ACAFEFFFFFF0000A0FDAFBCF0ADBEFFF090909009000009000000000000900A00A0000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009E0E0B0A90D0B0F0F0BCBF9FFFFFFB000ADBFADFCFBEFFE9E0F0000A00000A0000000900900B000A0909090090900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A09AD0F00A0ACB0A9ACB0EBFFFFFFF00000E0FEAFACBDAFFBFF09A900B0B00900000A0000A00000900A000A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FA09A00BC0B09ADACBACBCA9FFFFFFE009A9F9FDBFBEFDADEBF0000090000000A900000A00000000090909000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B09E00F00A900ACA9AC0B09EFFFFFFE90000EAEFAE0E9EBFEBCF000B000000000000900000000900B0A00A009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0CA09A0A9000E9A9E00B00E9BFFFFF9000ACB9F9ADB9FAFCB9EF00000B0090A00000000900900A000090909A0009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AB09A0C90ACA900CA0B0CA00ADFFFFFF0009A0E0ACACACA9ACA0F0090009A00000090A000000A00000000A9090900A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0DAE0CB0A09000A9090CA009A9AFFFFFEF0009A9E9A9A9ADA9ADAF00A0900000090A00090A0000000900B090000A00000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009A90B00090A00A00ACA090A000FFFFFFF000A0CA0ACACACA0E0A0F0009A0009000000000000A009000A0000A0B090A900A0BC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0EACA0A00E000900B00000AC00ADBFFFF90000CB09E90A9A9E9E0FF0900009A00A00900900909000A00090909000090000009FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009AD00A90000000C00B0000A09FFFFFFE000B0ACA0ADACACA0B00F00B09A000900000A00A000000000000A0090B0000B09A0BFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0F00A0D00A9A00A0A0000A0090A0FFFFFF9A0090BCB0A9A0BCA0FAF000000909009A00009000A09000900090A0000B0000009FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000E9090AF00A00000009009000090000FFFFFFF000CACA0AC0E0F0A9E00F9009A90A0A00009000009000C000A900009A9000900A9ADFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000009A00A0AF00B00BC0A000000A0000A0A9FBFFFF0000A0B09E9A09A0BCA0FFADBE9AD909F9B0F9ADB0E9AB0BBC9ADA9AD0F9B0CBC90FBFFFFFA00000000000000000000000000000000000000000000000000000000000000000000000000A000A009ADAD0BACB00A9090A0A0000A00000FFFFFFF000900EA00B0E9E0ADA0FB0F9FFAFBCBCFDAFDADB9FDFF0FBE9FFF9ABF0F9A9BFADFFFFFFDB00000000000000000000000000000000000000000000000000000000000000000000A0000000ADACA00BAFC9A0E90A0E0090A9A0D0A90A9FFFFFF90A0E90DA0CB0A9E9ADAFFFFFF9FDAFBFBFFDBFBEFFBFDFFDFFF9FEDF0FBE9FE9FBFFFFFF0E0B000000000A000000000000000000000000000000000000000000000000000000A00000009E9A0B0FACB0BE9E9AE9A09A0E90CB0A9CA9FFFFFFE00009A0A0B00E9E0BCADFFFFFFFFBFDFFFFFFFFDFFFFFFBFFFFFFFBFBFFDFBDBFFFFFFFF0FBDE0000000000000000000000000000000000000000000000000000000000A9000000000A0BE0A9CBCBCB0FE9E9AF90F0ADA90EBACBCA9EFFFFFFB0000ACB0F0EA9A0BCA9AF9FBFFFFFBFFFFDBFFFBF9FFFFFFFBFFFFDFFFBF9EFFFDBFFFFFF00A9FAC00000000000000000000000000000000000000000000000000000A9CA0A0090A9C9E90F0FAFADA9EB9EB0F0AE9F0A9EFBCFBEBFEBFFFFFFC000B0BCA0A90E9E0A9E0FFFDFBFFDFFDBFFFFFFFFFFFFFFFFFFFFFBF9FFFF9FBBEFFFFFFFFBCACBA000000000000000000000000000000000000000000000000000000AA900BCA09AA0AEB0BCBCFAFE9EF0FE0F9A0A9E90AFBCF9E9F0FFFFFFFB000CA9E9EA9A0BC0A9AFFBFFFFFBFBFFFFFFFFDFBFFFFFFFFFFFBFFFFFFBFBCF9BFFFFFF0CB0BCF00000000000000000000000000000000000000000000000000000F0DACBCA9EAC9E900F0FBFADA9E9AFA9B0E9E9E0AF9EFBEFFAFFFFFFFFE0000B0CBA9CBCBCBADACFBFFFFFFFFFFFFBFFFFBFFFFFFFFBFFFFFFDFBFFFDBFBFFFFFFF0FB0ACB0AC00000000000000000000000000000000000000000000000000FA0A0B0A9E909AB0EFBEBCE9E9EBEDA9CACB0B0A9F9EDBCBDAFCBFFFFFF9009E0FBEDEBEAE9ADA0BFFDBFFFFF9FBFFFFFFFFFFFFFFFFFFFFFFFBFFFFFBCBDBDFFFFFF00F0B0F0BA000000000000000000000000000000000000000000000000B0BCBE0F9E0BEAD0FB0F0FBBFBEBDFADAA9A0E09CA0ABAFBFADBBFBFFFFFE0000B0E9A9E9BDAE9AF0FFFF9FFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFFFFFBF00F0F0E9CB0000000000000000000000000000000000000000000000BCBCB09E0A9E09ABE0EBCBEDE9E9EA0FADAC9A9A0B0F0CBCBCBEDEFFFFFFFF00A0CB0FAF0ECBDBEDAFFFBFFFBFFBFBFFFFFFFBFFFFFFFFFFFFFFFFBDFBFBDBCFFFFFFFFCBF0F0FBEBCB0C000000000000000000000000000000000000000000BCBE0EBE9E9E9BE9E9FBCAF9AFEBE9FFADA9A00000000BADBEBE9AB0FFFFFFB0000B0F0F0FBBEACBADAFFFFFFFFBDFFFFDFBFFFFFFFFFFFFFFFBFBFFFFDFDABFBFFFFFFF0B0FBEBCF0F0FA900000000000000000000000000000000000000ACBCBCA9BC9A9EB0E0F0FACBFDAFF9F0FAE9EBCBC0B0CA9A9CBE0F0FADFFFFFFFC000B0E0B0E9ACA9FADADFFF9FBDFFFBFBFBFFDFFFFFFFFFDBFFFFFDFFFBFBFFDBDFFFFF9E9EF0FDFBFBFF9EDAD0000000000000000000000000000000000A90B0A9ADACBEDABCBDBEBCBF0FAFDAFAFBDBFADA0B00A900EAFADBCBADABFFFFFFB00009ABCA9ACB9EA9EB0FFFFFFFFBFFDFFFFBFBFFFFFFFFFFFFFFFFFBFFFFFBFBFBFFFFFFA90FAFBCFCBEFBEBEFBE90000A000000000000000000A9009AC0AF0F0EDA9A9A9EDAEADAFBCAF0FAFFCBCAE9EDADA0F00AB09ADFAFBCB0F0FFFFFFF00A0C0A9E0B00E9CB0FAFFFFBFBFDF9FBFFFFFFFFBFFFFBFFFFDBFBFFDFFBFDFF9FFFFFFEDAF9F9EBFBFDADBDF0E9EBE9E9000A000A009A00090AC0AA00B0D0A0B0A9EFCAF0BDBDADADBF9EBDA9FEFBDEBAFADA0AF0CBE9EBDACBEA9FBFFFFFE009CBADA9ACAF0AB0E00FFFFDFFFFAFFFF9FF9FFFFFFFFFFFFBFFDFFFFBDFFBF0FFFFFFF9BADAFEFFCFCBFFEFAFBFDADAF0E9E09009CAC09A0A090A9C9AC00A09E0F0E9ABDAFAEAFADAF0EBDAFFE9BCAF0FC9ADAF09BE9EBCBEB9E9FEFFFFFF9000A0CBCAD0B00F0E90BFFFBFF9FBFBF9FFBFFFFFFFFBDFFFFFFFBFFFFFFFFFFFBBFFFFFE0DAF9F0FBFBEDADBDF0BEFBCBDBE9FADA0A99A09000A900A009A09E00B0B9ADFEBCDBDADADAF9FADBCBFEBDAF0BACB09EAE0BCBFE9FEBEBFFFFFFFE0000FBCB0AACAF0EBCA0FFFFFFFFDFDFFBFFFBFFFFFFFFBFFFFFFFFBFFFFBFDBFDFFFFFFBF09EBFF0FDEBFFAFAFFCBEDBEBCBE9EBCBCAE9EACBC0E0B09A00000B00E0E0B00BAA0F0FAF0AF0FAFBE9E0F9EBCB0FEADB0F0BCBFEADFBCBFFFFFFB00B00EBCF09ADAF90BCAFFFFFFBFBFBFFDF9FFFFFFFFFFFFFFFFDBFFFFFFFFBFFBFFFFFDF0BFBCFAFBEBDADFDF0FBF9EF9EBDBADA9A9F9E9F9A9B0BC0A000A0000F0B0BCAF0DADAA9E9F9EAF9EF9EBDAE9E9AF0BDA0DA9EBE9BDBEDFFFFFFFFC000CB0EB0FADADAEBCA9FFFFFFFDFFFFBFBFFFFFFFFFFFFFFFBFFFFFFFFFFDFF9FBFFFFFA0F0CFBDFEDFEFBEBEBFADAF9EBCBEDADACF0EBF0EDAE0F0BC0B090A9A000A00900A90A9CB0AE0BDAF0FADAADB0EF0BCAADA0E9ADFEFEBFAFFFFFFFB00A9ADB0FADAFADBCA9EFFFFFFFBF9FFDFFFFFFFFFFFFFFFFFFFBFDFFFFFBFFBEDFFFFFF0F0FB0FADBE9FBCFDBCFDADFADBFCBBCBDBAF9FCFB0F9F0F0BC00A00C90A9C9A0A90A9C0A0E90F0E9FACB0E9AEF9AFCBC9A9A9EFEBFBFCFF0FFFFFFC000ACA0F0FADADAE9AF0FFFFFFFFFFFBFBDBFFFFFFFFFBFFFFFFFFBFFFFFFFBDBFBFFFFFF0B0FBEDADBE9FBEBEBEBFADBEDABCE9EAD9EBABCFBCB0F0F0B090B0ACBCA0A9C0AC0A0B090A00B0ADB0E90F9ACF0B0BAC0ACB0B9EDEBFAFFFFFFFFB0090BCBEBCBEBE9EBCAFFFFFFFFFFBFFFFBFFBFFFFFFFFFFFFFFDFFFFFFFDFFFFDFFFFFF9E9EDADBFEBDACDBCBDBCBDADABDE9BE9BAF0FDEBF0FADAF0BCACAC9A9A90BCA0B0B09000E090BC09A0F0A0ACBA9E0E0CB0DA0FFEFBFDEF0FBFFFFFE000A0BCBCBE9E9E9CBDAFFFFFFFBDFDBF9FDBFFFFFFFFFFFFFFBFBFFBFFFFBFBFBFFFFF9EB0FBFFFEBCBEBBAF9EAF9EBEBDEBBEDACF0F9EBF0FADAF0BCB09A9ADADAFC9ADAC0F0E0B09A00ABE0F0A0DA9AD0A9A0B0A0BDE0FBEDAF9FFFFFFFF00A0C9EBCBE9E9EBEABEBFFFFFFFFBFBDEBFBDFFFFFFBFFFFFFFFFFFFFFBFFFFFDFFFFFFE90FEDFEBDFBE9FCF0E9F0EB0FDABDE9ADB0FBE9F0F0F0BCBCBCA0DACADAF0BEDA9AB0A9ACA00E90090A9CA00E00F00D0009E0ABF9CBEB0FAFFFFFFF9009AB0FADAFAE9E9FCFCFFFFFFFFDBFBFDBFBFDBFFFDFFFFFFFFBF9FFFFFFF9FBFBFFFFFFA9FBFDFFFDFFAF9FBE9F0DA0ADABCFAADB0CBEBFAF0F0BCB0BCB09B0F09E9ABCBC9E9E90BCB0A9E0F0A90A90B00A0A0F0A09C0AAF00FACB0FFFFFFE0000CBCBE9CB0F0EBABFFFFFFFFFBE9FBFF9FBFFFFBFFBFFFFFFFDFFBDFFBFFFE9FFFFFF0DADEFBEFAFBDFFEFFDEFBADBDAD0B0D9ACBBDBCBDBCBE9BF0F00F0E9AFA9EDABCBADA9EBCB0E9E9AB0F0A90A00B09000009A0BC90AD00B0FFFFFFFF000A9EBCBEBCFAFBCFCAFFFFFBDBFDBFDF9EBDFFBDFFFFFFFBF9FBFBFFBFFFFF9FFFFFFE9A9FBFFFFFFEFEFBDEBF0FCB0EA9EBCBAE9BCBEBCBEBCBCE0F00B0A9ADADE9A9CBCF0BE9CA9E9A9AF0F0BC0BC9E00A0A000000000A000B0CBFFFFFF000BCAB0F0ADABCBCFAB9FFFFFFFFBFFFBFBDBFBFFFFBFFFFFFFFFFFDFFFFFFDBFBFFFFF9E0FEFCFFDFFFFFFFFFFFFBFFF9FFADAC09ACB0BDADA9E9BBDA9AC9EBCBCB0F0FADA9AD0BA9E9ADAD0FAD0BCA0A9AD0D00B0A0900090A000A9FFFFFF00009C9E9ADAFCBEB0FCAFFFFFFFDF9FFDFFFBDFDBFFFFFFFFFFFDBFBFFFFFFFFFDBFFFFF9A9BFBFAFADFF9EFBDEFDEBCBF0FDBFBF0F9EDAF9ADA9ECBE9E9A09A9EBCB0F0F0F0FAF0F0BCB0FAF0FAF0BCBDA0A0A900C0000A00090090AFFFFFFF000A0A0ACA9ABCBCB0BCFFFFFFBFBFFBFBDBDBFBFFFFFFFFFFFBFFFFFFFFFFBF9FFFFFFCBC0F0FFFFFFAFFFFEFBFFFFFFEFFAFCBCB0A9A9E0F0BCBBCBCBC0F0F0F0BCBE9AF0BCB0F0BCB0F0BCBDADACBCA9E9E9EB0B0B0A90A00A0009FFFFFFA00A9CB0DA9CBCBCBCBCBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFB00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0F0BCBCB00B0B0F0BCBCB0F0BCB0F0BCB0F0BCBFADA9A9A9E9A9A00000000000000000BFFFFFF00000A00A00A00A0A0A0A000000000000000000000105000000000000D4AD05FE,'Michael is a graduate of Sussex University (MA, economics, 1983) and the University of California at Los Angeles (MBA, marketing, 1986). He has also taken the courses "Multi-Cultural Selling" and "Time Management for the Sales Professional." He is fluent in Japanese and can read and write French, Portuguese, and Spanish.',5,'http://accweb/emmployees/davolio.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(7,'King','Robert','Sales Representative','Mr.','05/29/1960','01/02/1994','Edgeham Hollow +Winchester Way','London',NULL,'RG1 9SP','UK','(71) 555-5598','465',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D16540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FEDECDACFEFCEADE0ECECBCE0CEFEFECFFEFCFEEEDEFEFEFCDEBCEFFEFCFEDEFCFEFECFDEFFC000C0A0C0CE0EDFE0FCE9FDFCBF9F9FCFCEFCF0FC000000EFCE0CE0CE0FCBE0F0EDECACBCAECACEF0FCE0FCCACE9E0FEEDE0E0E0EEDACEC0CEDEFCACAECE0CAEDEECFCACFCEDEFE0EDEFECFCFEDFFEFFFCFEEECEEFCE0EFEDFEDEFFEDFEFEFE900000C9E9CADEFE0FCBDFCBDBD0FCF9F9FFDEFFCAF0000C0CADCAC0E9ECACCFCECACADECEDEFCF0EECACECAEDE0ECECEDACFCFCEDEACF0FEF0EEFACEDCADEFED0ECBCADEEEFAEEDEFEEFCFEEFEFEEFEFEFEDACBCF0EFEDE0FEFEFECFEEFEFFF00C0CE0EC0EDEFACFCBDBCBDFE9FDB9E9E90EFFCAC0CA00C0EFCACCECEC0ECACE0FCEDECBCAC0E0ED0CEDEBCDE0FCF0E9EEFEE0E9E0DE0ECACEFDFCCCAFCEECFEEFCECECE9ECFCFEFCE9EEFEDEDEFDEFFFEDEDECEEFEDFEFEFEFFCFFEFDEFDEFF00000DE9ECEFEDE9EDADFDAF9F09EDF99CF9EFFFCAC0900CC0EC0E9CACE9CF0EC0F0E0ECFCFECFCEEBCACCEACECACECECFCBCFCECEECFCEDEDEEFEBCECBC0FCFCAF0F0ECEDEEFCFEFEFEDEFEFEFEFFEEFFEACEFCFCEEFFCFEFCFEEFEEFFEFFEFB0C0E0F00DEBCE9E9FDADBDCF0F99ADEB90D0FEFFDECA000ACDAC0ECDACE0EC9ECECFCFE0ECBECADCECEBCCE9ECECADEACECFACBEC9EE0FCEADEF0CEFECEFEEBEFCECEDACAEDEAFCEDECFEDACFEFEEDFEDFCE9EE0EDFEEFEDEFEFDEDFEFFEFFF00000C0CFEFCDAD9E9EDBCFBDF9CBD99C9F0FCFDEFBCC000CCACFC0EACCACCACCACAC0E0FCECCBCEADACCE9ECE9E9ECEDEFEDEFCCBECDEEBEDEFFCAC0CEFEFDECCCAC0EECEDECFCFFEFFEFEFFEDEFFFEFEAEDEECFEFEEFFFFEBEDEEFEFFCFEFCF000CAEEDEBCBC9E9CBDADBDE9A9C9CE9E09D0FEFCFE9A00CACF00E0CCADCADEADEDEEDECE0FEECFCECFE0ECE0ECECF0ECADEECFEECFAEDEDEFEFFCBCAC0CEEFEBEDEF0CBCAEFEFEEF0EDEDECFEFEFEFDEDCAEDACFEFFDEFEFCFEFFFEEFFEDEFFBC00CDFAFCBDAD9CBD0FDCBFDF90A99C9FCBCBCEFCFED000CACECCEDACE0E0CCACAC0EDAFCAC9E0E9E0DECACFCACACEDEFEE9E0F9EECFEEFEEDFFFEFCBC0C0CECEACEFECECCECEFDEFEEFEFEFEFDEFEFEEFCCECEFFCFEFEDEEDEECFFDEFFFEFEFBC0EEDCBC9C9E9D0FDAF9CBDAD9C0BD090D0D90EE9EFE900CBCBC0EC0CECE0ECECFE0ECECFECEFCECEACEDE0ECFCE0ECE9EEDEEEDEF0FCFFFAFFEDFEFEFBCAD0CCE0EDF0FACFFEEFCFCFCEDEDEFEFFEF0EEF0EFDEFEFEDEFFEFFFEFEFEFEDEFFC00CB0BC9E9E9E9F09D9EDDADBC90C0FCF0F0E0DCEDEF000CCEC0E0CE0C9CECBCACCFCBCBC0F0CACADCE9CACC9E0FCFADECFECFCEBCEEFEB00FEFEEDFCFCEDEECA9CCEEECCFECEDEFEFAEFEFEFEFFEDFEDACEFFEFFFEFFEFCEFCEFEFEFCFEFFEFFCE0FC9E9E9CDBC9E9E9FADF09A90B9090D099CAFEEDA900EF0E0CE0CACE0DECFCBEECECEECEECDECE0CECFAEECE0ECEEFACBCEFCEDFFB000FFCFFEEFEEFEE9FCEF0C0CFE0EFFEFEDEDE0FEFEFFEFE0ECEDEFEFEFEDFEDEFFEFFEFCFFEFFFCFEFF0D09E9D0F9ACBD0F9E9DE9F99C9C0DAD0BC09C0CFEF00CECFCE0C0ECACEACACEED0EDAC0F0DAE0E9EACACC0CBCECFEDEDEEFACFFEF0C0E0FEFECFFCFDEDEEEFCEEBCE0EDEEDEEFEFEFECFCFEFFFFECBCEFEFFFEFEFEFECFFEFCFFEDEEFEFEFCAF0F0DADBCF9DADBC9F0F9E9E0909A0DAD09E00E0CFEB00CFAD0E0C0CC0DEDEF0EEFCACECCECCECECCCFCACECCACBCF0EEDECFCEFFEB000EFFEDFECBEEBEFDECBEDEE9C0ECFEFDEFEDEDEEFEFEDECFECEFCFEFCFCFEDEFFEDFEFFEFFFFFCFEDAD0D0F0DAD90F0D0DBC0F09F09DA00D0090F0909CEFED000FEDEC0CACACECACECED0CACDACACAC0F0E0E0ECACACFCEEEFE9E0FEFFBC90E0F0FEFEEFFEEDEDAEEFEDEEDEFE0CE0FEEDEFEEFCFEFFEFFACEFFFEFEFFEFEFEFEFEEFFEFEFEFEFBCADAD0F0DE9DADF9E9F0DBD9FC9F09C909F0D0900CEFF0CACFEF0E0E0C0CE9ECF0F0ECACEACEDACCE0ECE0EC0CCE0E0FCBCFCEFEFFACA0E0E00FCFCFCEDFEFEDEDECE9EFEDEF0ECEFFEFCADEFEFEFFECF0FEFEFDEFEFCFEFCFEFFFEDEFCFEDECFC0D0F0DBC9E9E0D9F0DBC9E99F0F0BC0000B0C9000CEFFCFE9EF0C0C0E0CEDACECF0EDACCCACCE0EC00CC9EDEBCFCFEFCE0EFDE9E9000000A0FFEFAFEEDECFEFAFEFEDEFACFE9E0CEFEFDECEDEDEFFECEFDEFEFEFCFEFCEFEDEFEFFEFEFFEFCA9CBC9F0F9F9F9F0F0F0DBC9E0D90D09B0D0C90A900FCEFFEFECCFE0E0CE0ECFCACAC0ECA0FCAC0C0ECEBEECACCE0ECCACFFDEFFFA0A00A0000FEFCFCF0EF0ECEDEDEEFECFFECFEFCACFEEEBEFEFFEF0FEFEFDFEDEFEDEFFEFFFEFDEFCFCEFCB0C9CF0DF9EF0FCBDBD9F0D0F9F9E9A9C0D009A90C000EDEFCFCBE0C0CCACEF0E0DECCE0CCEC0C0EFE0C0CC0BC0E0CCBEFFEFEFEA00000000000FFFEEEFEFCEFE9EEFEDECBCECFEDE9C0EFFDEDEFFEFCEFCFEFEEFEFCFEFFEDFEEFFEEFEFEFCF0F9EB9DEBCF9DF9F0F0F0F0F9C9E9C9CA90A900C0900CEBCFEBEEDE0CA0CE9CE0EE0E00CCAC0E0EC0C0E0E0ECEECFFEFEDEFCFF0900000000000FCFFFDEDEEFCEEDE0FEFFEEFEFEFEFFFCCEEEFEFEFFEFEFCFEFFEDEFEFCFEFEFDFEFFCFEDE0909C9DEBDDB0FADE9FDBDBD99E9E9F0F99C900D0900000CEEFDEDECAC0CE0CEACC0CC0ECA0C0ECE0CACECEDEDEDAFE0FCFEFEF00A00A000000000FACFEFEFE9EF9ECEFCEEDEDEDACFCEEFAF0DEEDEFEDEFFEEDFCFEFFCFEFEFEDEFEFCFEDEFBCBCADADDEBCDFDDBDE9E9E9EDAD0D09D0F0B0D00A0090000DCEFECBEDAC0CFC0CACE0EC0ECEEC0C0CACBCBCE0E0EDEDEFECFCFEB00A000000000A0FCF0FFEFCFECEFE9CEDAEFEFEFFEFFDEFCECADEFFEFEFCFFEEFFFEFEFFEDFEFFEFEFEFFE009C99FDBE9DBF0FADF9FDF9F9BDF9ADADB0D0DA90D090000CEAFCADECEC0CACACC0C0E00E0C0C0EADEDECCECADECEEFEFCFFEBA0A0A0000000000C0FE900EFFFECFFEDEFAEDEDEDEDECFEEFFEF0CEEFEFFCFEFEFFFEEDEFCEFEEFFEFDEFCFE09FCBCFCBD9FFEDFFDFBEDF9EF9ED09CBC90D0F09C000000000EDCEFE9E90EEDAC0AC0ECDECC0E9EFCCACADACBCECFADEDEFEAE0000000A000000000AF0F0000FEFFECFAECFCEEFEEFEFFCFFEFFEFF0CCFEFFEDEFCFEDFEFEFFCFFFCFFEFEF0C9C09CBDBDEFE9FBDFBDFDBEDBCFDBDE9D9ADBD0F09090C00000CEBCFCECEC0C0C0CCECF0E0CADCE0CBEDECECECEDAEDEBEDAFC9A0A0A0000A00B00A90BE0A000CFEFFFCFEFCFDECF0EFEFFEDEFCFEDEACCFFEFEFFFEFEFEDEFEFEFEFEFEDEEF9A9CBDEDEDBDFFDFEDFE9FDBFDBDADB9E9CDADAD0F0CA90900000CE0EF0F0FCACACA0CA0C0E0EE0FECCAE0F0E9E0ECFECEEFCAA0C9000A0000000A00A0F09000000DFEFEFCAFEAFEEFEDEFEFEFEFEFEFD0EFEFEDEFEFEFCEFFCFEFEFEFCFEFD00D0FCBDBFBDFBCFFBFFFFFFDEBDF9FCF9FA9D0DAD0990000000000CFE0FCECAC0C0CCACCACECD0EC0FEDCFCEDECFCBC0FFCEA9C0A0A00000000A009A0AF0A000000FEFFEDEFFCFCF0FCFEFDEFFCFCFEFFEFFFCFEFEFCFEFFEEFEFCFFCFEFA90E9CBCBDEFDEFFFFFFDFBDFBCFBDE9E9F9F0DDADBD09F0009000000CE0CFCEAD0CACACACCADE9E0EDACE0CEACE0E0E0ECFECA9000BC0000000000000A090FF0C0090009EFFFECEFEFEFEEFEFEFCFEFEDFEEFFEEFFFEDFEDEFEDFEFFEDEFEFCFC09E9FDFF9FFDFEDFFFFFFFDFBFDBDBDF0F0DB09E9CBC0AD0C090000ACFEE0FCE0C0CCCCADE0CECE0ECBCFACCBCCFCECFEF0B0A0A00A900000000000000A0FEB09A00A0000AFFFECFCFCFFEDEFEFEFEFEFDEFFDEFEFFEEFEFCFEFDEFFEFEDEF0BC90F0F0FFDFBFFFFFFFFFFFFDFADFCBDF9FBCFD9E9DBD9090000000C0C9EF0E9E0CAF0FCACE0F0EDACE0CE9ECAE0CFE9EACA0900AC0A000000000000A000FEDA000090000ECFEDEFAEFECFEEDEFEDFEFEEFEFEFEFDEFDEFFFEFEFFEFEDEFE09C9EFCFDFFEBFFDFFFDFFDFFBCBFDBDBDADAD0B9AC9AD00F0E90000000E0ECECFCC0ECCACACDACCEC0CE0EC0ECADCEFE9E90000A0900A00B0A0A00A0A00000F9A000900000000EFFFEDEDEFFEFFEDEFEDEFFFFCFFFEFEFEFEFEFEFFEDEFEF090D0F9DBFFFFDFDEFFFFFFFFFDFFFDBDEDADBD9FC0D9FDADF9090090000CC0E0FCACACFCACEDCAC0E00CE0CC0ECADEEBCB0A0A9000000A09A000000000000000BE90900A00000000EEFFEFEFEFFCEFEF0EEFCFEFFEDEFEFFEFFEFDEFEFEFCFE9CBCBCFEFDF0FFFFFFFFFFFFBFFBF9FEB9BDBC9E99F9E90F09AD0D000000CACFCADEFCAC0DE0CACEC0ECE0EF0E9ECECFDA000000AD00E000A0A0A000A0E0F0B00F0A00A090000000000CFEDFEFCFFFCFEFDEFEFFEFFEFFFCFFEFFEFFEFFFEFEDA0D0F9FDFAFFFFFFFFDFFFFFDFFDFF9FDEDADBF9E90F9ED9FC90B0B000000C0CFCAC0FCACACFEC00EC0E0D0CECECFFBE0F0A000E0AF009A000000A00000A00000F90009000000000000ACFEEDEFEFEFEDEEFCFFEDFEFFEEFFEFFEFEFFCFEFED00DADCFCBFDFFDFFFFFFFFFDFFFFFFDEF9F9F9C9E9E9D09AD0BDE9C09000000EE0EDEFCADECE0C0EC0AC0ECEC0FEB00C0FA0000ADFC9EBE0A0B0A000000000A0A000090000000000000000EFFFEFFEDFEFEF0FEFFFEFFEFFFEFFEDFFFEFEFDE90DADBFFFFFFFFFFFDFFFFFFFFFFF9FBF9F9E9E9E999DA9ED9BC09909000000EC0CFCACADE0C0C0EC0ECCF0E0EFE90000A00000AC0A0A00009A0A000A0000000009F000000000000000000000EFFFEFEEFFEDEEFEFEFEFFEDEFEFFEEFEFEDEE00E9DEDEBDFFFFFFFFFFFFFFFFFFDFFDFDF0F9F9F9ECF09C9BCDBDBCBC900000C0FE0ECFCE0CE0E0CAC0DACECFE900000000000000A000E0F0A0000A0000000000A0AB000000000000000000000ACFFFFFCEFEDECFFFFFEFFEFFFEFFFEDFFEDF9C9E9FBDFFFDFFFDFFFFFFFFFFBFFBEFBFFDBDAD09990F0BC0B0DAD909A900000C0ECBCAFCAC0CCE0CEECECFFCB0000000000000000000000A0BA0000AC000000000D00000000000000000000000ACFEFEFFFFEFEFEFEFFFEFFEFDEFEFEFEFE00DADFCFFFFFFFFFFFFFFFFFFFFFFDFDFFCBFEF9FF9EDB9CD9F0F90BCBC9000000EC9CECFC0C0E0E0ED0CEFB00000000A0A000000000000A0E90000A0AC0A00000000A0000000000000000000000000EFFFFEFEDEFFFEFFFEFFEFFEFFFFFEDA90DADEFFFFFFFFFFFFFFFFFFFFFDFFFFBFDBFDF9F99E900DA9A0D90FD9C9000000CC0EEDACACAC0F0CCAEFB000000000C0000000000000000000A00A0009A0000A00A09A000000000000000000000000000EFFFFFEFEFFFEFFEFFEFFEFEFEFE90DADFDBFDFFDFFFFFFFFFFFFFFFFFF9FDFFF9F9EDEF9F9F09C9DACF9A0BCB900000ADC0ECF0CCACCCAFCF0000000000A0A000A000000000A00A00A090ACA0000000000E9000000000000C0B0A00000000000EFFEFFFFFEFFFEFEFDEFFEFFDEF00D0FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFF9F9F0F09F0BC99B0D9C99C09000C0E0DADECACCACECFA90000000000C090A0000000000000000900AC90CBCA000A900BE000000000E009A0000000000000000EFFEFEFFFEFFFFFEFFEFEFEF00DAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF09FF9F9F99E99C9E9C9ADBCA99000000C0ECEBC0CACFAF00000000000000AC000000A00000000A0A00000A000090A90000F09000A0A0E9CB00000000000000000C9EFFFFFEFFFFEFEFFEFFFEF09E9EDFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FDF9FFF0F0FC9E99E9A9C9AD909D9E00000E0EC0FC0DEEDAD0000000000000A000A0E0000000000000000A00000A00A0000000FCA00000000A00A0000000000000000A0000EFFFEFEFFFFEFFEFEDF000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF9F9FBDB9F9F090D0BC9BCBDA099000C0C0CEACEE9E90000000000000000A0AC000A000000000000A00A0A0000000000000AF0000000A00A000000000000000000000000CFFFFFFEFEFEFFFFEA9CBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAFF9E9DADA909F9E9C9BC9909DBCB0000C0CBCDE9E9000000000000000000000A0A000000A000A000000000A0E0000900000FE9A000000000000000000A00000000C0A0000FEFEFEFFFFFEFEFF900DFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFBFF9FE9FB99F9F09090B0C9ACBCB0909000ACACEA0A0000000000000000000A0AA00000A0A000A0000000A00AC090A00000000FA00000A0A0A00000000A000A0000A0A0C0000CFFFFFFFEFEFFFFC0CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FDF9F99F9C9E0D09ADAD0D9AD9D90DAD0000C0CCAD0000000000000000000000000000A000000000000000000000A0900000000FF00000000000A0A0000000000000000A000A00CFFEFEFFFFFEFCB9ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBFBDB0F90BC990BC9090B00900BCBD9B000C0E0FCA000A000000A0000000000A0A0A00000A0A0A00A000000000A00A00A000000FEB0000000000000000000A00000000C0A0C0000CFFFFEFEFFFEF00CFFFFFFFFFFFFDFFFFFFFFFFFFFFFFDFFDFDAF9F9E9DBCBC9BCBC9DBC9BC090AD09000C0CE0E000009A00000A0A000000000000000000000000000A000000000000000000FBC00000000000A0000000000A00000A00CA0009EFEFFFFFFEFFE90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBF99EDADBE99DB9C9DBDAD9A090C9D0F000C00E0DA9A00FAC9A0000000A000000A00A000A000A0A00000000000000000000A000FEB0000000000000000A000000000000C0B00E00CFFFFFEFEFFE90FFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFBDBC9EFDBDF9DBDADE9FBC9F9FC99E900A990C0ACCFA000CFAC9AC90A00A00000000000000000000000A00000000000000000A0C0AF000000000000000A000000A00000000AC0E00A00EFFEFFFFEFCE9CFFFFFFFFFFFFFFFFDFFFFFFFFFFDBDBDF9FF9FADF0FF0F9B9F0DFE9E99F090BC9C0000CAC0CA00A0CBE90A0CA000000000000A00000000000000A00000000000000000A00FFB000000000000000000A00000000000A00E0CA09CFFFEFFFFF90FFFFFFFFFFFFFFFFFBFFFFFFFF9FFFF0BCF0FFDFBFF9FFFCFDBFBDBDFF9F9E9090B090C0CEB00A00A000A009ACB0A0A0000000000A0000000000000A00A0000A00000000A0B00000000000000000A000C0A000000000CA9CA9CA0EFFFFEFEB0EFFFFFFFFFFFFFFFDFFFFFDFBDFFF90FFDBFFFDBFDFDFF9FBFBCDFFFFBCF9F9DBC90D0C00F9000000000009A000000000000A00000000000000000000000000000A00000A00F0000000000000000000A0A0000000A000A0EA0CADADFFEFFFFC9CFFFFFFFFFFFFFFFFFFFDFFFFFAF0FFFDBFFDBFFFFBFBDFFDFDFBE9FDFF9EBDA90BCB0B0EC0000000000000000A000B000A00000000000000000000000A00A00A0000A00000AD000000A00000000000000A000000C0A00C00DA0000CFFFFEFB0FFFFFFFFFFFFFFFFFFFFFFBFF9FDFBDBFFDFFFFDFFDFFFFFFFBFDFFBF9FFDDB9F9D09C9CCB00000A0000E0ACB000A000E9000A0000000A000000A000A00E90A000000000000FADA00A000A00000000000000A0A0000DA00ACACB0000CFEFFFE9CFFFFFFFFFFFFFFFFBFFFFFDBFFBDFFFFFFFFFFFFFFFDFFFFFDFBDFDFF9FBFDE9A9F09A9A9000000000A0E9ACB0000A00A000000000A0000A00000000000E00000A000A0000FFA00000000000000000000A9C0000A0A00A000000A000FFFFED0EFFFFFFFFFFFFFFFFFDFBFBFFDBDFFDFFFFFFFFFFFFFFFFDFBFFFFBFF9E9F0F9FDB0DAD0D000A00000A0CBCE90A00A00A00A00A00A00000000000CA000CA00A0A0000000000FA00000A0000000000000A0C00AC0A00000000A0A00000EFFEFB0DFFFFFFFFFFFFFFFFFFFDFDFFFFFFBFFFFFFFFFFFFFFFFFBFDFFDFDF9FFFDBDBF9ADB99CB00000A00000ACA9A00000000000CA00A00000A00000A00000A000000000A000000FF90A00000000000000000A0A00A00C000000000000009CFFFFC00FFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFDFBFBFFDBDBDBC9FDB0DA90D00A000000000AC0A00A00A000A00F0000A000000A00000A0000A0000000000000FCA000000000000A000000000A00A0A0A000000000A000A0DEFFBCFFFFFFFFFFFFFFFFFBDBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFDBFDBCF9FF0F9F0DB09A9000000A0000A000000000A00E00A0A000A00A000A00C0000000000000000000AB0000A000000000000A00000000000C000000000000A000EFFED0FFFFFFFFFFFFFFFFDFFFDFFFFFFFFFFFFFFFFFFFFFFFFFDFFFDFFFBFDBFF9F99F9F99BC9F000A0A0A00A0000A00000AC00A00A0000E000A000000A000A0000000000000000F00A00000000A0E0A00000000000A0A0A0000000CB00000CDEFF0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9FDBE9DBDADBCBCBCB909DA000000E000A0000A0ACA9A0A000A0A0A0A000A00000A0000000000000000000E0CA0000000C0AC9A000000000000000000A90A0C0F009A0FEFE9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9FDFF9F9DBF0F9F9BDB99DADA09000A0A00A0000000000EA000A0000000000A00000A0000000A00000A000000B9A0CB00000A0E9A000A0A00000000A000A000090B000A00ACFFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFBF9F9FBD9F9FBCFDADAF099DAD0A00000ACB0A0A00A0000A0000A0A0A00A000000000A00A000000000000000E000AC0A000000A000A0000000000A0000000000A00A0000CBCFEBCFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFDFFFBDF9F9F0DAF9F9CB9BDBD9BDA990B0000A000000000000A0A0A0A0000000A000A00000000000000E0A00000000B00AC0B00000A000A000000000000000A00900A000000000ACAFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9FDF9E9F99F999C9B9FCBF9ADA9C9E900A000A0A0A00A00000000000A0A0A00000000A000000000000A000000000E0000AC0B0A000A00C0E0A000000000000000000000000A00ADCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF9FBDBD9E99F0F9FDCB9D0BDBD9B09D09C00000000A0000A00A0A0A000000A00000A00A000000000A000A00000009A0000AC000000000A900000000000A0000000000A00000000A0EFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FBD9F09D0B0B9DEBDDADAD0F0B0A0B0A000000A0A000000000A00A000000000000000000A0000A000000000E0000000A000000A00CACA0000000C00000A000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFDBF9F999F9DB99D9D0B9DABDBDB999C9D000000A000000000000A0000000000000A0A000000000000000A000000090000A0000A0000000A009000000E0B00000CA00000A0000000A0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBD9D90DF0B909DA90BD0F9D9E9F09E9F0A00000000A0A0000000000000000000000C0A0000000000A0A000000000E0A0000A000000A0AC0F0ECB0A0000EB000A0C00A0000000000009CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBDBF9FDB9D9F9F999D09F09EB9F9F090099000000000000000000000000000000000A90000000A0000000A00A0000B0000A00A000A00A0A000ACE9000A0C0E9C09A0C0A0A0A90A00000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFDFFDFF9FDBDF9D9FCB99C9F99DADB9F9F90F0A0A00A00000A00A000000000000000000E0A000000000000000000000CA00000000A00000000EADA9E00000A000A0AC0B0C00C00000000ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFDBD9F9FDB9F0B999CB909CB9DBCF9090F090000000A0A000000000A0000000000A0000000A0000A00A0A0A000000B0000000000000A0A0A000E00A000000A00D00AC00B0A0A000A9E0DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFDB9BDBF9F9B0D99D090990BDB9EBDF90F9F090A0A00A00000A0A000000000000000000E0ADA0000A0000000000A0000E0000000000000000A0A0A0A00A0000000A0AD00E0C00900A0000AEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFBFDBFDFD9D9FFFDFBE9B90DB0D09C99CB9FF9099E90000000A0A00000A00000A00000000000000000000000000E0A0000009A0000A0000000000000A000A0000000000000A09A0F00A000A009CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFDFFDB99FFFFFFFBDFFDEFB0D90909E9BDADBF9E99E90A0A000000A0A0000000000000000A00ACA0000000A000A00D0A00A0E9000A00000A00000A0A00A000A0A00000000A0DAC000E00E900A0AFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FDFFDFFFBDBDFFFFFFFFFFFFFBDF9FB0009090DBDBF9E9F090000000A00A00000000000A00000000000000A00A00000A0CA0A00000B0000000000C90A000000A0A0A000000000A000A00B0E90E00CAD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD9DEFFFFFFFFFFF9FFF9EB9E9900009DBC9F9F990DADA0000000A000A00000A00000000A00ACA0A000000000000A0E00CA00E00A0000A0A0A000000A000000A0A0A0000000B0B0000CB09EB0ACBFFFFFFFFFFFFFFFFFFFFFFFFFFBF9F9FBDF9DAFBFFFBFFFBDFFFBDB9B9C99CB00000099E9E9F0F90900000A0000A000000000000000000000C0000000A0A00000CADA90A0DB00000000CADA0A0000A0A0A00000000A000A0A0A000ACAC9CB0ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFDFFBF9DFDBFFFDBFFBFB990D0D0900909000000B9F9FDB0F9F0A0A000A000A0000A00A00ACA000000A0CAC0A0000000000ACACA000EACA00000000000000A0900000A0A0A0A090A00000000000A0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB9FF9009EFBDFF9BD90D9CBD9B9B909F0909090090D0F9B9D090900000000A000A0000000000000A0A000A00B0000000000A000AC9A0F00000A0000A0A000000A00A0A000A00000A00000000A00B09000F0FFFFFFFFFFFFFFFFFFFFFFFFFFF9BDF909090F99FF9F9DBDBDBDB9C9D0BD090D09A99000B90FDA9ADA90A00A0000A000000A000A0A0A0C00000CAC09A00A0000000A00A00EBE0E09A0A0000A000000000000A0000A0A0000A000000000A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFBFDB0F900009F9F9F9FBDBDBDBDFBF9FDB9DB9BD9D0D99CBD9BD9C9CA000000A000A000A000A00C0000A0000A000E0CA000A0CA00000000FCB00E009000000000A00A00E009E9A0000A9A090A0000B000B00ACFFFFFFFFFFFFFFFFFFFFFFFFFFFB9DB99BD9DBDF9FDF9FFFFFF9F9DBF99E9E9C9ADA9A0909AD9B0B9900A0000000000000000000A0A000A0A000A00EADA0C0A00F0000000FBCEB0F0A0A00000A000900F0BE00A00A0B0000A000B0000900000FFFFFFFFFFFFFFFFFFFFFFFFFFFF9DB9CBDBFFFFFFFFFFFFFDBDF0FBD0FBDB9FB9DB9D9990F99E9D9E9B0000A000000000000000A0000A000000000A0CA0F0AC0E00A00000FCB00C0A9C9000009000A0F0AC00B000900E0A000B000A00A00A0FEFFFFFFFFFFFFFFFFFFFFFFFFFFB9A9CBDFFFFFFFFFFFFF9FBFFBDBC9F9C99E9DCB0DBCBCB90F9F9A9C000A00000000000000000000A0000000000000A9E0E09A0A0000000AB0DA9AD0ACA00A00A90000E90B0000A0A09E900000A00900B0900FFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9BDFFFFFFFFFFFFFFFFDF9DBD9B099E99A9B9DA9909C990F0D9CB900000A0000000A0000000000A0A00A000000000000A0C90A000000DEA0000A90B00000000A0000A000A00000E00EB0A000F0A000ACBCEFFFFFFFFFFFFFFFFFFFFFFFFFBDB0BD0BDFFFFFFFFFFFFFBFBFBDAD99A0909D09CBDADB9BCBD9B0B90DA000000A090000000000A0000000000A0A00A00A09CA0E090A0000A90000000ACADA00A0AC0B00000000000A0AD00009AE0E90A00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF990FFFFFFFFFFFFFFFFDFDBDBDB9C990F009E990990D0990FDBD0F0900000000A00CADA000000000000000C000000000A00F0A0000000F000A000A909A00000DAF0000000000A09C0A00A0AC9EBCA00A0AFEFFFFFFFFFFFFFFFFFFFFFFFFBDF990FF9FFFFFFFFFFFFBDBFBDBDBD0B909009909E9F0F9B90F9090F99000A00A0A00E9A00000AC0000A0A00A00A000000AC0E00000000009A00900900A0000000AC0A09A0000000A0B00A00000E0EA900000CFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF990F9FFFDFFFDFBDFBD9DBDBFBD9E9099E090909909CBD9F9F990F090000000000AC9A0A000ADA0900000A0009000000B0A00A0000E0E9A00B000090A900000AC9A000A00000000E009A00A0EDEEB000A0FFFFFFFFFFFFFFFFFFFFFFFFFFFDBDF999F9FFBFFBFFFBD9B9BDFFDBF9DB9C990DA99E9F990F90F0F9D0B0F0A00A0A000AA0000A0000ACA0A00CACA00900A00000000B0E9EB000000B00000CA000090A00A000A0A0A0A90E00000CA0E9E9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9F09FBDFDFFF9FDBFFDFFBDFF9FBDA9AD9BD9C9909E99EDBD9E9BDD0000A0000A0000A0A00A0A0090000A09000A0000000A000C0CACA09A0F00000ADA90000A00CF0E9A00000900E9A0A00A0E9ECA0E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFDF9F90DFFBFDBFFFFFFFFFFFF9FBDBD9D9BCB09A09E99F9B9DB9F0D9A9A00000000A0A0000A00000E0A0A0CA0A900C0EABC90A0A0ACFF0000090A000A000000000A0F0E00A0A0A0B0AC9090000A0BCB0CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBF9F9A9FDBFDFFFFFFFFFFFFFFDFF9E9AD9BF99DB9DF0FDFADE9DABD0000000A0A00000A00000009000C0BC9C000B09C0A00000EDAE9A000ACB0F0C90A900000BCEFF0F000000A009A0A0A000000ADB9DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF9F9F99AFDBFFFFFFFFFFFFFFFBDFBDBDBCD9E90DB9F9B9D9BDB9DCBDB000A0000A000000A0000A000A000A0ACB00A0BC9A00000ACFE9000DACF09A0AC0090A9CAF0FA00A00B00A0A000000A000FDBDFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9DBDFFFFFFFFFFFFFFFFFBDBDADBBF99FBCF9FDEBFDBDE9BDA00A0000A0000A0A000A00000A09A00C090E90000A0000A0CB0B00A0ACB00A000900AC9CAD0F09CB0CA00A90000A0B090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFBDBDBFBDFFFFFFFFFFFFFFBFDF9F9DBD90F0D9BCB9BDDB0F9BDF0B00000A000A090000000A0A900000A0BEE90F0009000000A0ECA0D0000A000000A900A0B0A0E0E0EB0E900A000000CADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF9FBDFFFFFFFFFFFFFFFFDFBDBC9E9E9F9FBFDBDFDBBDF9FDA9F00000000A000E9E9A00000000A00000C0FFE9A000000000000BDA0A0A000A00A0000900009E9ADADE9A0AC90A09A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFBDFF9FFFFFFFFFFFFFFFF9F9B99E9F9F9FDB9FDE9FF0FDADA90000000A000000000A00A00900000AC0EBE9A00000000000CA0000000A000D0B0A0A90000000A0A0000B0AD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFDFBFFFFFFFFFFFFFFFF9FBDBC9F9F0F9E9BDF0F9FDBF9BDB0000000A000A0A0A0A000000A00A00009A9C9000900000A00AB000A00AC090A0B0C9C900A0A0A000000CACAD0A0CFFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFDFFFFFFFFFFFFFFBDFBDAD9F0F9BDBDBDF9F9F9BC9FC9AD0A0000000A00000000000000000000A0000A090A000A000ACE9000000A0A090009A0E000900000A00A0F0FAF0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFBFFFFFFFFFFFFFFFFFBDBDB09F9FDBDBDF0F9F9FDBF99F9AD0A0A00A00A00000900A00900900A9000B09A000A00000000FAB0A0A0E0CA0B0A0090A000E90A000000EEFCB00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFF9FF9BDF9F0BDADFB9F9F9EBD9CFA909A9090A00A000A00A0A000A00A0A00E9E9CAC9A0000000A0A0BD0000009EB000090B0090A000A0000A0ACBCB0CBFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFBFFFDFFFFFFFFFFFFFFFFFFF9FDA9E9F9FDB9CF9F9F9DBFB99F909E0E000A00A000000C0B09009009E000A09A000A0000A0000F0A9A0A0E0009000000A0A00A0000A000CBEB0E9EFF9FFFFFB9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFF9F0B9F9F9F9B9FB9BD0F9FAD9CF09CB0B000A00A0A0000A0B00ACBC0A0000A00A000000A00000A0A90000000A90090000000000000A0000A000000ADFFFFFFFF9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFF9FFFFDBFFFFFFFFFFFF9FF9F9D09E9E9C90D9CB9E9D9E9B9DA90000A00E00000A9090000909A90A0A000000A00000000A00AFE9A9A0A000A00009000000000000A000A0A0000FFFFF9FFBD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9FFDBFF9FFBFFDFFFFFFFFFFFFF9F9A9F99F9B9F90B9099A999E9E99F9A000A00ADA090A0A0B0A0E0E000000000000000000000A00B909000000A0DA9A000000000000000000000A09FFFB9FDFDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FF9FFF9FFFFFFFFFFFFFFFFFFBC9D0F990909090D9BC9DADBD9BC90000009E0A0A0AD000C0900909A000000000000000A00000AF0A00000A00DAC0D0000000000000A0A000A000CFF9D9FBFBF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFB9F9BDBF9FFFFBFFFFFFFFFFFBDBD9B0B90C90D0BC90BC99AD9D0BC9A9A0CA0E000000DAB0A9ACADACA00A0000000000000000A0A0A909A00000A0A9A0B000A000000000000A00000FFF9BDDFFDFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFBDBCBDBC9F9F9FDFFFFFFFFFFFFBDB0D9D0B909BD99BD99AD90B0BDB0D00B0CA00A000A00CBCADADA9000000000000A0000A0000000DA0000000000000000A0000A000000000000A00CFFF9AF9FFFFFFBFFF0FFFFFFFFFFFFFFFFFFFFFFFBDB9DBDB909B90F9FBFFBDBFFFFFFFFDBDB009009F099E9CBD09A99C909DB0F00A0CB000A00A0000CACACA0A00000000000000000A000A0A90090000000A00A00000A000000A0A0000A000FFFB9D9F9BDFFFBDB09DFFFFFFFFFFFFFFFFFFFFFFFFFFBF9F9F9C9B909C9FDFFFFFFFFFBFF9099A99099F099B90BD9CB09F090D0F0CFACA0000000A0A0A0A00000A0000000A0000000000000F00A000000000000000A00000000000CA9A00CFFFF9D9B9DFFBDB9E90FEFFFFFFFFFFFFFFFFFFBFFF9FF9F9FDB9F9BD0999B9FBFDFFFFFFDF909F0C9ED9F0F9E9CBD90B0DB09E90B0A0A000A00000000000000A0000000000A0000000000000A0F090A0000000A0A0A000A000000A0A000C9CBFFFFBB9CB9F9FFDF9B09FFFFFFFFFFFFFFFFFFFFF9FFBFFFFFBFF9F99B9F09CBDBFFFFFFFFBF90099990E990909900090900D09E9C00000A000000A00A00A00000A0A0000A00000A0A0A00A000B0A000000000000000A0000000A0000A0A0A0CF9FFFDB990F09FBF0900DFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9E9CBC9099DBDBDFFFFFFF9F9F9000A990000000090000090B00909A0A00000A00000000000A000000A0000000A0000000000A0E900000000A0A0A0A000A00A0000A00000000FBFFFFF9F9999F9F9909CFFFFFFFFFFFFFFFFFFF9FFFFFDFFFFF9F9F9B9F9A99E9F9FFFFFFFFA90090D00000000000000C90909F9000000000000A0A00000000000000000000A00000A0A0A0000B000A000000000000A0A00A0000000A00A0DFBDDFFFFFF990FFF9CA90ADFFFFFFFFFFFFFFFBF9FFFF9FFBDB9909090D0909CB9F9FFFFFFFF9D9090000000900000C090B00F0D0000000A000A0A000000000A00A0000A00A000000A0000000A00A0000000000000A0A000A000A0A0000000A0EDBFFFFFFFFB9090B9900DBFFFFFFFFFFFFFBF9FFB999B0090000000009009090D0FFFFFFFF9FB090090900000000909E909090B9B0000000A00000A0A000000E90E0A00000000A000A0A0A00000DA0000000000A0000A0E0F00000000000000FFDFFFFFFBF9E990000900DFFFFFFFFFFFFFDFF9FDBE9DBD0900000000090B090B99FDFFFFFF9F9E900009E909ADBCB9090090D0C090000000A0A000000000000A000CA0000000000000000A0000A00000000000000A000000A0A00000000000E9F9FFFFB090900909000D0FFFFFFFFFFFFFBFFFFBD9FBDBFBD0900B00BC909099CFBFFFFFFFF99909090009CBC90900909BCB09B900000000000A0A00000A0A0C0A0A00A0A0000A00A0A0000A0000000000000000000A0A0A0000000000000ADF9FDBFB0D09009000009AFFFFFFFFFFFFFFFF9F9FFB9CFFDFFFB9D0D9090909E9FBDFBFFFDB0F0F9A90090009090909CAC00909C00000000A00A0000000000C00A0000000000A00000000A0000AF00000000000000000000000000000000000FBDFFFD99000900000000CDFFFFFFFFFFFFFFFFFFFF9F999F99FDFB9A909090F9DBDBFDF9FBFDB90D90090909009ACB0999990DA0900000000A000A0000A0000A000000A0000000000A0A00A0A00A000000000000000000A00000000000000000FB9DBF099900009000009AFFFFFFFFFFFFFFFFFF9FFBF9A9F0B09C990090F99BF9E9FBFF9F99FF9ADB90009090990DBCBCADB0900900000000A0000A00000A00A0A0A000A0A000A0000000000A0F00000000000000000000000000000000000F9DBF999E009A90000909ADFFFFFFFFFFFFFFFFFFFF9FFFDF9F9F9B09DBCB9AD09F9F9F9FF0FF09F990DA90000000909909900900000000000000A000000A0000C000000000000000A0A0A000000000000000000000A00000000000000000000E9BD9C9E99F9900000000CDFFFFFFFFFFFFFFFFDFFFFFDBFBF9F9FDBDA9990D09F0B0F9FF9FF9FF9F0F990900000000000000900009000000000000A00A000ACA0A0A00A000000000000000A00A0A00000000000000000000000000000000000DF9E9BDBDF9E9900000009AFFFFFFFFFFFFFFFFBFBDFFFFDFDFBDA909000090F90D9DBC9FFF9FF9E9F9F0DAD0000000000000000CB0000000000000000000000000000000A0A0A00A00A0A00A0CAB00000A0000000000000000000000A0000000E9990DFBF990009000000D9FFFFFFFFFFFFFFFFDFADBDFBB090090009090DA9E90F0FBF9FDFBDF9FDADB09099A90000000000090990000000000000000A0A0A0A0A000000000000000000000000CA00000000000000000000000000000000000FBDEFFBD90090000000000FFFFFFFFFFFFFFFFFF9DBDA9D090090090000009D9FF9FDFDFFBFDFBFFBDBFDBDAD09C900009000C09C0000000000000000A00000000000A0000A0A000A0A00A0A0A0A0000000000000000A00000000000000000000999990909000000000090FCFFFFFFFFFFFFFFFFFB909009E09C0F0BC9E9FFFFF9FFFFBFDFDBFDFBDBD0BF0F9FDB0D0F9E0909B0A900000000000000000000000B00000A0A0000000000A0000009E00A000000000A000000000000000000000000000090000000000000009FFFFFFFFFFFFFFFFFFFFDF9F99DBBD9FDBDBDF9F9FFDFFFDBFBFFBFDFFFFFFDBDF0BC9A9009D0F00C90000000000000000000A00A000A000000A0A0A000A000A0A00A90000A0A000A000000000000000A00000000000000000000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFBFF9FFFFFFDFFBFDF9F9FDADF9BD99F90B009090900000000000000000000000A000A9A00000000A00A0000000EA0A0000000A0000A0A000000000000009000000000000000000090000000DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFDFDBFFDFFBFFFFFBDB9C9A9E90C9090000000000000000000000000A00000A0000A0A0A0000000A0A000B0000A0000A000A000000000000A000000000000000000000000000000909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFDFF9FDBDBD09BD0900B090009000000000000000000000000A0A0000A00000000000A00000A0E00A00A0A000000000000000A0000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF9FFDFFFFFFFFBDB09F09090909000B000900000000000000000000A0009A0A000A0A0A0000000A000009A00000000A0A00A0A00000000B00000000900000000000000000000000009CBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBFF9FFF9DB09909A0C90900090000000000000000000000000A00000A00000000A00000000000E000A00A0A00000000000000A00000000000000000000000000000000000909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFFF9FFDFDFFFF99B0909E909DB9000900900000000000000000000000A00A0A000A0A0A00000A00000000B00000000000A000000A0A0000000000000009000000000000000000000000BCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFBFFDFB9F0D9F990DA900090C0900900000000000000000000000000000A000000A0000000000000A0000A0A0A000A0A000009A0B000000000000000000000000000000000090D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFDFFFBF9D099B09A909D099009A900000000000000000000000000A00A0A00A00A0000A00000A00A0F000A0000000000000ACA000000000000000000000000000000000000090C90AD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFBFFDFFBB900090D09A99E90009009000000000000000000000000000000A00A000A00000A00000000A000000000A0000000090A0A00000000D000900000000000000000000009A9DBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFFBFDFFBF9D90DB9DB90BC9A90090909000000000000000000000000A0A00A000A000A0000A0000000E0F0000A0A0A00000A000A0A0900000009000900000000900000000000900909DA9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFDFFFBFDF9A0DB9CB900D9909090000000000000000000000000000000000000A00A0000A000000A0A90AB00000000000A000A00000A09009000090000009000000000000000009E9E9DEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FDFFB99DBC9BDA9990A90000909000000000000000000000000000A00A0A0A0000000000A000000ACA0A000000000000000A0A00A00000000000909000000000000000000C0909A99DADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDBF00BDBF09900F99090900009000000000000000000000000A000000C000A00A00A0000000A00B0000A0A0A00A00A00000000000000000090000000000000000000900900F0D9EFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF9FFFFFF99D9F09F9CB909AD0909090000000000000000000000000000A0000A0AE9000000CA00A00000A000000000000000000B0A0A00009000000000000000009000000000DAD9090FBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFBDBF99E9E99F9A990F09090000000000000000000000000000000A00000E0CF000A09E0B00000A00AF0000000000000000A000900090000000000000900000000090000000900B0F0DEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFF9F099BDA9C90909009A09090000000000000000000000000090A00A00BE0FA0C0E0E09A00000000A00000000000A0A00A00A00A00000000090090000000000000000000B09C90F9FBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBDFF9B0D0BDB9BDA9099090000000000000000000000000000000C0F000000E0DA9ACBCA00A000000F0000A00A00000000A00A00A00900000090000000000000000900000D09A90D0FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFBDF9C9F909C909C9AC909090000000000000000000000000000ACA0A0A0F0EA000A0A9A000A0A00A00000000000A00A000A09A09000900000009000900000000000000000C000FBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFFDBDFB0B9ADBDB9B909090000000000000000000000000000000CACBE090C00A9000A0000000A0000A900A000000000000A0000ACA00000090009000000000000000000090090909C9F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFBD90D909090DA90900909000000000000000000000000000A9E0FCE0B0ACA0A00000A0A0000A00EA000A0A0A000A0000000090A90000090C00000000000000000090000000CB0DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDBDFBF9ADBCB9909CB09000000000000000000000000000000000A0A9AECB000C00A000000A000000B0000000000000000000A0A000000000090900000000000000000000000900DAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBFBDF9F90999CA9099090900000000000000000000000000000A090CEE9A00A0A0A000A0A090A090A000A0A0000000000000000000000000000000000000900000000000009000DAFDAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFDFDF0F90DBC909DA90000000900000000000000000000000000C0ACAA9A0A00AC00000000C0A90A00E000000A000A000000000000A00000000000000900000000009009090000009DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFBF9FBDB909A900900900000000000000000000000000000CA0A000000000A00A9A09A00A9E9A00A0B00000000000000000000A0000000000000900000000000000000000009090CADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBDBDFBFDBDF0F909B00900090000000000000000000000000000CE9A00BCA0A00A0C0CA00000A0E9E900CA0000000A0000000A00000000000000090000000000000000009000900000BDAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFFFFBD9BDB09909C090009000000090000000000000000000009A0AC0A000000A00A0ACACA900EDA9A0AA000A00E090A0000000A000A00000000000000000000000900000090000090D0FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FBDFAF0F9F0B0090090000000000000000000000000000000A0C09A0A0A90A00A0AD0B000ACB0A0090B0000000AA000A000000000000000000009000000000000000000000090000ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFFF9FFFDB9D99909D90909009000000000000900000000000000000CA0E000000A00A00000AC9A090E9C9A0ACA0000A000E9000000000000A0090000000900000000000000900000000900909EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFBDBFFFBFF9F090B00000000000090090000009000000000000900B0A90A000A90A0A000AC0A000A00090B0000000AC0A000000000A00000A0000090C090909000000000000000000090DEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FF9E9F09A99AD09009000090090000000000000000000000900E0C00A00E0CA000000A00B00E0E9A0A000A0000AC0A00A000A00900A000090000000BC90C000909000000000090A90ADBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBDBDFF9F9F9DBD9090909000900000000000000000000000000000AC90A9AC0B00A000A00A09AC0ADADA0000E000A0000A9A000A900A0A900000000000090900909000000000000000909C90DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFDFFFFBDBF9F9A909CB0900009000000000900900000000000000009C9A0E0000ACAE09A00009CA00ACACA0E9A0B00000A00C00A0C0A00000A0A0000900000000000000000000000000000C0090BC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF9FBDBDBE9F9F9B090090900000000090000000900000000000000000009A000009E00E09A00CAC0E0BCB0000E0A0A00CA0A000A000A0A0000000000000C09000000900000000000090090B0C9FFFDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBCBD99090909009000009090009C0900000000000000000090B0A0A000B0E0E0B000A0CA90B0A9CA00ACBA00C000A00000000A0000000000000000090CA90000009000000000000000C0B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF9FDB0BDB909A9090090900090000000000B009090000000000000000000000A0000B0000FAD0B0CAC00CA0A0CA09E0ADA000A9A0A00000000A00A90000900009000000000000000000000009090C9F9FFDFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFBF9F9090909000090000900909000909000DA9CB0000000000009C900A0A0C0A0E00B0E0CA00E00ADA0000A90AA900A00AC000000A000A0000000909000000090909000000000000000090000090DBDBFFFFFFFFFFFFFFFFFFFFFFFFFDBFFBDBD9F9F90B00090900090000000009000090009009009000000000000A00C0A9AC00E0000FADAE0ED0ADA9A90A00E0A000A00A0A00A00B00000000CA00000000000000090000000000000000000900BCBDF9FBFDFFFFFFFFFFFFFFBFBDFBFDADBCFA9909D09900000900000090909000000000000009000000000090B00E0FCACB0F0F0BE00E09A0AECAAC0CACA0B000A00000000000E00000000A099E90090000000000000000000000000D0090A9C9BCBFFFFFFFFFFFFFFFFFFFDFFFBFDBF9F999DAD9A900090000000909000000000900900900009000000090E90CE0FA0A90E0E0E00CE90E00EDADC0EA0900E0000000A00000A000A00000090C09E9000000090C900900000000000000900C90BC9F0D9F9F9FBFFFFBFFBDFBF9F9F9BD9F0BCB09B090090000000000000900000000000000000009000090090A0A9EEDEDEA9E0F0E9A0E00AC0ACAAE90E0A09A0000A000000000A000000000A9EC90F00090000000000000000000000000000090099AD0FBFDF9F0FDB9FB0DBF9E9F9B099990900909009000000000090000000090090900000000900000009C00E0AEBA9CA9E0F0E0B0A9CACACCDAEC0AC0E0000000000000000000000A000009E900D000900900000000000000090090909C0BD0AD0BD09A9E9F9BCB9CB9099990009000000900000000000000000000000000000000000000000090090B09AC0FCBCCEF0CA0E00E00CA00ACAAAC0ABC0A9A000000000000A000000A900A0A9E900F909000000900000000000000000000009000909009AD9909009009009000000900900900090090000090000000000000900009000000000900000A9C0E09A0ACEAF0AADEDAF000AC0ECCACC0E0C0ACA000000000000000000000009000000909E90D0090009000000000090000000090090900009090009009090090090009000000000000000000000000000000009000090000000000000909C9CBCBCA0ECBCF0E9CACAC0A0F00E0BAC0AE0E0E00F0A00000000000000A00000A0000A090009E9A9A090000000000000000000000000000090000090009000000000009000000000000000000000000000000009000090E9000900000009000B09CACB090ACAEFEADEBEBCA00E0ECCAE0C9A0A0E0A0000000000000000000A0B09A0000A09C090D0D9CA909000000000000000000009009000900900900009090090000000000000000000000000000000000000000900909A9CA00900CA90D0DADEBCA0E9EEDE9EACE00E9CE0E0A0C0EA0C0C000A000000000000000000000000000000000B0DA9A009C00090000000000000000000000000000000000900000000000000000000000000000000000000000000090009000009090009090B09A0E00F0D0E0FAFEFDEB0F00E0ADACE0AC0CA0A0A0F00000000000000000A0900A00A00A0E90DA0D0D9F09AD000900000000000000000000090090009000000000000000090000000000000000000000000009009009CB000090090D090B0D090C09EFAEAE0ECEEDAEBCE00E0ACACA0E00A00000000A00000000000000A000A00000009000A00DB0F0090C9A900C09000000000000090000000000900090090000000000000000000900000000000009000000000900909090000009AD090B0E9A000EDADAF0EFAFFCEBCACADE0CACACBC0ACA0000F000000000000000000A0000000A0A0A9CB00D0DB0F90C0DA900090900000000000090000000000000000000000000000000000000900000000000000000090C9A0000000000B090B0D0D0000EEDAFECAEBCFEEFFE9E0CA0ECAC0AC0AC000A000000000000000000000000000A0000000A00DBCBCD0009B090009A0000000000000000000000000900900000000000000900000000009009000000000900F0090909000000B090E9C9A9A90ADADAEE0F0ECEFEFFACAC0E0ECA0E0E0E0A0A0000A00000000000000A00000A000000A00A0000009CB0F9D0C909C90D9000000900009000000900900000000000000900900000900000000000909000000009009A90000000D09C099A90D00A00ACACE9EACFAFEFFEFFA9E0E0A0DA00000C0000009A0000000000000000000000000000000A9A0E9AD90E9B0F090DA0DA09000000000900000000000909C0090090C000009C00009000900900000000000D0090D0900090B00009BC0DADAD00000E0F0E0E0ECAFEFFEFCA0E0E9E0CACA0A0A00A00E00000000000000000A00000000000000000090DADB9E0D0DAFA9DA99000000009000900000000900090900000009C9000B0000090000000000090900A090B000090C0090B9009B090E0A0CA09E0E0E9E0EFEFFEFE9E00E0E00A0000C0000000000000000000000000000000000000000A0A0ACAD09C9DB0F9C9DA9D000900009009000000090C00C909A0090909000090009A09C000009090900000909AD0900B00090000CB9F09CF009E90CEACAF0E0FECFFEFE9E00E0000E00A00A00AC0A0B000000000000000A00000000000000A000000090BCB0F0D9E9B09CBCB00900000F090090000009A90A0D0900000A09C090D090009009000000000000D09000900090090DB9C909CA0F0E0E0B0CBC0E0E0FEEFFFFEBCA0A0E0000C0000000000E000A00000000A000A0A000A0000000000A0B0A0009C90F090C9E90090D000000009C90C0900900009C909E9090D090900000C9000000009000090090B0090009090900B0DBB0BC9CACADA9E0E0EACADACADEFEFFEDAC0C00A0A00A00A00A000B0A0000000000000000000000000000000000000E0B0F90F0F9090C9CB090900D09A9A90900000900C0B0090F0909E9E9D0B090A90900900090900F090DB090F000A09F0F0D0D090ACBCACE0F0F0CBCACAEEFEFFEDA0A0A000000000A00C00A0A000000A0000A00A00A00A0000000000A0ADA0B0900D00F9F9CBCB9A909AC009A0C9C900090090009090C9CF0D0AD0909A0090C90CA000009E9E0909F090009009C9DB099B09A9A09E0E0E9E0E0EAC0E0EDEFFEFFEAD0C00AC00E00C000A00C0F0000A000A00000000000000000000000000000A0EB0BD0C9A909D0D09C90900090B0F9B0090C090000909A99AD9090F099D0A9009090F0D0909F9F00B0090009A90BC9E9CB090CAC0ACBCACBCAD0EACBCAFEFFEFBC0A0A000A000A0AC00A0A00A0A0000000A0A0000A0A0B0A00A0A0000A0A0A000C9CB9BCDE9E0B0DA9CB09C9AD0D0C9D0A990090900F0D0E90F0F090E0090090090090BCBD090990090A9090DBD0B90F9CBCB09ACF0EACACACAC00E0ACAFEFFEFEF0C0CA000A0000A00C000F00000A0A0A00000A000000000000000A00000D0F0B0A0D0B99F99C9AD0A90CB0D09A9BCBBD00B0C9E9F09A909E909DAD99009000900B9C990B9E9A0D909D0FBDB0A9D0F9E0DA0CACA0E0CBCADACADA0ACEDEFFEFF00A0A000E00CA0000A000AA000A000900000A00000A00A00A00000000BCA0A0AC00F0BDADE9E9AD9A9D090D0B00DCB9C90F0D9E90090D09E9DBDA9900AD090F009C0B9AD9C9ADDBADB0F9C90D9F0BCBCBAC9EAD0ECBACA0E0A0A0C0CAEFFEFFE9E0C00A000A000CA000A009A00000A000A000000A00A00000000A00A000DA9000B00E9ADB9FBD9A0D00BCB090D0B0CF9AD99A09F9BC900090A0BDE9F990F090DB09BCBDA0BD99AD90DB90B0F0F0F90DA0DAE0CAF0ACCACA00D0CA0A0CFEFFFEBE0A0E0C0A0000A000A0C00E00000000A000A00A00090000000000000ACAC0E9A0CA900F0E9C9BC990F909DADA09C9B0F9AC9DF09C9ADB09C99C099A9E990DA90DBC99C9D90BCB9ADB0DA9DB9F9F0FA0FE0CAF0CAC0A000DA0A00000A0EFEFFFEDAC00A000CA0000AC000A09A0000000000000A00A0A0A000000A00A9009A90000000A00090B0CB0E900C0E909CA90C90D99E90F0BD9ADBC9A090009C9000B9CBBC9BCB0BCBDB0D9BCB99CB0E9E0F09E00FACCAAC0BCACA00000A00C0E9EFFEFFADA0E00A0A00E00000A000A0000A00A0A0A00000000000000A090A0000A0A0A0A0A0009A0A00B0D99CB909C9E99009ADA9E9E909D0AD9C9B0D09E900B0909009C9BCB9DF9BCBDBEDBDBCB0ADACBC9EB0EAC0A0D0AC09000ACA000A0ACEFEFFFACAC000AC000000CA0AC0A0E00000000C0000A000A000000000CA0900A0000090000A0A000000000CA90AD0B09A0D0C909C909C90AD9B0B9C90B00DBD09A9CB00B0F90FA9EDBDA99A9A9A9ADA0F0BAC0E9C0BC0AE0A0A0E00000AC00CBEFFFFEFF0ACA0000E0A0A000000009A0000A0A9A00000A000A0E9000000E0A000000A0A0000000A000A00A90C900D0D0D09A909A9CB09E900C09CA909090009AD9009D00D0FD9F9BCB9DB0DB0DA0F0F0ADCBAF0E0E0AC009C00000A00C00A00CEEFEFFE9E900E0A000C00A0A00A00E00A00C90000A00000000000A00A0B090000A000000A00A0A00A00000CA90C9A9A90BC90F0D0BD0F90F9B9090DAD0090DADB0990B9DBF9AF0F9BDA9ADA0FA9F0B0F9ABC0CADA00CB0E0A0A0A000A0A000ACAFFFFEFE0CA00000A0A000C0CA0CE90000A0A00A00000000000B000000C0A00A000A0A00000000000000A0A909A90DC9C00BC990AD0BD0F90C0F0DA90ADE9099CBFCBC9E9CBD9FDADA90F0BDB0FA9EDA0EC0EACA0F0A0000000C00E000000E0EFFFEFFEB0ACA0ACA0000A0A0A0FE0A9000090A0000A000000A00A000A9A000000000000A00A0A90A00000D0CE09C9A9A90900CADD9EDAD0F9BD0F0DE9D09E9CA9C9BDBF9FF9EF0BDB9EB0BCBEBCBE9ACF0AE09AC0AC0ACA0E0A0A000A0CA000CEEFFFFFCE00C0000C0AC0C0ECE0FEEA0A0A0000000000000000000000009A0000000000000090E00A00A0A0A9E0AD0E90F090900ADBCBFBDADAD9F0DA9F0F9FDB0F0F09E9BF99FDACB9E9EB0BCBCADA0EC90E00BC0B00000000000A00A00A0A0FEFFEFCBDA0A0A00A00ACAE9EFEEFB000900A00A0000A00000B0A00000A000A00A00A000000AC0BC90A0000F0AD0A090F0DADCFF90DBC9CAD9F9E9FBDF0BCF0BCF990DF9F090F0ADBE0BA0FADA09E0CB0AAC9AC0A0C0A0A00ACA0000C0000C0EEFFFFFBEACAC0C0A0CACACFEFEFFFC00A0A0000000A000A00A00000A0A0000000000000000AC0BE0A00000A00F0A900E0CBCBA909E9E90B99A9EBDBC9A9DBDBDF99ADB9A909E9ADB00B0DB090A9E0EB0E9C0A00A000A0000E0000CA0A00A00ACFEFEFFEF0900A0ACEBCFEFFEFFFFEBE000000000A0000000000000000090A009000000A0A009AC090A00A00A0000CA009A0B0D0F0909B90DADB9DADBF9CBCBCB9FFDBCBDADA9ADACEBCBACB0ADA0B0CB00A90E00DA00C0A00000A0000A0CA0CAEFFFFFF00E0E0ECBCEEFEFEFEFEFF0B0B0A00A0000A0A0DA0A000000000000A0A000000000000B0A000009000A0B009A0000A000A0E00C90900909E9CBF9BDBDA09EFBCB0FBCB09A9CBC9A0F00F0CB0CB00E00B000A0A00A00A00A000C0000ACFEFFFEFFE0E9E9EEFFEFFFFFFFFEFBC000000000A00900A0000A000000A00900000A00090A0A0C000A0BCA00B0000A000A0000B09090B0A0009E0B09B09E9E9A9FA9ADBCFBCBCBE9EFEBE9EBFFBFBFFBE9A90AC0A0C0000C0AC00C0A0A0A00CBCFFFFFFACBCEEEFFEFFFEFEFFEFFFE0A0A0A00A0000A0BC0B0000000A000CA0000000A0A00C00A0A9C0000CAC0CB0000000A0A000A0A0090A9A09C0E00F0B0BCB09BCBEFBFBFBF9EFADADBFFFFFFFFFFB9A0A00A000A0A0A000A0A000000CA0EEFEFFEFEFEEFFFFEFEFEFFFFEFFEFB00090000000A0000A000000000000B000A000000000B0A09000A0A0A09A9A0E9A00000090A090000A00000A0B0BCADADABCBACBFBFFFFFFBFBDFEFEFFFFFFFFFFFFF90CA90CA000C000A0000A0AC0A00E0FFFEFFFFEFFEFEFFFFFFFFEFFFFFFCB0A0A9A00A00000000A0A00A00A0000B009A0000000009A0A0000D0DAC0E900009A09A00090A00B00A0A090E0F0B0B0BCB009ADFFFFFFFFFFFAFCBFFFFFFFFFFFFFBFA90A000B0A0A0C00E00C00A000E0EEFFFFFFEFEFFFFEFFEFFEFFFEFEFFF0A000000B00A0A00A9000000000CACA00A000A00A0A0000000A0A0AA0B000E9A0000000A0A09000009090E09A0ADAF0FB0B9EBAFFFFFFFFFFFFFFEFFFFFFFFFFFFFF9A0AC0B0C00000A0A00A0A000E0BCEFEFFFFFFFFFEFFFFEFFEFFFEFFFEBA009A000A0000000000A000A0000A0B0CADA000000900A000B0090C9C90A9A9000A00A090090A0000A0E0A90AC9F0F0BBCBDABDFFBFFFFFFBFFFFAFFFFFFFFFFFFFFBA9C90A00A00A0A00C0A000C0E0ECEFFFFFFEFEFEFFFEFFFFFFFFEBFACBCF0A000A0000A0000A0000A0000A0D0CA900DA0000000000A000ACA0A0A0000A0A90090A0BCA00A0A000090A909A0B0BE9BEBDAFBFFFFFBFFFFBFEF0F9FBFFFFFFFFFF9A0A00E00A00C000A00CACAF0FEFFFEFFFFFFFFFFEFFFEFEFEFAFCCFACAA900A000A0000A0000B00000A000A0900A000B000A0A000000A0900000B00000C0A00000009E090000B0AD0A0A9CAD0BE9FBFF9E9FBFBFBFBFFFFFFAFBFBFFFFFFFFBE900E90A00E0A0E00E0ACBCEEFFEFFFFFFFFFFFEFFFEFFFFEFADABA0000F0A0000000A000000000000B000A00A0A90A000A0000000A0A9CA0B0B000A0A00A00A00B0A009A0A0A0CB0A9000A9ABDBFFFBFBFBFBFFFFBFBFFEFECBCBFFFFFFFFFB9A0B0A00DA000000E9ECFEFFFEFFFEFFFFFFFEFFFEFFFEAF0BCAC0C0E0AA0000A0A0000000A0A00A0000000000000009009000A0B00000A000000A00900A90909000900A000900B09000A900FDAFBFBFBFFFFFFBFBFFFFEFF0BFBFFFFFFFFFFBCB0C00CA0090E9EE9EEFEFEFEFFEFFFEFFFFFFFBEFFECAF00E000A0A00CF00A0000A000A00000000ACA0B00A000000A00A0000000A9A0A9A9A0A000ACA900A0A0A0A0A90A9A0A000A9A900B9ABFFFFFFFBFFBFBFBFBFBFFFEFDAFFBFFFFFFFFA900A0A90AE0E0E0FEFFFFFFFFFFFEFFFFFFFFEFEFACABC0EA0E0AC0CACA0B000A0000A0000009000090000000A00A0000009A000000000000000A90000E00000009000A0000090A0900E9E0E9FBFFBFBFFBFFFFFFFFFFFFFBEBF0FFFFFFFFFFBF0B0D0AC90E9EFFEFEFEFFEFFEFFFFFFFFFFFFEF0FAC0A00C00C0ACACACF0A0A0A0A00000A0A0A0A0A0A0A0A0000000A0A0A000A0A0A0A0A0A0B0A0B0B0B0B0B0B0A9A0B0A9A0A90A0F9BB9BFFFFFFFFFFFFBFBFBFBFBFFEFFCBFBFFFFFFFFFF0B0E0ADAEEFEFEFFFFFFFFFFEFFEFEFFFFFFFE9EE0E0E0E0A0E0E0E0ECAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000A9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFBFFFFFFFFFFB9ACBCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE0E0E0E0E0E0E0E0E0A000000000000000000000010500000000000070AD05FE,'Robert King served in the Peace Corps and traveled extensively before completing his degree in English at the University of Michigan in 1992, the year he joined the company. After completing a course entitled "Selling in Europe," he was transferred to the London office in March 1993.',5,'http://accweb/emmployees/davolio.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(8,'Callahan','Laura','Inside Sales Coordinator','Ms.','01/09/1958','03/05/1994','4726 - 11th Ave. N.E.','Seattle','WA','98105','USA','(206) 555-1189','2344',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D16540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00F00900000000000009090FB0000900000090000000909BFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0009C90C0F9E9BE000090009000D09009009000000000000000B0900000000900000FF009CD00000009000090900000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B0D0900909E9FC9000900900FBFA90000000090000909000000D00B0000000000009000009B00000000090900000909BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0900B00009E9E09000900F9DFFFF090009000090000090090B09090000000000009F00000F0000009000009000000BFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AC90009009090C9000099E00D0FFFE900000000090009000F000000000000000009E90090F00000090090900009C9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00900000000900900009F00090909ED009090900000090090000090000000000009E0009F0000000000000909E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFF90D00909090909000900BC90900009BDA90000000000BEFFE00000000000000000090F09A0009000090000900090BFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFCBBF00000000000090009FE00000000FFC000900909DFBD0B0000000000000000000099ED00009000090009F00009BFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFC9F000000909000000099E00000090B0090090000BFC00D00000000909A00000000009000000000000900BF009ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFBFFFFFFFFFFF9E9FF90000009090090009BD0B0909C900000090900900B00000000000900000000000009000090000000900009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFBFFFFFFFFF09F0009000900000000000FBC9000A00909000009F000F0000000090000900000000000000000000900009F009EFBFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFFEFFFFF0F009000000900000000090DAFDBD0900009009FE000900000000009000900000000000000000000009090FC9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBDFBFFFFFBFFFFFFF0000000000000000009000090000000000000090000F000000000000000900000000000000000000000090009FFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFBFFFFFFFFFFFF090909090090000000000009000900090000000000B0090000000009000A0000000000000000F00009000900BFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBFFBFDFFFDFBFFBFFFF00000000000000009090090000900000009BF00990F00000000090000909000000000000000900F9E0009009FDFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFCBDFFBDBFFFDFFFBFFC000900900000000000000000900090009CFC9FF0EB09090000000900000000000000000009009009A000009BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFBFFFEBFFFFDFFFFFD0009009090DBDB00000000000000090FBFFADAD0F90009A00900009090900000000000000F00090D9000000FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBFFFBFDFF9FFFDBFBFFFEF9EB00000000F0FADFBCBC90000090000BCFFCF0F00F0090090900909000000000000000000090000000009009BFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFFBFFFFFFFFFFFFBFBFFD000900099A9DF0FFFFBCF000000090BD0B09000B09A90900090A090900000000000000009E00009000009AFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAFFFFFFFFFFF9FBDBFBDFBDFDFBCBA000099FEDFE09F0D0FFBC00000900D0A9C0000F0BDA09A9000900009000000000000000099E000B0090099FDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9AFDBFFBDBFEFFFFCFBDFAFBCFFDFD00000FFF0F9C009E09CBC00009E9AFD000000F900D009C09009000090900900000000000090000000000BFBFBFBFFFFFFFFFFDFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDBEF9FFEF9F9F9FBDFADF9FBDBEBFE909009BD009B0F9FE9F0900009C900000000B09F0090B900000900000000000000000000090990000009FFFFFFFFFFFFFFBFFBFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBFFFFBFF9F099EB9F9FBCBE9FABDBFEFFEFFDFBC00090FE9AFEF9E09F000000000000000000F0900B09000090000009090000009000000000000000009FF9FBFFFDFBFFBDFCBFFFBFFF0FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFEFFFFBE90FDFADBF9F9FDFCBFDBF9FBFFF00000090DBDFFED00000000000000000000B0B909F090B000000000000000000A90000000000009000BFFFDBFFBFDBDFBFBFDBFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFBFFDFBDBE9F9F9B0BDFF0FBEFAFBDBFDFFFFFEFF0009000000909090090000000000000000F9CB00BFC90900900000909009009C0900000000000000099FAFF9FF0FAB0F9FBEF9FFFDBFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFBFFFFFFFFEFCB0B9FBDF9FDBFFEBFAFFFBDBFF000900090000000000000000000009000F09099E90B00900000000000900909ADA900000000000090BFDB9E90B9D9F9ADBDBFFFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFBFFFFBFFBFF9FADBDBDBCBCFBAFBBE9F9FFDFBCFFFFFF90000000000000000000000000000000B0A9E099E9C090B090000090009000900000000000000000909BC99BCDBEBFFFFFFFFADFFFFFFFFFFFFFFFFFFBFFFBFFFFFFFFFFFFFFFBFFFBFFCFBFFFFDFBFFDBFFFAF90B9FFDFFDFFFFBFFFFFFFBDAC0000000000000000000000000000000F9090B0090B0009A000000009000C000900000000000000000009AE9BBF9FDBFBFBFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBFFDFFFDFFBDFBDBFAFDEBFFBCBDEBD9E9FBCBFBFADFFBFFFBFEFF909F0000000000000000000000000090FC909C900909000909009090000B9090C0900000000000000000999E9CBFAFDFDFFFFDBFFFFFFFFFFFFFFFFFFFFBFF9FFFBFFFFFFFFFBFF0FFBFFBFFFEDFBFDFADFBDBDBEF9F0FFF0FDFFBFCFBDEDBDAF009F9F9000000000000000000000000FB09A90A90000900900900009090000A9000000000000000000000B9FBDBDBFBFBFFDBFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBDFEFBFFBDFADF9FBFBDFBFDBEDAFBCBDAFBF9FFFBF9EDBFFFBFFFF9F000000090000000000000000000000B0F0900900B0900000B009090B00090900000090000000000900099CBCBDBFADFFFFBFFFFFFFFFFFFFFFFFFFFFFDFBFBF9FDFBFFFFFF9FFF9FFBDFBEFF9FEBE9BE9BF9CBFBF9F0FADBCBFFBFFF0FF0F9E0000000000000000000000000000090F09F0A90090000090909E0000000000000900000000000000000000B9BDAF9FFBFBFFFFFFFFFFFFFFFFFFFFFFFFBFFDFFFFBFFDBDFBFF9FBFF0FFBDBDBE9FDFFDBFF0FBF9E9EDBDBFFFDBDFE9FFDBFBC9FA00000000000000000000000000000F90BD9E9009000000000909090909000900000009000000000000090E9BDBF9FFFDF9FBFFFFFFFFFFFFFFFFFFFFFBFFBDFFFFBFFBFCBFFDF0FF9EFADBDBFBB9AF9ADBCBCBDBBEBF09BFAFBDBF0FAD0FBC9D09000000000000000000000009000B090B0909A009000909009A0000000090009000000000000000000099ADADAFBDBFABFFFFFFFFFFFFFFFFFFFFBFDFF9FFB9F9FFFFFBFDABFFBDFB9FBEBDADEFDBEDF0BDBFADF9F0F0F0FDEFF9FBDBF09B0A90000000000000000000000000000F00B0DA9090000000009000090090000000000000000009000000009ADB9BDBCBEDBDFFFFFFFFFFFFFFFFFFFFFFFFBFFE9FEFF9FF9FDBFFCBDAF9FE9F9E9FB9BADB0BDADADBDAFF9F9FFB9B0F9E9F0DBC0900000000000000000000000000000F09CB09AD0B00000000090900900000000009000000090009000000090F9E9FBDBF0BFBFFFFFFFFFFFFFFFFFFFFBFCF9FFDBDBF9FFBFE9FBFBF9EB9F0F9FADEFDBCBCB9F9FABDB0FAF0BDEFF0F9E0B00B9000000000000000000000000000090BE9009090909009000000009009009000000000000000E00009000009B0F9B0FBDBDBDFFBFFFFFFFFFFFFFFFFFFFFBFFBFFFBCBE9FE9FF0DBCBDBDE9FADB9B9BCB9DBCB0F9FDADBDB9F0A90F9ADBC9F000000000000000000000000000000000F90B00F0B0C00900900900900900B09000000900000909000000000000DBC9F9CBF0BFBFFFBFFFFFFFFFFFFFFFFDFFFBFCBDFFFDFB9FB9FBDBFADA9F0DBCFCFCBDAA99ADBE9ADBCBCF099FBBCB099A0900000000000000000000000000000000B0F09B0909B09000000009000009000090000000009000000000900009BA9FADBF09EBDFBFFFFFFFFFFFFFFFFFFFBF9FDBFEBF9FBDFF0FF9E9E9F9F0FB0F9B0BB0F9DADBC9BDBE9F9B9E009C90DA009000000000000000000000000009000000F09BC09A900900900900009A000009B0000000900000909000090F00090DA99ABCB9BEBDFFFFFFFFFFFFFFFFFBFFFFFEBF9BDFF0FBCBFDAF9F9F9ADF09F9ADBC9F09A9A9BADA9DA9E9E9900BCB00900000000000000000000000000000000900F009B09C0B00B0000009000090000009000000000000000090009000009BDAD9DBC9D9FADFBFFFFFFFFFFFFFFFFFDBFDFCFFADBFDFBDBF9FADB0F9A9F0BD9ADBE9F0D0D09DADA9F9B09ACB090090000000000000000000000000000000000000F09A0F099090D0900000090900090090B00000090000000000000900000009A0B0B0BF9FBFFFFBFFFFFFFFFFFFFBFFFBFBF9FBDBF0FBE9FBDBCBDADB0F0BE9F09B0B0B0BDA9BBCBC0F0D90009000000000000000000000000000000000900000B00D990B0009A000009090000900000000000000000000000000000000099B9F9F09ADBFBDBFFFFFFFFFFFFFFFFFFF0FDF0FBCBE9FBD9F0DADBDADB0F9BC9DA9E9E9C9BDA90D0990B909A0000000000000000000000000000000000000000000F09A0A090B00900000000909000000909000000090000000000000000000000909E9DAF9FEFBFFFFFFFFFFFFFFFDBFFFA9F0DBF9FBDBEBFBF0F0B0DB0D0B0B0F9A90B0009CB0F0A9C0B009000000000000000000000000000000000000090000FB09909E9C900900009000000000000009090000000000000000000000000900B090BDBE9BFFFFFFFFFFFFFFFFFFF9FFDFBFBCBDE9E9F9CF9F9F9FADB0F9E9F0D9F099F0B09909D0B00900000000000000000000000000000000000000000000F00009A90B0B000009009000900000000000000000000000000000000000000909A09AD9FF9FBFFFFFFFFFFFFFBEFFF0FADBCBDA9BFBCBB9E9A9E99B0F09B90BAB0BCA09C9ACB0A9090000000000000000000000000000000000000000000000F99E909DA9000900000B0000009009009090009000000000000000000000000009090BDBE9FFFFFFFFFFFFFFFFFF9E9F9DBCB9EBDF0DBFDE9F9F90F0DADBC0F0D0D00990A9090090000000000000000000000000000000900000000009090009BE09A9A0DAD900000900990000000000000900000900000000000000000000000000090B9FBFFFFFFFFFFFFFFFFFFFFBFADB0F9DA9FAD0B9F0DA9F0B90B09B09B0B090AD909A9009000000000000000000000000000000000900000000009000F9F0909B09AB000000900A900000009000000000000000000000000000000000000090BCBCBFBFFFFFFFFFFFFFFBDBDADFADF0B9F0DBF9E9FBADA9F0F9CB0DB0DAD9A9000B000900000000000000000000000000000000090000000000000000F0B0F0000F9C900000090900900000000090900000000000000000000000000000000009B9FDFFFFFFFFFFFFFFFEFEBDB0DB0FAD0BA90FDB0D9BF09B0B99E9ADA90AD09B00090000000000000000000000000000000000000000000900090000B00F90B0B90B0000099AD0000000090900000000090000000000000000000000000000090FFBFFFFFFFFFFFFFFDBDBDB0FB0F9D0F0D9F0B0DBAD0DBCBC0E909090F9000009000000000000000000000000000000000000090900000000000000F909A9090CBC90000000B0909009000000090900000000000000000000000000000000009A9FFFFFFFFFFFFFFFFFBF09F0DB0B0B9B0B0BDBAD0B9A9B09B9BCBCB0000B0900900000000000000000000000000000000000000000000000900000FA9ADA90B9A9A9000090000000000090900000000000000000000000000000000000000009FBFFFFFFFFFFFFFFBDE9FE9B0DBCB0F09C909C9BD0F9C9E9C90909C9B9900090000000000000000000000000000000000009090000000000090000F0009ADA009C900B00009A90090009000000090900900000000000000000000000000000009FFFFFFFFFFFFFFFFFBF09BC9A990D09E9ADA9A9A90B0B9A9ADA9A9AC0009000000000000000000000000000000000000000000000009009000000B09BBD0909A9AC909000090000000009000090000000000000000000000000000000000009BFFFFFFFFFFFFFBEBDBC9BC9AD0E9A9A909B09D0D0BCB9C9AD09C90909A90000000000000000000000000000000000000009000000900000000000F000CBFAD00C9B090A0900000090009A000000900000000000000000000000000000000000BFFFFFFFFFFFDFD9FADBF0B90B990D0D0BC0DA0B0F09CB0F9A9A90F090000000000000000000000000000000000000000000000000000009090000F9A9090B0B0B00F099000000000090090900000090000000000000000000000000000000009FFFFFFFFBD9A9E90D090D0BD0A9A90B099A99C909B090B0D09CB090A9090000000000000000000000000000000000000000000000000000000000F090B0BDBC90090BC009000000000090900000900090000000000000000000000000000009BFFFFFF9FCBFDB9BDB9B0B9C0BD090B0DA090A9A90C9AD90B0B09CB0D0000000000000000000000000000000000000000000000000000009000000B0AF0D0BCB9A90BCB090090000000900A90000000000000000000000000000000000000000BFFFFDFBDBFCB9EDB0FC99CB9900BC90909CB900DA9B090F09C9A90900090000000000000000000000000000000000000000000000009090000090F9090B0F9BC900090F00000000090000909000000000000000000000000000000000000009FFFFFBFFFDBFFFB0FDB9FA90BCB909A90B0900DB090C9E90F0BC90B00B000000000000000000000000000000000000000000000900000000000000FA90BCB0F0BE909A9A9F000000000909000B00090900000000000000000000000000000000BFFFFFDFFFF9FFDFBFE99F9F090CB0DA9CB09A09A9B090B09909A9C900900000000000000000000000000000000000000000000000000900000900F9E0909E9F99AD090DA9090000000000090009000000000000000000000000000000000009BFFFFFBFBDFFF9FBDF9FE9F09E9B090909090900D009A9C9ACB0D0B090000000000000000000000000000000000000000000000000000000090000F09B00A99A9E9B0CB09E900000000000900090000000000000000000000000000000000009FFFFFFFFFFBDBFFFFBFF9FA9F9BC9B0A9A90F09A90F090B90990B09000900000000000000000000000000000000000000000000000090000000009BAC0909ACBE9FCB90A90B09090000000009000909000000000000000000000000000000009FFFFFFFFFFFFFFF9FEDBFDFF0F0BC0D90D0909090090F90CB0E9090E90000000000000000000000000000000000000000000000000000000090900F9B0AD09099A9BCB9C009CA00000000000090000009000000000000000000000000000000BFFFFFFFFFFFFDFFFF9FDAF9FBDF9B9A90B0A9E90B09000B09909E09009000000000000000000000000000000000000000000000000000000000090F0AD90A0B0ADBCB0F9A90B90900000000090009000000000000000000000000000000000BFFFFFFFFFFFFFFBFFBFFBFDBFDA9E9E90F09D0900D00B09090A0909B09A000000000000000000000000000000000000000000000000000000900000B0990A9D009BCB9F00909000000000000009B00000000000000000000000000000000009FFFFFFFFFFFFFFFFDFDF9F9BFCBFDBDB0F909A09A9009090DA0D9A090C09000000000000000000000000000000000000000000000000000000009090F00AC90A9F00BCB09B09E90900090000000009000900000000000000000000000000009BFFFFFFFFFFFFFFFFFBFBFEFDFBDFADBCB00F09B9C90B009A099A09F00900000000000000000000000000000000000000000000000000000000000009AB099A900BD09ADAD0F090000000000000000000000000000000000000000000000000BFFFFFFFFFFFFFFFDBFDEDBDBE9FB9FBCBDBB0F0C0B0909E09000900090A90900000000000000000000000000000000000000000000090000000090900F0A0A09A90A909B9A909A090000000000000009000000000000000000000000000000BFFFFFFFFFFFFFFFBFFDBF9FBDB9EDFBCBDAD0D0B9B0DBC90909A9CB09A090000000000000000000000000000000000000000000000000000009000009BB00909E9E99F0F0E90F09000000000000000000000000000000000000000000000009BFFFFFFFFFFFBDBDFBDAF9FAD9EDB9A9F9E9ADBBDAC9A09A90A09000900D009000000000000000000000000000000000000000000000900009000909A9CF0A0B0009A00B099F00B0000009000000000000000000000000000000000000000009FFFFFFFFFFFFFFFADF9F9E9DA9B0ADBD0F9BDB0DA9BC9B0909090909E0909A000000000000000000000000000000000000000000000000000000000990BB0090B9A09A9CBE09B0D000000090000000000000000000000000000000000000009FFFFFFFFFFFFBDF9F9BE9F9EBDAD9B0DA9AD0BCBBDE9B0DADA9C000B090A0090900000000000000000000000000000000000000000000000000900000AD0F00A00ADA0D0B09BC9DA90000000000000000000009000000000000000000000009BFFFFFFFFFFFFFEBF9F0DB099099A9C9B0D9A9DB0DA9F0DA9090B09000090900000000000000000000000000000000000000000000000000000000000B09BA0009A99090A9CBCB0A90000009090000000000000000000000000000000000000BFFBFFFFFFFFFFDBD0DADB09F0F9AD09BCB9A9CBADB9F09A909E9090090900000900000000000000000000000000000000000000000000000000900090D0BCF0A0A9AA9A09A9A90F900000000000090000000000000000000000000000000009FFFFFFFFFFFFFBFDBFB990F0909C90F09090D0B9DADADFF90F09E9090000A90B000000000000000000000000000000000000000000000000000009000B0B09B009009AD0BC09CB90BD000000000900000000090000000000000000000000000BBFFFBFFFFFFFDFBC90DAD990F90B090BCBCB090E99B9A9DA909A90F09A090000909000000000000000000000000000000000000000000000000000009090F0B00A0A0B0BC9A9A9E9CB000000909000090000000000000000000000000000009FFFFFFFFFFFFFF9DB9F9DBCF99090DAD09090DA990F0F9FADA9AD0B9000900090000000000000000000000000000000000000000000000000000909009ADB00E000090B000B009E9AB900000000009000090090000000000000000000000009FFFDFBFFFFFFDF9FBDFFDBFDBDADA9099A9BC9B0D0B0B9EBDB9C90BCA90900090090000000000000000000000000000000000000000000000000000A0B090009B0000A90BB00DA09BD0E9000000090090000000000000000000000000000000BBFFBFDFFFFFFBFFDFFDBFFDBDBD9DB9009C9A9C9AD09C99FADA9A9099CB009000009000000000000000000000000000000000000000000000000009090F0090BB00A00A000B0A9F00B99A0000000090A0000009000000000000000000000009FFFFFBFBFFFFFFFFFDBC9009090B09CBDB0909A909A9A9ADBDBD0D0BCB0090009000000000000000000000000000000000000000000000000000000090909A090F0A00A9A9A099009F0FAD09000000009090009A00000000000000000000009FFFFF9E9FFFFFFFDBCB09BD9A9AD09E9090DAD090F09C90909BFAB0BC90DB0E90009000900000000000000000000000000000000000000000000000900F00090CBA0000000A09A0E9B0B0909000900009000000000000000000000000000000BFFBF9F9FFFFFFFDBC99FFFFADFF9E909009099ADB09A9ADA9BCF9D090B0B00900000000000000000000000000000000000000000000000000000000009090B09B0B00A00B00B0B09ACBDE9A9E90000000090000909000000000000000000009FBFFDA9BFBFFFBD9BFFFFFFFFFFEFF0F090A900900F0D090909B9EB0F09C90909090009000000000000000000000000000000000000000000000000909A0000000BF0000A0A0000B09B0B9C909A900900000090000000000000000000000000BFFFFBDA9FFFFFD0BFFFFFFFFFFFFFF9BFAD9AD00990B0F0BC9ADBDF90B0B0DA9A009000000000000000000000000000000000000000000000000000090909090900B000A0900A0B0B00F9E90B09C09000000900009900000000000000000009FFBF0F99FFFFF00BFFFFFFFFF9EBFF0BCFDA9F009000909909AD0BEB0F0909A90C90000000000000000000000000000000000000000000000000000000B0000A009AA000000A00000BCB9E9A90C9A90000000000000A0000000000000000009FFFFFF90BF9A9909FFFFFF9F009BDB0F0FBA9CB09AD00909E9A90BDB9D0BDA9090909A900000000000000000000000000000000000000000000000000090009090BA9F0A00A000A0B00B00B09A9B09A000000000900990000000000000000009BFDF990BDFFDF09BFFF9E9E99D000090909C0B0F009A000090DA99ADFA990DA9E9A0000000000000000000000000000000000000000000000000000009A900000009AB00000B00000A90F90F0D09A9D9000000000000E909000000000000000BFFBFE9A9B090900F9F9F9F9E9BD9B0CB090900909009090090090F9B0F00B0909090900900000000000000000000000000000000000000000000000090009009000B0F0000B0000000A9A0B09A9E9E0A9000000000009000000000000000009FFFF0909D09A909B9F9F9F9F9FCB0D99090B09909090000000090B00DFBDBC9ADA9CB00900000000000000000000000000000000000000000000000000090000009BCBB00A000A000A9A9AD09E9F90999C09000009009A90900000000000009FFF90B9F9A9FDFBFFFFFFFFFFFFBFDBF0BDA9CB0A90AD909090909909B90009A9090900900000000000000000000000000000000000000000000000009000000900B0A0A0000A00A00000B0BDA90ADB00A900000000000000000000000000000BFBE9090F9FFBFFFFFFFFFFFBFFDBF09F09DA9BD9E99A09A9A9A9ACB09E9B9AD09A9A09A0000000000000000000000000000000000000000000000090009000009009A9F00000B0000A00A00BCBD9ADBD00B0900009090909000000000000009FDF9900B0FADFFFFFFFFFFBDF9FBCBF09F0BDADA99E9DA9C90D099090B9C0D90B09C90D090900000000000000000000000000000000000000000000000000000009A00AB00A0000A000000B0B9A9ADA9A9009A0000000000000000000000000BFFBBCB099BDBFBFFFFFFBFFFAF9FBD09A0909909F09A99E9A9A90090900B9A0F09A990A90000000000000000000000000000000000000000000000000090000090A0B09F0000A9A0000A0B009ADADA9AD09000000090009090000000000000BFFDBC9909BCBFFFFFFFFFFFDBD9F0D0B9C99ADA9F09AD0F090D09E9B09E9900990D09A09009000000000000000000000000000000000000000000900000000090BC9000AA000000000000000B0DBDB0D09E9E909000000000000000000000099FBFDBF0BC099BDBFBFFFFDFBCA909A9009AC909B0BD0B90B0B0B0990F90B0F9E0B0B0C909A000000000000000000000000000000000000000000000000000900009A9AB0B0A000A000A00B000000BCBADA909A0090000000009000000000000BFFFBDBD9B9A9FADFFFFFFF9F99E09009A99A9B0C9CBD0F0D9C90B0FB0BD0909900909B00C90909000000000000000000000000000000000000000000000000009000A90BF0000A90000000000A9B0BD0B09E909000000000090000000000009FFFFFFFBF09D09FFBDFFFFBE9F099009000090C9B9A9A99B0B9BD9F90D0B9E9A0BDA9009A90000000000000000000000000000000000000000000000000009009ADA90A00B000000A0000A0A00900FF0B0DA90F000000000000000000000009BFFFBFDBD0DBA9BF9FFFFF9FDBE9B00900909009BC0DBD0F09CBC9E90F9BDA909D9009E9090A9000000000000000000000000000000000000000000000009000900900B0FBA0A00B000000000A00A90B9E9A9E90B00000000009090000000000FFFFFFFFBFBD9E99FBFFFFFBFDF9C9BC9B09C9B009B09A90F9BDBFBDB9E90DADB0A9B09A90900900000000000000000000000000000000000000000000000090A90A0B0B0AF00000A000000000009A9CBDAD09AD090000000000000000000009BFFFFFBDFDBE99F0BDBFFFFFFBFFBC9B0DA9A090909F09F90F0F99CBCB9F9B90D9C0D0900F0900090000000909000000000000000000000000000000000009009090B00AB9B0000A0000000A00B0A9A90B9A9E90BC000000000009000000000BFFFFFFFFBFF9FE9BDBFFFFFFFFDBCBD0F09D9F0F09A09E90FBDBEFBDBDA9E9E9A9B9A9A90900B0900009009E9ADA0000000000000000000000000000000000A900AB0A900EA0000900000000000A0B09E9E9F09A900000000000900000000009FFFFFFBFFF9FF9BCBDFFFFFFFFBFDB0B09F0B099009DB9BFBDBF9BDB0F9F9B9F9AD0D09C9009000009000B0909090000000000000000000000000000000090909A9009A9ABF0A0A0A00000000A09000A90BCBCBD09000000000000909000000FFFFFFFFF9FFF9FDBFBFFFFFFFFDFADF9DB0BC9E0D9A9CBD9DBCBFDBDF9E9E9E9C9A9A9A9A9A0900900009C909009B00000000000000000000000000000000900A90ABE0A00B0000A9000000000A0A0B0BC9A9B0AF0000000000000000000009BFFFFFFFFFFFBFBFDBDBFFFFFFFFBDB0F0DBDBB99A09B9EBEBFBF9FE9FBDB9F9B9BDB0D9090900900009009A90B00C90000000000000000000000000000000A909A990B00B0F00009A00A0A0000000900B0BCBCBD00900000000009000000000BFFFFFFFFFBDFFF9FFFFFFFFFFFBDFFDB9A909C9A99FCBDBDF9FDF9BFBC9F9ADE9E90F0BD0B09A00900009090C909B00000000000000000000000000000009009E0A0B00B0AA0A00A0A0909000A9A0A0B0F09A9B0B9E09000000000000000009FFFFFFFFFFFFF9FFFFBFFFFFFFFDFBCB9E9CBCB0D0F0B9F9FBF9FAFFDBDBE9F9B99CB990A9C9000900909A09090F000000000000000000000000000000000090BA90B00B0A0F0000B009AAA0000000000B0A90C9C009A0000000000900000000BFFFFFFFFFBFFFFBFFFFFFFFFFFBDDBDE90B909B0B9BDF9EBDEFBDF9ADBF9F0F0F0BC9E9DA900900000009000B09090000000000000000000000000000009A9AD0A9AA00A00B0A000BAE9000000A000090B9E9A09B90D9000000000000000009FFFFFFFFFFFFFBFFFFFFFFFFFFFFBE9A9F90FBCBD0F9A9F9FBDBFBDFF9F0F9F9F9F9B09A909A90909000009A90BCB00000000000000000000000000000000909A90090B00B0F0000B0B0A0A0A0A000A0A0A09A99AC09A0900000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F9F0BD09909B9CBDADBDBFDFBDBF9F9F09E90BC9F9E9E900A000909009C909000000000000000000000000000000009CADA0B0A000B00A000A0A00000000000000090BBC9E090BCB000000000000000009FFFFFFFFFFFFFFFBFFFFFFFFFFFFBCBD0BD0BDADB0FBDBFFFFDBFBDBF0F9F0BDB0BD9A9090909090900000900000900000000000000000000900000000009A90900A09A000AB000000000000A000A0000A000B09B09090B00000009000000009BFFFFFFFFFFFFFFFFFFFFFFFFFFFDF0BDA0F9A9BCB0DAF9BCBFCBDEBDBFE9F9AD9CBADADA9A9E9000000090B000000000000000000000000000000000009009A0B09A00A0A0F0000000A0A0000A0000A00A9A9F0D009A9C90000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFBF9F09DB09D099DBDBDFFBDBFFBDBFDB9F9F9BA9D909B0D09009090000000900000000000000000000000000000000000B00900A00B0009AA000000000009A000A00000000A0B9A9000B0000000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBDA09F9A9E9A9ADAF9FFF9FDBFDADFADAD0DB0BDAD9A909A000090000900000000000000000000000000000000009009E0A900A00A9A0B000000A0A00A000A000000B0B9BCAC00090C9000009000000009FFFFFFFFFDBFFBFFFFFFFFFFFFFFDBDA99F0AD0909FDBD9F0B0F0BFCB9FB9DB9FB0BDA9A090F0909000000900B00000000000000000000000000000009009009000A90A0000E00A0A090000000A9000A000A0A0B99090A90A00000000000009BFFFFFFBFFFFFFFFFFFFFFFFFFFFBF909F00990B9FA9ADBEBDBD9BD9BDFBDFADE90F099C9F09090DA90000000900000000000000000000000090000000A09A90A9A900A9A9A0B000000A0000A000A0A00000B0F0ACB0090090900009090000000BFFFFFFFFBDADBDBFFBFFFFFFFFDFFFA9BDADBC09FDBC99DADAF0BE9BDEBDB9BF99F0BB09A9A9A0000000000090000000000000000000000000000000900C0B000A0A000A00F00000A0000A000B0A0000A00BA90B00909000000000000000009FFFFFFFFBCB9B0BC9FDFFFFFFFFFF09D0909099BC9A9B0F0F9D9FD9FCB9DADFC9AD0BD0F0D09C9909000000000000000000000000000000000000000909A9900B00000A900AB0A00B0000A000A0A000A000B000B0DA00A009000009090000009FFFFFFFF9F9F0D99BDAFBFFFFFFFF9F0BCB0BCBC9A9C0F9B0B0A90B0B9FABDA9BDABD0B909A909A0000000000000000000000000000000000000000000090A0B0A00A90A0B0A00A000A0000000090A0000A0A9A9A0D009900000000000000009BFFFFFFFFFFBF9E90B99FDBFFFFF9E90909C909A909B90D0D09909090909DA9DABD09F0CB0D0B0090000000000000000000000000000000009000009099AC9A090B00A0B000F090A00000A00000A9A00009A000A9A0900AC0900900090000000BFFFFFFFFFEDBF9F9CBCBFFFFFFFFDBDB0B90B090DAD0B0B0F0FBCBCBC9A99E9D0F9A9B909A9090000000000000000000000000000000000000000000A09B09A0A00B000A00A9A000000A0000A00A00A00A00A09A90B00990000000900000000FFFFDFFFF9FBCBCBCB99F9FFFFFFFBE909C09C90B090BC9F9BD0090909AD0B9B0B9ADAD0F090CB09000000000000000000000000000000000000000090DA0A090B0A0A9A90AB0000A00A0000090A00000B00009ADAD0C900A000009000000009BFF9BBFF0FBC909099ACBDBFFFFFBD99CB09A9AC9BCBDBBD0F0F9BCB0909ADACBDAD990B090B90000000000000000000000000000000000009000009A9A9009AA00009A0A00FA000000000000A000000A0000A0BA9A9BC9090000000000000009FFFC909FFC0000000990B9BFFFFFADA9090009900909C0FBC900090BCB09099909ADAD09A90009000000000000000000000000000000000000000B0C9A0B0A090B0A000000B0A0A00A0000000A0000000A00000F0F00B0F0900000000000000BFF90090BFF00000000090FDFFFFDFBCB0E99000B090B9F0FE00000090090000090909A9C90DA900000000000000000000000000000000000000090B909A0F9A0A0A9A0B0A0F000000000000A0000000000000A9AA9BD0B09A000090000000009FBCB0009EF0900000090F9BFFFFFBD9099000B9D00900BFF00000000900090B0A9A9A9CB0B0900000000000000000000000000000000000900090900EB09A00B009A9A0000B00000A00000000000000A000A09E090F0ADAD000000000000000FFFFDA9009000000099A9B0FFFFFBC9A090009000BD009FFC0900000000000909D090D9A909000900000000000000000000000000000000000900DAC9B00A9AB0B0A0A9A000F0A0A000A0000000000000A0000ABFAB0F909A9000090900000099FFFBDA9000000900009C9FBFFFFFFE9DA0F009090A9F000F000000000009A0900B09A0900009000000000000000000000000000000000900009A09B00BE9A00A000B000A00B00000A000000000000000000000009AB0F09C00900000A900000ADBFFFFBD0B0900909C9B09FFFFFFBDA9900900D090090900000000009000900B09E99CA909000000000000000000000000000000000000090009000B00B09A90BA00A090A0F000000000000000000A00000000BAA90F9E9A900000009000009BFFFBFDFFBDF0F0A99A9CBFFFFFF9FF9CB09A90A90090F0F090009000090909090C90A900000000000000000000000000000000000000000000900BD0B0A0A9A0000A90A000A00A00000000000000000A00000A0090A9A090090000000000000BFFFFFFBE9E9B9F9DA9DBBDFBFFFFE9CB0C90099009000909CA9900D99CB09AD0B90B909000000000000000000000000000000000000009000000090A0B0A9ACAB0A90A0000B0000000000000000000000000009A0A9ADBE90000090009000090F9FFBFDF9F9E90B099A9FFFFFBFF9FBC9B00900090B0909A99CA990A0909C9A9CA90C00900000000000000000000000000000000000000000090B0A9A0B00AB0000A000000F0000A0000000000000000000000A9A00009009090000000000009FAF9E9ADA0909009AC9E9BFFFFFBFCBB0C9F0F0B09090BC90B99CB990B0B0090900B0900000000000000000000000000000000000000000000000D0A9A0B000B00A9A0A000B0A000000000000000000000000A0A09A90ADB00009B000090009BFF9E9C9090000090D9B9FFFFFDFFFBD0F9A090900000909A9C9A900E90D09F09A9D09A900000000000000000000000000000000000000900009090A9A090A9A00A00000000A000A00000000000000000000000900A0009000909000000000009FFFF9B00000909ADBAFFDFBFFBFFADAF90090000090909AD09ADBCB99E9A000090A00000000000000000000000000000000000000000000000000A9A0B0A9A00A00A0A0000F0A000000000000000000000000A0A000B0009000090900090900BFFFFFFFBDB9FBFFBDF9FBFF9FFFDFBDFE990090900000090BC90090009090909E090909000000000000000000000000000000000000000000909ADA900B000A00000000000B00A000000000000000000000000B0A9000F00B9000A0900000909FFFFFFFFFFFFFF9FBFFFFFFFFFFBFFBF9EBD0A000000000009A9A9CB000000B0900000000000000000000000000000000000000000000000000090A0A9EBA09A0A00000000F00000A00000000000000000000B0000A090090C0909000000000BFFFFFFFFFFFFFFFFFFFBFFFFBFFFFFDFFFDAF99090900900900D00900909090900909090000000000000000000000000000000000000000009A90A9E9A900AA000000A0000A0A00000000000000000000000A000A00000B009B000090000009FFFFFFFFFFFFFFBFFFFFFFFFFFFFFFBFFFBFFFDEF0B009009009009009CB09000000000000000000000000000000000000000000000000000000009A9A0A0A900A000000000F00A00000000000000000000000BA900A00900B00F090009000909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFBDBCBDA09A09A09A90B00000000000090000000000000000000000000000000000000900009090FA00090000A00000000000B00000000000000000000000000000A900009009009E9A0009009FFFFFFFFFFFFFFFFFFFFFFFBFFFBFFFFFFFFFBFFFFBCBDBC9F0900009090000000000000000000000000000000000000000000000000000900A0900B0A00A00000000000000E00000000000000000000000000B0A00A0000090B00909909009ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFADFF9E9B0000090900000900000000000000000000000000000000000000000000000090090DA0B0A90A000000000000000B0A00000000000000000000000A0A000000A9B0090B0BCA00A909FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFDFFB9EBD0090900000000000000000000000000000000000000000000000000000000090000B09A0090A0000000000000000F000000000000000000000000000000000000099AD0D09090900BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFBF9EF9009009090900000000000000000000000000000000000000000000000000009000090DA00B0A000000000000000000A0000000000000000000000000000000000000AC9A90B000009C9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFFFF9DE900900A090000009000000000000000000000000000000000000000000009000090A909A90B0A00000000000000000F00000000000000000000000000000000000090909CB0D0B0009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDAF9EB900DA90900000090000000000000000000000000000000000000000000000000000090BC90A00000000000000000000B000000000000000000000000000000000000A90B0B09A90090B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFBF9F9000B0900090009000000000000000000000000000000000000000000000090000090A9AD00B000000000000000000000E00000000000000000000000000000000000090090DAD0900009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBDFDBCB090090909000000000900000000000000000000000000000000000000000000000009C90BA0A00000000000000000000B00000000000000000000000000000000000009ADA90B00F009A9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0BCBD0090B00B09000900900090000000000000000000000000000000000000900000900A90BD090000000000000000000000F00000000000000000000000000000000000A009090BCBD090009FFFFFFFFFFFBFFFFFFFFFFFFFFFFFFBFFFA90F9DB9A090D00900009000000000000000000000000000000000000000000000000000900090F00A0A000000000000000000000A0000000000000000000000000000000000000B0B0F0900B0099BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9FF9DA9C0909A90090000090900900000000000000000000000000000000000009000000000BDA9A9000000000000000000000000B000000000000000000000000000000A00000909C909EBD00B0C9BFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFFBD909EBDA90009009009009000000000000000000000000000000000000000000000000090090009C00B00000000000000A00000000E000000000000000000000000000000000000009ADB090AD009A0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9FBDB0F0900B900900000909000090000000000000000000000000000000000000000000009BCA9A0000000000000000000A00000B000000000000000000000000000000000000B0A909F9F9A900999FFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFDA9FADF90009C0000900900000900000000000000000000000000000000000009000090000B00990900A0000000000000000000000A00000000000000000000000000000000000000D0BE9A00DAD090BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF090F9F90009A9090B0090090090000009000000000000000000000000000000000000009AD9E90E00A000000000000000000000000F00000000000000000000000000000000000B09A909E9F9A909A9E9FFFFFFFF9FFFFFFFFFFFFFFFFFFFDFF09F9F9A900090009000009090000900000000000000000000000000000000000000000000A09009000000000000000000000000000A000000000000000000000000000000000000009E9E9A9C9E90909BDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A9E9ED000909000900900009090000000000000000000000000000000000090000000099D0A9A0A09A00000000000000000000000B00000000000000000000000000000000000A09A909F9E9A90F09BCBFFFFFFFDBFFFFFFFFFFFFFFFFFFFFBC09BDA90909A00090000090900A0900009000000000000000000000000000000000000BCA009C9000A000000000000000000000000E0000000000000000000000000000000000099AD00B0A9E9E90BC0B9FBFFFFFAFFFFFFFFFFFFFFFFFFF9FC99FDA9000090909000909A0009090009000000000000009000000000000090000000090090B0B0A009000000000000000000000000B000000000000000000000000000000000A0A0DAFD099E909E90BD0F9FFFFFFDBFFFFFFFFFFFFFFFFFFFBF009A909009E0009A9000090900000000000090000000000000000000000000000009A0F009CBC000A00A0000000000000000000000B000000000000000000000000000000000090B09A9AC99FA99AD0B9ADABFFFFBFFFFFFFFFFFFFFFFFFFFDE900D0009009900000090900090909009000000000000000009000000000000000000D9009A90B00090000000000000000000000000E000000000000000A000000000000000000000DADADB0E9DAD09BC09BDF9FFFF9FFFFFFFFFFFFFFFFFFFAF099B09000B000909000009090000000000900090000000000000000000090000000B0AD0B0DA00000A000000000000000000000000B00000000000000000000000000000000000A9B0BDB0E9FADA9BCBDBCB9FFFF0FFFFFFFFFFFFFFFFFBF9FD0BC0009009009A900090900A09A9000900000000000000000000000000000000099C090B0DA9A09A00000000000000000000000000A00A0000000000A00000000000000A0000000009CB0F9B09F9E9B0B09ADBFFFFDBFFFFFFFFBFFFFFFFFFF0C0B0B000909000009000009090000900000090000009A0090000000000000000000BDA9C9A000A0000A00000000000000000000000F0000000000000000A0000000000000000000BCA9CBCF0F0BCBCE9CB0DADBFFFADBFFFDFFFFFFBFFFDBDFB09C909009E0900900090900009090000000000000000900009000000009000000B0009A0F9A009A000000000000000000000000000B00000000000000000000A00000A0000000000090B9B0F9E909B99A9CB9A9FFBDBFFDFBFFFFFFFFFFBEFBC9A900000090009000000009090000090009000009000000000000000B0000000909E90D90009A00000000000000000000000000000A0000000000000000000000A000000000A0000B000C0FDA90BCBCAFDB90FDFBDCBFFFFFFFDFFFDFBDFDBC9090B090090909009090909000A9000000000909000A900009000000900000009ADA90F00A0B0000000A00000000000000000000000F00000000000000A000000000000000000000000B0909ADF090DBD9A9E99A9FFB9FFBFFBFBFBFBFDAFBDB0000000090A0000000000000090009000009000A0090000000000000C90000900909E90B00000A00000000000000000000000000000B00000000000000000A00A000A000000000A000000A909ADF0B0FADDA9EBDA9FED9FF9FDFFFFDFAF9DAFCB0090000090900900000900900900000900009090000009000000090A00000009A090E900A9A0000A00000000000000000000000000A000000000000A000A0000000000A000000000A009000A9A0F0F9FAB9C90B9EDB9A9FFFBFADBFFD9EBDB9C090090090000900009000000000000000909000009009000900000090000000AD0F090A90000000000000000000000000000000000F000000000000000000000000000000000000009A009E9C9F9F0F0D0DA9E9C9B9E9FFDBDFDFFDB9A99F9E90000000000900000000009090090009000A000000000000900000090000000990B09A000A00000A0000A0000000A00000000000000A00000000000000A00000000000000000A0000000B0090B00B0F9FAFAD09A9E9E9ADBBEFBF9FBED0FF0F0000900009000000000009000000000000909000009A90000000009A0000900BCAD0A00A00000A00000000000A00000000000000A000B00000000000000000000A0000A00000000000A0000B00090CBCAD9F9A9C90909C9ADF9FDBF0F9A90BD9F00000000090090000000000000000900B00C09090000000900000090000009090A90B009A0000000000000000000000000000000000E000000000000A00A00A0000000000A0000000000A9009E0B09F9AF0DF09ADA9A909B0F9ADAF9E99F9A909090000000000000000000900009000900B000000900090000009000009009E0900A00B0000000A000000A00000000000000A0A0000B000000000000000000000000000000009000A000000B00909ADAD09A09A909C90E90DB0FDBDBC9E9A9DA00000009000000000090000009000A900D09009C90E900000009A0090900DA09A0B09A0000B00000000000000000000000000000000A00000000000000000B00000B000A0000A0A009000B00900C000BEDADBC9CB0009090BC9B0BC9B090DA090000000000000000000000000009090E9A0090A0A900000000000000000B00B0B00A0000A000A0000A0000000000000000000000000B000000000000000A000A0A00000000000009000A000A00B009099A90F0B0CB0B00090BC9D0BC9ADB0900000000000000000000000000900000900900090900900000009000900BC0B0B00F09A9A00000900A000A000A000000000000A000A00E000000000000A0000A00000A0A000A000000A00000000900B00009E90FCB09C0090E909A0BC9A9009000000000000000000000000090000B09A9D0B9E0000B00000009000000F00B000F0A0A000900A0A00090000000000000A000000000000B000000000000000000000000000A000A00A0000000000009009E9E90F0B0D0A900A90000909AD090000900000000000000000000000A09D0DAC9A00000009C00000900A009E900B0BEB0A909A9A0A09000A00A0000000000A00000000000000A0000000000000000A0000A000000090000000A000A000000090090CB0C9CBC9C9FD0009000009E000000000000009000900000009090900B0900090D009E9000000A0909A09A9B0A90090A0A000000A00000000000A000000900000090A0000F0000000000000000000A00000A000A00000009000000A00000B00B0F9B0B09A000AD00000090090000000000900000D009009000A00D0B0090BCBCB00B00000000900000DAD0ACBCA9A0B09000A9A000A00B0000000000000A0A00000000000A00000000000A000000A09000A000A000A000000A00000900000000900C00DAD09FF00000000E9000000000000009CB0000000090909A90DADA90900090000009000009CB090B0B0A90E9ACA0B000009009000A0000000000000000000A00000B0000000000000A00A900A0A000000000000A9A00000000A0000909A0FBC9A90FF000000000090009090000090C9A0000B00BC9A9E9E90CB000000000009009000009B0B0D0A0B009AA900B000A9A00A00A00000A000000000000000A0000000E000000000000000000A90000009A00A0000000000000A09A9000009090B0DCB00F090000090009A0009009000B00909000900BC9009CB0000000000000090A000900C9CB0B0DA9A0900B009A9000000B00A0A000000000A00A0000000000000B0000000000A000000000A00A000000000A0009A0000000000A00000000DAA9CB00009CB00C9AD0909E090CB0000000099E0F9000BCA0000009000000900A90000E9A9A9C9EB0000BCB00A000A0B0A00000900000000000000000000000A0000A0000000A00000A0000A009000A00A09A090A0000A0000000A90000090F09D0BC90B0E90FDBAD0ACBC09A0900D0D0B0F0E90000BC009000090000000900D00090900D0DA9B00B0FB0A00B0B0A090009000A000A000000000000000000A000000F000000000000000A000000A00000000000000A000000000000A0A000A0900A09AD009BE9A0C9AD9C0B0C9009A90BC90090D0E90090000000000090F00B00000A0BDA9A9AC0BCB0000B00000900A00A0A000A0000A0000A00A000A0000000000A00000A0000A000000000A00A000B00A000A0000000000000000000B0900B0D9EDA0D009C9DBC9A0B9CB0EBDADAD00AD000A9000000C009000000A000D000009C9009E9E9A90A0B0B00A9A9A0B00A00090A00000000000000000000000000000B0000000000000A00B00000900A000090A00000000000A00000000000A000A0B0FDAAF0F0A00ADDACB0D90E90000AD000AD00000009A000000000909A0090B00B0F09B09A0A9000A0B0000000000900A0090A90A000000000000000000A00000E0000000A0000B00000A9A0A000000A000000A000009000000000000009A0900B0BDD0D09D099A0BD0E0AD000009000009000000000090000000D0E0090A0C90C90BE0A00900A9A0900B0A0B0A000A000A0000000B0A000A000A0A0A00000000B0000000000A0000A00000000000A0000000000000A00000000000000A0090A0000FABEBEACA0C9C0A9090000000000900000000909000000909A90900C909ADBAF0090B0A0B0009A0A00900009A0009A90A0A00000000000000009000000000A000000000000A0000A9A9A00A000000A00A090A00000000A00000000000A09A9A909C9C9DBD09A09C00CB000000090000000000000000000AC00000D0BCBC9A090B0A000900A9A0009A0A0A9A0009A00A09009A000000000000B0A000000000B00000000000009A000A000B0000000900000A0000000A000000A0000000000000A0A9A0A00BE090A90090F090900A00000000000000000BC9090900A9090BE9AAC090A9A0A90000A00090B0009A000B09A0A000000A00000000009A00A00000E00000000000B0A000009A000000A00A000900000000000000000000000000A00000900909FC9CADC0F00009E000909AD0A000000009CB0000A0AC9E90F0F0B0D0B0A0900900A09000A9E000B0A00A000A0900A00A0000000000A9A000000000B000000000A000000A90A0000A00000000A0A0000000000000000000000000000000A00A0A0BFADB0B09CB0F00C00000009000009ADA00C9CB09C9A90F0BA90A0B0B090A0A0000A0B09A009A00000900B000A90000000000000B0000000000A0A00000000000A0A00000000A000B00A900000000A00A00A00A000000000000000000000009000DADEDE0AC90F9B000000000909BC909F09A90D0B09E9AF0DA09A0000A00000A90000A00B0A90A09A0A00900000000000000000000A0A0000090B00000000000000900A0A090B0000000A00900A000000000000A00A00000000A00000000000B0B0B0BD090000ACBCB09090DADADAFCA9E9CB0AD0FE9E90BA9A09A9A000000000A09A9A00B0AF9A00000A0A000A00000A000A00000900000A000E00000000000000A0A0909A000B0A90000A0000009A000000000000000A0000000A00A0000A0000000ADA0B00D90F0DADAFADADAD9BDE9FADFDAF09A9A00000000009A00000000000A0B00BB0A00B0B00000000000A0000000000A000000000AB0000000000000A000000A0A9A0000A00000A009A00000000000000000000A00000000000000A9A0B0900D0DB0ACB0F9E90D0F9ADAE0BDAD9A0B09A000000B0A00B0A000A90000B0B090A9ACB09A00009000000000000000000A000A000009A9A0000000000A0090B00A9A90000B00090A9000000000A09000000A0000000000A000090A000900000000B09A0D09C9ACBCB0B0ADAD9F0A90A0B0A09A9A9A0000B009000000A0A00000A00A9A0A009A0A0A00A000A0000000000000000000A000B0000000000000A0000000A0A900A00A000A9A0A000000A000000000A00A000000000A00000A00B0A0B00A09A09A009000000D090A009000900000000009A0900A0A0B00000090A9A90A9009009A009000000000000B000000009A90A0000000E000000000000000A000A90090A9000009A9009000A0000000A0009000000000000A0000000000009000900A09A0900A9A009A0A090A0A9A00090A00A00000A000000000A9A9A00000A90A0A00A09A0A9A090000A9A00A000A00A00000000A00B00000000000A00000A900A0A00009A0B00A0A00B00000000000A00A0000000000000000A0000009A0A0A0B09A0A00B00090A09000A909AC0A0A090009A00000009A9A0B0000009A0B00A0909A90A009000A0A090000B000000A90A0000A0000A0000000000000A00000A0900B00A0000A90900000090A00A00000000A00000000000A00009A0A0009090000A909000000A09A00B090A00B009000A000000B00A00000009A0A0A0000B090A0A0A009AA0B000000A00BA0A00000009A00000B00F00000000000000000009A0A00A90B0B00A0A0B000A0000000000000900A0000A00000009000090A0A000B090A000B000000A9A00A0B0B00B0A0B009A000000900A9A0A9A90090A9A00A00000909A090000A90009A0090000000A00000000000A0000000000000000A0A00090B0A00000B090000B00000B0000A00A0000000000000009A0A0900A9000A000A000A000B0B0090000900000B009000A000B0000A00000900A0A9A09A0B090B0B0A0A09A09A090A0A0000A0000A00000000000A00B000000000000000000900B0A0090A0B0000A90A0090A0009A0000000A0000A000000A00000A0A0000009A0090000A00000A0A9A00A0B0B0000A9A9000000A000009A0A9009009A9000A000009009A0BA00A0009000000A0000000A0000A0000E00000000000000000A0B0000B0A0900B0A90A0900A0000A0000090009000090000A900000900900A90A09A000A09000A00090000000000A0A900000B0A00090A0A000000A0A0A0A9A90A0A9A0A0A0BC9A900000A000B000000A0090A00009A0B000000000000000000000A900090A00000000A0000009000000A00A0A0000000A0000000A00A00000000000A000A00900000A000000009090A00A00009000A0900000000090900000A09000000090BA00A0B0A090000A9A00000A000000A000A0000000000000000000A900A9A0A90B0000B000A90A00000A000000900A000A0000A000B00090A90A09A0000090000000A00000B0000A0A0009A90A0A00A000000A09A090A0A0A90B0BA0A0B09A0A09A9000000A000A90000009000000009A0F000000000000000000000A000009A000B00009000000A00900009A000009A00009000A0000A000000000090000A000A000009000000B009009A0009000000B0A00000000A009090A0B0090000A0909A00A9A0A900A0B0A00000000A00000A00A0000000000000000000000A9A9A00B000A0000A00A9000A0000A0000A00000000A000900090A00A09A000A00A000B00000000A00A00000A0A00000A000000000B000A0A0090A00A9B0BA0B0B000A0ADA9000900A09009AB00A00A0000000000B0000000000000000000A09000A9A00A900B00000000000000B0000A900A0090A000A00A0A0000090009A000000000009A00A000000B0000090A9A009A000A0B00A0090900A900A0ABADB00A0B090A900A0B0A0000A0B0BCB000000000000000E000000000000000000000A0009A09A90A000A000000A000000009A000900A000000900900009A0A0A00000A90A900A00000000009000A9000A0009A000A9000BA90A0A0A000A09090BA0AB0000A09A0B000000B00000A9A0000009A00000A00B00000000000000000000000A9A09A00A09000000A0000A00A00A0000A009000000A00A0000A0090090A000000000B00A000000A0A00000A0B090A000000009ABCA0009009A0900A0FA00909A0B09A0B000A09A00A09A9A0A0000A0000000000A0000000000000000000000000DA009A9A0A00000000000000000000900A00A00A9000000A9000000000B0B0A00A00090000A009009A0B00000A90A00000A0A90B009A0A000A0A09A009A0A0900A09AC0B09A09A09A0000090A00000A00A0000B000000000000000000000A9A0A9A000090000A0000A00000000900A00000000000A090A000A9A0A0A00000090090A0A0A00000000000000B0B0A909A000900A9A90A909A09090A09A0A9000A090A09A00A00A0B0000A0B0A00B000000000000E0000000000000000000000009A0009A9A000000000000000A00A0000A900000A0090A009000000900900A0000A00900090B00A0A9A09A0B00A9A0A000A0000000AADA0A00A00A90A0900E9A90AC90A09A90B0900A9A90009AB000A00000A000B0000000000000000000A00A9A009A000000A000000000A0000000A0000A09A0090A00000A900A00A00A900A0090A00B00A009000000A0000A9000000000A0B0A9A90A900000A90A90A0A9A00A9A0A09A00A000A000000A9E000A0000A00000BA000000000000000A000090000B000A00A00000000000000000A09009A00A0000A0000A0000A090900000A09A0A00000A0000A00B0B090B0B0A9A9A9A0090000009AA9A9A9A90A90A09A9A9A900B09A00B090A0009A0B09A9A00000009A00000F000000000000000000000A9A00A0000000000000000000000000A00009090A9000B0900B0090A0A09A9090000090B0009A90000000A0000009A000000A000009A090A00000A90A09A000009A090AA0B00A009000A090A00A9A090000000000AA00000000000000000000A0000000000000000000000000000000000A0A00A00A9A00A0000A000000A00A0A9A9A0A00B0A00A9A9A9A90B0B0B09A9A00B00A00A00B0A9A9A0B00B0B09A9A9A00BA909000B00A0A0B09AB0BA9A000A0B0A0000A9B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000A00A000000000000000000000B00B0A00A000A00B000A0A9A000000000A000000000000000000000000000000000000000000105000000000000DFAD05FE,'Laura received a BA in psychology from the University of Washington. She has also completed a course in business French. She reads and writes French.',2,'http://accweb/emmployees/davolio.bmp') +GO +INSERT "Employees"("EmployeeID","LastName","FirstName","Title","TitleOfCourtesy","BirthDate","HireDate","Address","City","Region","PostalCode","Country","HomePhone","Extension","Photo","Notes","ReportsTo","PhotoPath") VALUES(9,'Dodsworth','Anne','Sales Representative','Ms.','01/27/1966','11/15/1994','7 Houndstooth Rd.','London',NULL,'WG2 7LT','UK','(71) 555-4444','452',0x151C2F00020000000D000E0014002100FFFFFFFF4269746D617020496D616765005061696E742E506963747572650001050000020000000700000050427275736800000000000000000020540000424D16540000000000007600000028000000C0000000DF0000000100040000000000A0530000CE0E0000D80E0000000000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00D999D999999D9D999DB99DD9F9D9D9D99D99D9F9D999BD9FD9D9D9D9D9DFD9F9F9DBDBD9DBD9DB9FD9FDFFFFFFFFFFFFFFFFFFF9D9F9DB9D9DFD9DB9F9BDF9F9D9DBD9BD9F99DBD99999999D9DBDBD9BDDD9F9DBDBD9F9D9D99D9BD999D99D9D99DB99D999D9F9D9F9D9D9999D9B9BDBD99F9D9999D9DBD9FDBDBDBDBDBD9F9D9DBD9D99FD9F9DD9FDD9FFFFFFFFFFFFFFFFFFDBDF9DBDD9F9DBD9DD9DD9D9DDBD9D9DD9D9D99D99999D99D9F9D9D9DD99BD9D9D9D9F9DBD9FD9DD999DB9DBD99D99D999D999D9BD9D9DBDBDD9D9DD9D9DD999999999FD9F9D9FD9D9D9D9F9D9F9D9DBDF99F9DF9F9F9FFFFFFFFFFFFFFFFFFFFD99DF9DB9DF9D9D9F9F9F9F9BD9F99F9F9DBDF9D99D999D9D9D9D9F99BDD9D9F9F9F9D9D9D99BD999999D9D9F99D999999D9F9D9D99F99DD99B9D999D9B99D999D9D99FD9DBDD9DFDBDBD9D9D9F9F9D99DF9FD9FD9FDFFFFFFFFFFFFFFFFFFFFBDF99D9DFD9F9DBD9D9D9D9DD9D9DD9D9D9D99F99999999B9DBDBD9D9D99DBD9D9D9D9F9F9D9D9BD999D9F9D99DBD9D999BD9D99D9D9D999D9D99F9F9D9DB9D9999BD99F9DDB9F99D9DD9F9F9D9D9DBD99D9DBD9FD9FFFFFFFFFFFFFFFFFFFFFD9DDBDB9DBD9F9DBDBDBDBD99F9F99F9F9F9D99D9999D99D99D9D9DBD9F9D99F9DBDBD9D9DBD9DD9F99999DBD9999999F9D9DBD9BDBD9FD9BD99D9D9D9D9D999999D9DFD9F9DD9DF9F9DBD9D9F9D9D9D9FDF9DFD9FDDFFFFFFFFFFFFFFFFFFFFF9F9D9DDBD9F9D9D9D9D9D9FD9D9DF9D9D9DBD9F999999D99D9DBD9D9D9DBD9D9D9D9DBD9D9D9B9D999D9D9D99D9D9999D9F99D9D9D99D99D99F9D99DB999999D9D9DF99F9DDBDF9D9DBD9D9F9DBDBDBDDB9DBD9F9FFFFFFFFFFFFFFFFFFFFFFFD9FDBDBDBD9D9DBDBDF9F9D9BD9F9D9F9F9D9D999D9D999DBDBD9F9DBD9D9F9DBD9F9D9F9DBD9D9D9999BD9F9B99999D99D9D9BD9D9D9BD99D9D9BD99D99D999F9F99FD9DBD9D9D9F9D9DBD9D9D9D9D99DDBDF9DD9FFFFFFFFFFFFFFFFFFFFFF9F99D9D9DFD9F9D9DD9DD9FDD9D9DBD9D9D9DBD999999D99D9D9D9D9DBD9D9D9DBD9F9D9D9D99D9F999D9D9DD9D99999FD9F9D9D9BDBDD9DF99F9D9D9BD99999D9DD9D9F9DBDBDBD9F9F9D9F9F9F9DBD9BDDBDF9FDFFFFFFFFFFFFFFFFFFFFFFDDF9FDBD9DBD9DBDB9F9BD99F9F9D9D9F9DBD9FD999D9BD99D9F9DBD9D9F9DBD9D9D9DBD9F9D9BD9D99999F99D999D9D99D9DB99FD9D99D99DD9D9DB9D9999DBDDB9DBD9DBDDD9D9D9D9DBD9D9D9DBD9FD9FD9DF9FFFFFFFFFFFFFFFFFFFFFFFFBDD9DD9F9D9D9D9DD9DD9FD9D9D9F9F9D9D9D9999D99D9D99F9D9D9F9D9DBD9F9DBDBD9D9DB9D9F99999D9D999999DBDF9D99D9D99D9F9BDDB9DBD9D99D9D9D9B9DBD9DBDDB9F9F9F9FD9D9F9F9F9D9D9FDBDF9DFFFFFFFFFFFFFFFFFFFFFFFFD99F99F9DBDBDF9F9FDB9D99F9F9D9D9DBD9F9D9999D999BD9D9F9F9D9F9D9D9DBD9D9DBD9DD9D9D999D9D9D999D99D99DB9DBD9D9F9D9D99DBD99D9999B9DBDDD9DDF9DF9DDD9D9DD9BDBD9D9D9DBDBDBDDBDFFFFFFFFFFFFFFFFFFFFFFFFFFDFD9FDDBD9D9D9D9DD9DF9FD9D9F9D9F9D9D9F99D9DB9D9D99BD9D9DBD9DBDBD9DD9DF9DBD99F9F9D9999F999999F99D9D9D9D9DBD9D9D9FD9D9D9BD9D99D9D9BD9B9D999F9F9F9F99DD9DBDBDBD9D9D9DBDD9DDFFFFFFFFFFFFFFFFFFFFFFFFF9FD9BDDBD9F9F9F9BD99D9F9D9D9F9D9DB9D9D99B9D99D9DD99F9D9DBD9D9DBDB9F99D9D9F99D9DB99999D99999D9F9F9DBD9F9D9F9F9D99D9DBD99999D9DBDDD9DDBDFD9D9D9D9DF99F9D9D9D9F9F9F9DF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFD9DFDBDD9D9D9D9DD9DF9D9DBD9D9D9BD9D9F99D9D9F99F99D9D9F9DD9F9F9D9DD9DF9F9D9DD99F9D99D9999D9F9D9D9D9D9D9D9D9D99D9F9D9D9D999D9F9D99B9F99D9D9F9F9F9F99F9D9F9F9F9D9D9DF9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBD9DB9F9F9FDBDBDB9DBDBD9F9DBDD9D9F9D99999D9D99D9FDBD9F9BD9D9DBDBDB9D9DBD9B9D9D9999BD999D9DBD9DBD9DBD9DBD9D9F9D9BD9999D9BD9F9FDD9DFDBDBDD9DD9D99D9DBD9D9D9DBD9DBDF99FFFFFFFFFFFFFFFFFFFFFFFFFFFF9DBDFDD9D9DD9D9D9DD9D9D9D9D9D99F9D9DB9D9DF9D99DBD99D9D9DDDBDF9D9D9DD9F9D9D9D9F9D999D9999BD9D9F9D9F9D9F9D9DBD9D9D9DF9D99D9D9DD9BD999DD9D99F9DBDFD9D9D9F9F9D9DBDBD9DFDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD9DB9DBDB9F9F9F9BDBD9F9DBD9D9DDB9DD99999DBDD999D9FDBDBD9D9DBDBDB9FD9D9F9DBD9DBD999D99D9D9D9D9DBD9F9D9DBD9D9F9D999999D9D9F9BDD99DF99DBDF9DBD999F9F9D99D9F9FD9D9F9DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BDBDD9D9DD9D9D9DD9D9F9D9D9F9D99D99F9D9DDD99BD9DBD99D9D9F9F9D9DDDD9DF9F9D9D9DBD999D99D9DBDBD9F9D9D9DF9F9D9F9D9BD9D99D9BDBD9DD999F99FD9D9DBD9D9D9D9D9FD9F9D99F9F9FFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDD9DB9F9DBDBDF9F9F9FD9DBD9D9F9D9DF999F9B99DD9D9D9FD9DBD9D9D9FDB9BDB9D9DF9DBD9DD999B9B9D9D99D9F9D9F99D9D9D99D9D999D9BD9D9DD9BD99DDD99F9F9D9DBDBDBDBD9BD9D9FD99DFD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9FD9D9F9D9DD9D9D9DD9F9DBD9D9F9F99D9D99DDF99DB9D999F9DBDBDBDD9DDD9DD9FD9D99DBDBD99D9D99F9DBD99DBDDDBD9DBDD9BD9F999D99D9F9BDD999B9DF9D9D9DBD9D9D9D9FDD9F9F9FDF9FFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD9FD9D9DBDB9F9F9F9BD9D9D9F9D9D9D9F99D999D9F9D9BDDD9D9D9D9DB9F9BDDBDF9BDBD9D99DBD9999DF9D9D9DF9D9F9D9F9D9BD99D99D999DBD9DD9BD99DD99D9F9F99D9BDBDBD99BD9D9D9D99D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F99F9DBD9DD9D9D9DD9F9F99D999D99DD9DBD9D9D9D9DD9B9DBDBDBD9DD9DDDBD99DD9D9F9DDBD9999DF99DBDBD9D9F9DBD99D9DD9D99D99BD9DDBDBDD999DB9DBD9D9DDBDD9D9D9FDD9F9F9F9BDFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DBD9DBDBDBDBDBD9D9DD9FDF99F9BD9D9DBDBD9F999DD9D9D9D9F9F9F9BD9FDDBDBD9DB9D9D99D99DF9D9D9DBD9D9D9D9F999DB9D99D9D9F9D9D99D99D9D9D9DBDB9D9BDBDBD99BD9D9D9DD9D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9F9F9D9F9D9D9DD9D99F9F9BD9999D9DDB99F9D99D99DBD99BD9BDBD9D9DDDDBD9F9DD9DBD9DBDBD9DF9D9DBD9F9DBD9F9DBD9DF99D99F99DBD9DBD9DB999BD9DBD9D9D99D9D9D9DFD9F9F9FDBD9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD99DBD9F9F9F9F9FDD9D9DD9DD9D9999D9D9D9DDBDD9D9FD99DD9DBDBDB99FDBD9F9F9D9D9D9D9D9BDDBD9D9D9D9D9F9D9D9D99D999D99D9D9F9D9BD9D99D999D9F9D9F99D9F9F999D9D9D9DD9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9DBD9D9D9D9D9D9DBDBD99F9BD9F9DDF99DBDB9D9BD9D99DDB9D9D9D9DDF9D9DF9D9DBDBDBDFDBDDDBD9F9F9F9F9F9DBD9F9FD9F9D9D9F9D9D9F9D9999D99DF9D9DBD9DBDBD9D9DDBDBDBDB9F9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9F9D9F9F9F9F9F9F9D9D9FD99D9D9DB99D9D9D9D99D9DB9DB99D9F9F9F9F9F9DF9F9DBD9D99D99DBF9DF9DD9DD9DD9D9D9D9D99D99F99D9D9F9D9D99D999BD99DBD99D99D9D9DBDB9D9D9D9DD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9DBD9D9D9D9D9D9F9F9D999D9F9999DF99F9D9F9F9D99D9D9DBD9D9D9D9D9FD9D9FDD9F9DDBDFDDDF9DF99F9BDB9F9F9DBD9D99D99DBD9FD9F9D9DB9D99D9D99D9FD9F99F9F9D9D9F9F9F99F9BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9DBDBDBDBD9F9D9D9F9DDF9D9DFD99DF9D9BD9D9DBDDBD9D9D9DBDBDBD9F9BDBD9BD9D9B9D99BDF9DF9DF9DDDDD9D9DD9DBDBD99D9D9D99D9DB999D999D99BD9D99D99D9D9DBDBD9D9D9DF9DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9D9D9D9D9D9F9DBD9D9DB99D9D999D99D99DD9F9D9D999DB9D9F9D9DD9DBDDD9D9FDDF9DDDBDFD9DDF9DF9DBDB9BDBDB9F9D9D9D9F9DBD9FD999D9D9999F99D9DB9D99DBDB9F9D9DBDBDBD99F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DBD9F9F9F9D9D9DBDBD9DD9F99DDB9DB9DB9D9DBDBD9D99D9D99DBDBDBDDB9F9FD9F9DBDBD9D9F9F9F99FDD9DDD9D9DD9D9D9DBD9D9D9D99F9D9D9BD9D99D9D99D9F9D99DD9DBD9D9D9D9FD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9F9DD9D9F9F9F9D9D9DB9D99DB99D9D99DF9F9D9D9F9FD9F99D9D9D9DF9DD9D99F9F9D9DBDBDDFDDDFD9F9DB9FDBDBDF9F9F9D9DBDBDBD99D999D9999D999BDDBD999D9BDBD9DB9DBDBD9BD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9DBDBD9D9DD9F9F9F9DF9DF9D9D99FD99D9D9F9D9D999D9D9F9BDBD99F9F9FD9DD9F9FD9DDBDDBDBDBD9DBDD9DD9D9DD9D9D9F9D9D9D9D99DBD99D99BD9FD99D9DDB9D99D9F9D9BD9D9FD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DBDBD9D9F9DB9F9D9D9D99D99D9F99D99D999F9D9F9DBDDB9F99DD9D9FD9D9D9DF9BDD9DBDF9DFFDFDDDFDF9D9F99F9F9BDBD9F9D9F9D9DB9D99D9F99DD9D999F99B99D9D9F9D9BDDDBDBD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99D9D9F9D9F9DD9D9F9DBDDBD9D99DB9D99FD9DBD9D9D999D99D999F9D9F9F9DB9DDDBDBDF9DBD9F9F9F9D9DF9DFD9D9DDD99D9DBD9D9F9D99D9999D999B99DD9D9D9D9DBD999DD9B9D9D9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9DBD9F99D999F9D9D9D99D9B99D99DB9D99F9D9DBD9D9D9D999FD9DBD9D9F9DDBDBD9DD9FDFDFDFDF9FDF9DF9DBDBDB9FDBDD9D9DBD9D9D99F9D9BD9D9D9B9D9D9D9B9D9DDB99DD9F9F9DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DBD9D9DDF9DF9D9F9DBDF99DDD9B9D9D99D99DBD9D9F9F9F9DF999D9D9F9D9F99D9DBDBDF9DBDDBDBDFDBDDBDDBDDD9DD99D9BD9DBD9D9F99D9D99D999D99DDB9F9BDD99DB9D9DB9F9D9DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9F9F999D99DBD9D9D99DF99BD9D99D999D9F9D9F9D99D9DB9D9F9F9F9DBD9DFDBDDBDD9FFDFFFDFDF9DDBD9F9DB9FDB9DF9DDBD9D9BD99F9999D999F99D999D99D999F99D9DBDD9DBDBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBD9D9FDF9FD9DBDBD9FD99DD9D999F99DB9D9F9D9D9D99D9D9D9D9D9DBD9DBD9DDBDDBDBD9F9DFDBDF9FDF9DF9DD99DD99DB9D9D9DD9D99D9DB9D999D99DBD9D9D9D99D9999D99F9D9DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9DBD999D99F9D9DBD99FDB9D9BD9D999D99D9DBD9F9F9F99F99DD9F9D9F9D9F9FDDBDFDFFD009FDFDF9FDF9DF9DFDBDF9DD9F9F9BD9F9D999D9BD9D9D99D99F99B9D9BD9F99F9D9F99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DB9DBDDBD9D9D9D9D9D999D9BD99D9D999D9BD9DBD9D9D9DD9DB9BD9F9DD9F9DF9F9DF9FDFF909BDF9FDF9DFD9DBD9D99DB9D9D9DD99D99F9D99D99F99BD9F999D9DB9D9999F9DBD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DD9D99D9FD9F9BD9F9DD99D99D9B9F99DB9D99D9DBD99F9BD9D9D9D9DBDF9FD9FDFD9FDBDF09909FFFDBDFDBDFD9F9FDF9DF9DBD9BD99D9999D99D999D999D9D9D99D99D9D9D9D9FD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9DB9DBDBD9999D9D9D9DB9DB9D999D99D99D9DF9F9D9F9D9D9D9D9F9DBD99DD9F9DBDFDFDFD90D999DDFDF9FD9DBDD9D99D99D9D99D9DB9D9F99D999D999D9999B9999D9B99F9BD999FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99D9D9D99DFD9D9BD999D9D9BD9D9D999D9B99D9F9D9DBD9DBDBD9F9DDFDF9FDDFDBDBFDFF0B00D09B9FFD9FF9DBDBDF9FD9F99FD9D9D99D9D9B9DB9D9B9D9F9D99D99D9D99DDBDF9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DDBD9D9F9999F9D99F9DB99D99999F99D9D9D9D99DBD9D9F9D9D9D9DB9DBDF9FF9FDFDFFDFC9D9099009DFFD9DF9DD99D99D9DF99F9D99D9999D999D99D9999999DB999999D99D99DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BDDB9D9D9D99DBD99D9D9D9D9D9BD9DB999DB9DDBD9D9BD9DBD9F9FDDBD9DFD9FDF9FDFFF9B9099C900BD9FDF9DF9FDF9FD9D99D9D9BD9B9D99999999999D9999999DBD9D9BD99F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D999DB99F99D999D9D99DB99B99D9999D9D99D999D9F9D9DBD9F9D9DBDDFBDBFDBDFDFFFD00E909909009F9FDF9D9D99D99DB9D99D9D99D99D999D9999D9999D99D99999BD99FD9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9D9F9D9D9D9BD9D999BD9DD9D9999D9D9DB9D9BDDB9D9D9D9D9D9FDBDDBDDFDDFDFFDFDFFB990DA9D0900099B9FF9DFD9DBD9DBD9B999999999D999D99999999999999D9D9D99D99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BD999D9999D999DBD9999999D9D9BD9B9D99D99D9D9F9F9F9F9D9FDBD9F9FBFDF9FFDFDF00CB990990DB00009D9F999F9D9D9D99D999D99D9999999999999999999D99999BD9B9DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9F99DBD9DBD99999B9999999BD99D99D9BD99DF9D9D9D9D9FD9FDDFDFDDDBDFDFFFFF9DB000990F00009E90BD9FD9D99F999D99D9999999999999999999999D9999BD9D99DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD99BD99F9D999999999D9DBD999D99D999DB9D99F999D9F9F9F9D9FD9F9F9FFFFFDFFDFDFDA909090999000090909999DBD999D9999999999999999999999999999999D9999F999FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D99D9999999D999D9999999B99D99D9F99D99D99DDBD9D9DDF9F9DFDFDFDBDFDFDFFFFF09000909090099009000999999D999999999999999999990990999999999999D9D9D99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF999999D999DB999999D99999D999F9999D999F9D9B9DBDBDB9DF9F9FDBDFDFFDFFFDFFFF909A9090F09D000000900099999999999099999909999999909909999999D99999999DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9D9F9999D99999D99999D99999999D999F9D999F9D9D9D9DDBDDDFDBDF9FFDFFDFFFFF99000000C990B0900900000009999999999909999999099090909999999999999BD9F9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF999999D99999D999999999D99D9D999D999999D9D9DBDBDDBDDBF9FDFDFFDFFDFFFFD9D9A0009DB0090000000000000000000099999909999999090909090909999999D99999DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9999D99F99D999999999999999999999999D9DBD9BD9D9F9D9FDDF9F9FDFFDFFFF9B9BF9C900E909099009A900000000000000000099909090990000909999999999999999D9BFFFFFFFFFFFFBFFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9B99999999999999999999999999999999999D9DBDD9FFD9F9DFDFDFDFFFFF99DC9D0900B090000900000000000000000000000000909090000900909099909999999D999DFFFFFFFFBFFBDF9FFDFF9FBF9FFBFFFFFFFFFFFFFFFFFFFFFFFD9999D99999999999999909999999999099999D99D9D9BD9DBFDFF9FFDFFFF999C9A9FF9909090A0990090900000000000000000000000000000000090909909999999999999FFFFFFFBFFFBFFBBFBFFBFBF9FB9BDBDBF9FFBFFFFFFFFFFFFFFF99999999999D9999909999990990999999D99BDF9F9FDFDBDDDBDFFDFFF909F09FDFF990B00B09000990A000000000000000000000000000000009009990999909099999999FFFFFFDF9FBF9BDFFFBBDBDBFBDBF9BBDBFBDFDBBDBFFFFFFFFFFD99D999999999909999999999090909999999D99D9D9D9BDDBFDFDFFB909909DF9BDFF9D09000B0900B90900000000000000000000000000000000900909090999909999999DFFFFBBFFBDFFFBDBFDFBFBDBFBDBFDBDBDBBBFDBFF9BFBFFFFFFF9999999D99909999990990909090990999999D9F9F9FDDBDDFFFF090900090B9C9B9D909000909E9BC09000000000000000000000000000000000009099909909990990999FFFFB9DB9FFBF9FBFDBBDBDBDBDBF9BFBFBDFDBFF9FFF9FBDBFFFF999999999999999909990999999999999999DBD9D9D99FDBF999099000900B0DB0D0B09090D000900990000000000000000000000000000000000000090099099099909909FFF99FBFFFBF9FBF9FBDBFBFBFBDBBDF9F9FBBBF9FBF9BF9F9FFFF999999999999999099900990999999999D999D9F9DBDFDBD9900900090009099090BD99C09BDA90900B0000000000000000000000000000000000000000900909909999990BFFA9B9BDBDBFBDBFB9F9F9FDBDBDFBFBFFBDFDBFBDBFDBFBF9BFF990999999099999990999999999909999B9D9F9DBD9999990000090909090900909D909B000990000090900000000000000000000000000000000000000090090990990999DF999BDBBFBDBFBDBFFBFBF9BFBFB9F9F9FBFBF9F9F9BBDBDBF9DBF9990999999999099909999909099099D99999999900900009000090000900B90F0AD0909990CF909090000000000000000000000000000000000000000000900909999909FB09B0B9F9FBF9FBF9BDBDBFF9FFFFBFFBFDBDBFBFBFDBBF9F9BB9099999999990999990909099999999999999990900000000000000090F900900099D990D9000B9A0000900000000000000000000000000000000000000000000909909999F0090999FDBFBDBDBDBDFBFBF9FF9FBDF9FDBFBFDBDBDB9F9BF9F990909999990999090999999990999999999900000000000000000009099009099B90909900009090BC900000000000000000000000000000000000000000000000000909099F909B9B9BBDBBFBFBFBBDBDBFBFF9FFBFFBFBDBFFFBFBF9FB9B9A990990990999999990090999999990990900000000090909009000009AD090B000F0F909DB09090C9009090000000000000000000000000000000000000000000000099990DB090090BDBBDBDBDBDFBFBFFFDBFBF9F9FF9FF9FB9F9FB9BDBD99A9909909990909099990990999099990900000000000000000000009099A90099099CB90B00000B90B000000000000000000000000000000000000000000000000000000909000909B9BBDBFBFBFBBDFDBF9BF9F9FBFBDFBFFBDFBF9FFDB9BB99909099909999999090990999090000000000000000009000000000000090990AD0F9D09090909909009009000000000000000000000000000000000000000000000000900900909099BDBDBDFBDBDFBBF9FF9FBFBDF9FBFDBDFBF9FB9B9F99DB0909090990909909009099909000000000000000000000090900000909009A099B9FBD09A000009090090000000000000000000000000000000000000000000000000000000000090BDBBFBF9FBFFBFDBF9BBB9BDBBFBDBFFFBDBF9DBFB99A909000909099990909090909000000000000000000000000000000000090A909900CF0DBD9900900B009A090090000000000000000000000000000000000000000000000090000000090B9F9FBF9F9FB9BDBF9DBF9BDB9FBDB9FBF9FBBD9FB99B9B99090990909009000090000000000000000000000000000090090000900DADB999FB909E90A09090090000000000000000000000000000000000000000000000000000000000009099F9FBDBFBFBDBFB9BBB99BDBDBBDBFFFDFBF9FBF9DB090900009009090900090000000000000000000000000000090900000090090B90D00B9D09999909A90090009090000000000000000000000000000000000000000000000000000000009BBFBDBFBDBDBDB9F9D99FB9B9BDBBDB9BBBDB9F9BB999B00909009909000090000000000000000000000000000000000000090A90990F909DCB9090C90090B0009A0000000000000000000000000000000000000000000000000000000000090DBDBFBDBBDBB9F99BB9B999BDB9F9BFFFDFBDBBF9DB090900009000000090000000000000000000000000000000000000090009090A90F90B90909B9090B009000909009000000000000000000000000000000000000000000000000000000099BF9BFBDBF9F9BBD99B9BDB9B9B9F99B9BF9F99FBBDB090900000900090000000000000000000000000000000000000000009009A9909090DFBA9009A90909009000000000000000000000000000000000000000000000000000000000000900BF9FBDBF99B9BD9B9BDBDB9F9F9F9BF9FB9FBFB9F9B9909000000000000000000000000000000000000000000000000090000A909C0B0F9CB9D900B009C00A9000090B0000000000000000000000000000000000000000000000000000000009B9FBDBB9BBBDB9B9BDBDBDF9BF9F9F99B9F99B9FF9B00900000000000000000000000000000000000000000000000090009090909A9099090DF09009A9B90909090000900000000000000000000000000000000000000000000000000000000BDB9FBF9F9D9B9B9F9BDBDBBFDBF9F9FBDB9FF9F9BF9B9000000000000000000000000000000000000000000000000000000000009099BC9F9AD90090900990900A90090000000000000000000000000000000000000000000000000000000000BFBDB9B9BB99D9F9F9BFFDFBFDBFBF9F9DB9BF9F9BF9090000000000000000000000000000000000000000000000000000009090A9AD09AD99FB0909A9B00A00990B000900000000000000000000000000000000000000000000000000000009BDBBDBDB9DB9BB9FFFFDBFFFFFFDFFFBFBF9F9BB9F9B90000000000000000000000000000000000000000000000090000090000BD090BD9FE9F9C90B9A90999F000909000000000000000000000000000000000000000000000000000000009BDBBDB9B99B9FBDFFBDFBFFBDBFFBFF9FDF9F9BD9FBDB00000000000000000000000000000000000000000900000000000000090900B9DAF990FB90B09090F0B0D0B00090000000000000000000000000000000000000000000000000000000ADBDBB9B9DB9F9FF9FFBFFFFFFFFFFFFFFBFFFBDBB9B9F9000000000000000000000000000000000000000000000900000000090009900F9DFD9D0B90D00A90909B00090000000000000000000000000000000000000000000000000000000009B9BDBDB9B9FBF9FFFFFFFFFFFFFFFFFFFFFBDFBD9BDB9B0000000000000000000000000000000000000000009000000090090A9000BD9DF9FA99909DA9B9E909A909000900000000000000000000000000000000000000000000000000000009BFB9B999BDBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDB9F900000000000000000000000000000000000000009000009090000AC900B000B0FDFD9C099A9B00990A909090000000000000000000000000000000000000000000009000000000009F9BDB09BBDBFBFFBFFFFFFFFFFFFFFFFFFFFFFBDBDBDB9000000000000000000000000000000000000009000090900C0000909909090999FFF909BB0900090090090B009000000000000000000000000000000000000000000B0F00000000000BF9BD9BD9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBDB9000000000000000000000000000000000000000090000F9F0090090A09CBDBC9DFDBD99BB99A90B0000A9C90090000000000000000000000000000000000000000009AF000000000B9BDB9B9BFDBDFBFDBFFFFFBFFFFFFFFFFFFFFFFFFFF9F9B0000000000000000000000000000000000000000009000F0900000990B0909909FF9E9B900A90B900090099000000000000000000000000000000000000000000000090F000000009F9B9B9FBDBFFBFFFFFFFFFFFFBFFBFBFFFFFBFFFFFDFBFD00000000900000000000000000000000000000000900909000B09000D09ADF0F9F9E9900BD9DB00900009A009000000000000000000000000000000000000000000AD0FB90000000F9BBDBDBDBFFFFFFBFFBFFBFF9FF9FFFFFFBFFDFBFFBF9FB9000000000000000000000000000000000000909009B000009090009A9ADB9F9C9E9909F0B0B0900B009009000000000000000000000000000000000000000000909A090CF000009BBD9B9FBFFFBFFBDFBDFBFDBFFBFFBF9FBDFFFBFFFFFFF9FF00000000000000000000000000000000000000A900009090000090BD9DBDE9F999BC9D9F9F9FAB009CA90A90000000000000000000000000000000000000000000090FB9BB000009BB9DB9FBFFFBFFBFFBFDBFF9FF9FFFFFFFBFFFFBFFFFFFBDF0000009B0000000000000000000000000000000090000090900090F09DBDFFCBC9BDAF9B09090B0A990900090000000000000000000000000000000000000009AF9A90FF000009F99FBFFFFDBFDFBFBDFFBFDBFFBFF9F9FBFFDBFFDFBF9F9FFB90000000000000000000000000000000900009090090900000090F9B0BDBD9F99DF999D0909BA9E990000900000000000000000000000000000000000000009E09009EF900009BB9FBDBDBFBFFFBDFDBF9FFBFDBDB9FBFFFDBFFDFBFFFFFFFBDF90000D000000000000000000000000000090000000000009090F9909D0FBFF9CB9CBDB99A90DA9A09BB0A9000000000000000000000000000000000000000B9B090FFF00000099F9BFBFFFFFFBFFBFFFFB9DB99B9F9DBDBFFFFBFFBDBFBF9FFBF0000B000000000000000000000000000009000909090900B090B0FCBDFDDBF9E99ABC9D00B999900909000000000000000000000000000000000000000000000A9FF9000000F9BFDBDBF9FBFDBDFBF9BDB99B9DB9B99BDBDBFFFFFFFFFFF9BDBF00090000000000000000000000000000009000000A009009A9099FF9FBD0F9909B99B09B090A099A0009000000000000000000000000000000000000000000000FB0000009B9F9BFBFFFFF9FFBFDBF9B9FDDFBDFDFFDBDBFDBDBDBDBDBFFFFFDA000000000000000000000000000000000000900909009909090F9FFD9E9FF990BDA9DB0B9090B00090000000000000000000000000000000000000000000009B90000000BDFBFF9FBDBF9FFBF9BD99FDFBFBDBDBBDBFFDFBFFFBFBFFFF9F9FB90000000000000000000000000000090090A9009C090B9A90BCB9DBFFFDFD00ADA9BB0990B0090A900090000000000000000000000000000000000000000000000000000DBB9F9BFDFBFBFFBDBDB9FFFBDBDFFBFFDBF99B9DBDBDBDBF9FFFFFFF909000000000000000000000000000000900090B9F99C9BC999CB990FBFFBD9FB0DAB009B9B09009B000000900000000000000000000000000000000000000900000000BDFBFF9FBDFFDBF9F9BDB99DBFFBFFDBFFFFF9F99B9FB9BDBFBFBFBFDF000000000000000000000000000000000900A90B00B909B0A9BDADBDF9FFFDF9BB90DBBFB9009B9A90000000000000000000000000000000000000000000000000000BDB9F9BFBFBF9BF9F9F999FB9FFBFFFBFFF9FFFFBD099909BFFFDFDFFBF00000000000000000000000000000090000BD0909990BD0B9C99DFDBDFF9FBD9A9B0B9FB9B0B00090000000000000000000000000000000000000000000000000000BDBFFFFFFDFFDBF9F9B999BF9FFBDFFB9FBFFFFBFF900099BFFDBFBFBDFF9000000000000000000000009000000009090B09A9CBD0B909B0F9FFDF9F090BBB0B0B9B0B9090B09A000000900000000000000000000000000000000000000000009BDBF9FBFBFBFB99B9900BDBF9F9B9B9999B99F9BB900009F9FBFFFFFFBFB0000000000000000000000000090000009E90BD0B90B990B0D99F9FFBFFD990BEB09099A9B9A9CB0900090000000000000000000000000000000000000009000000FBF9FFBDBDFDBDB9900090BFB9B9999D9B999999999999F9BBFDBFBDBFDFFD0000000000000000000000000000909090BD0A90F90DA90B090F909DBDB09BDB90A9A9B009DA99A9A900000000000000000000000000000000000000000000000BF9FFFBFFFBFBFB990000099999999BD9B9D9F9B9D9DBFB9BDBDBBDFFFFBFFBB000000000000000000000009000000009D0B9B09A9B09A99FD9EBFBCB0900BB0A909B0DB9A99A9B0000009000000000000000000000000000000000000F90000F9FFB9F9FBDBF99F9B9D999999999F9FBFDBF9F9FBDFBFDBDBDBFDBF9F9FFFD000000000000000000000090000090A9F9AF90C9A9090B9B0F9F9D0099D09B9A9BFA9A9B0F9F0900B000000000000000000000000000000000000000000000000BFBFFFFBDBBDBFB9BDBBDB9FDBFFFFBDB9B9FBFFDFBFDFBF9B9B9B9FBBFFFBFD00000000000000000000000009000900FD0DB9B09B0B0BC9FFCBAB9A90B00B00A9B09A9BB909F9A9B09000900000000000000000000000000000000000B00009F9F9FBDBBD9B99FBDBDBFDFBFDBF9B9B09999B9FBFFBFBDBF9BDB9F9FDBBDFFB0000000000000000000000000A9000909BD909DBCBD9F9B00F9D90090B9F09ABDB090990009AB09000009000000000000000000000000000000000000090000BFBFFBDBDBBF9FB9B9B9F9FBFFBF9F0999F9BD9F9F9FFFDBDB99B9F9F9BDFBFF9A0000000000000000000000090000009F09090F0BDAF9F099FF9E9F9EDE90ABDAC900000090B909A909A0000000000000000000000000000000000000000009F9FDBDBFB9F99B9DBDBFBFBFDBDB9B9BDB99F9B9BFFF9FBDB99F9F9F9BFF9FFFBD00000000000000000009009000909B90999CBD9F9B9B00B09DBDF9A9B99B09A9B9A09A000900B00A0009090000000000000000000000000000000000F0000ABFBFBB9F9F9FBDB9B9F99FDBFBF9B999B9FF9F9F999BF9FB9B9BDBFBFDF9FBFFF9000000000000000000009000900000C9E9A90F9F0909090DABC9FDFF9A9000000F9A090000000B090900A000000000000000000000000000000000009B9B9D9FBDFDB9B9F9FBDB99BFFBF9F9B99999F9FFFFF9F9F9FF9F99F9FDBDBFBF9F9FF9000000000000000000000000090009090909900FD00A9A9FDDBDBFDFDFF0000099A9A00090000000A009900000000000000000000000000000000009F9F9FBFBDBB9BDBF9F9FBF9B99BDBFBF9F9FBFFFFFFFFFFFFFDBB99B9FFBFFFDFFFFFFFF00000000000000000000009000009A90909A09F90B09C9F9FBFF9CBFFFD000999AB00000000009009090009000000000000000000000000000000F0FFBFFBDF9FBDBF9F9FFBDF9F99BDBF9F9F9FFDFFFFFFFFFFFFFFBDB9DFDBFDFFBF9FF9FBDA000000000000000000090000000000BDA9090909090B9BCBD9999F9FFF000000090000900000000000090000000000000000000000000000000099FBDFBDBBFBDBF9BFBF9FFBF9F9999FB9FFFFBFFFFFFFFFFFFFFF999BFBFFFFBDFFFFFFFFF900000000000000000000000900909909C90000B009BD0D9FB09A9DFFDF00009000000900000A0009A09A90090000000000000000000000000000B9FFBFFBDBDBF9FFDBDFFBDFFFFFB9B9DB9FFFFFFFFFFFFFFFFFFFB9F9FFFFFFFFFFFFFFFFFF0000000000000000000009000000E99F9E9090DB0D0F999D0BC90BDBBF009000F009A00009A900000900000000000000000000000000000000009FF9FB9DBFBF9FBDBFFBDFFBDFF9FF99B9FFFBDFFFFFFFFFFFFFF999FFFFFFFFFFFFFFFFFBFB000000000000000000000000090090FCB909FA90DB990D09F09BD9ADDF00009A9E00090000000090900000000000000000000000000000000000FFBFB9FBF9FDBFFBFFFFFBFFFBFFF9F999FBDFFFFFFFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFFDF90000000000000000009000900090BDBDE9EBD9DBC0099B9F90F9090BF00000909A090000A000000A0900900000000000000000000000000000BDBDBDB9BDBFBF9FFDBFDFF9FFFFFFFFBF99FBFFBFFFFFFFFFFFBF9FFFFFFFFFFFFFFFFFFFFFFB00000000000000000000900000C9090B9F9D909DF9B009D0BD0F9009909A900009909000900000090090000000000000000000000000000000FBFFFBDBDBDBDBFBFFFFBFFFFFFFFFFFFFBF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF0000000000000000000000000B00B09090B0B90BDFDFF0990BDF0B9C900000B09000009A000000909000000900000000000000000000000009BDFB9FB9BBFBFFFDFFFFFFFFFFFFFFFFFFFFF9FBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB00000000000000000090900909900B0D909009CFFDF90B09090909B90000B00A09009A9A0000900A09090000000000000000000000000000BDFBDB9B9FDBDBDBFFBFFFFFFFFFFFFFFFFFDBFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF90000000000000000000009A9009909B09A9F9BB9BB9090909AB0F090000090900B000090090A909000A0000000000000000000000000000FBFFB9FDB9BFFFFFFFFFFBFFBFFFFFFFFFFBFFBDBFDFFFFFFFFFFFFFFFFFFBDFFFFFFFFFFFFFFFDBF00000000000000009000909A0B00B09DB90909C900A9CB9B090F9B0B000A000900B0B009A09C90090909090000000000000000000000009FF9F9BB99B9BFFBFBFDFFDFFFFFFFFFFFDFFF9FFFBFFFFFFFFFFFFFFFFBFFFFBFFFFFFFFFFFFFFBDB00000000000009000090A909909E9F0DCBDADBBF99CB90C09A9CBD900B0900009A0900B00909A90A000000000000000000000000000000FB9B9BDBB90FFDBFFFFBFBFFFFFFBFDBFFBFFBFFBDFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFF9BD0000000000000000000090F0A9F9909B9FD9F0D90FFDADB9A9FB90B0B0B00B09A09A0B0A9CA90090090B09000000000000000000000009FBDB9F9F90F9FBFDF9FFFFFBFFFFDFBFF9FFBDF9FFF9FFFFFFFFFFFFBF9FBDFFBFBFFFFFFFFFFFF99B0000000000000000900B0909DB9A90B0DFBFFDBDDF9A9B90DFF9CF00009B009090A9A090B0909A0000000000000000000000000000000FF9B90BB099BFFFFBFFBF9FFFDBFBBFFDBFB9FBFF9FBFFFFFFFFFBFDBDBF9FB99F9FBFFFFFFFFFFFB0F900000000000000000900B0A9009C909B0D9DBDFBFDF90DB90FDB9BB0A0B90000B009A00AB090900B09090000000000000000000000009B9B9909B009FBFFFBFFFFBDFFFFDFB9BDBDBDB9BFDFBDFFFFFFFFFBFB9B999B99BDF9FFBFFFFFFFD9B0000000000000000900990990BDB9A9C9B90DFFFDBDB090D99DB0C90000B00909CBA90BFB90B009A00A00000000000000000000000000F9090909009B9FDBDFF9FBFFBF9BB99B9A9B9B9F9BBFDBFFFFFFFDBD9BD9B9BDB9F9BFBFDFFFFFFFB9F9000000000000090009A090AD0B0D90B000BFF9DBDF9D09FD9A9D9A0A9B0BF0BABADBA9A90A9A9A90909000000000000000000000000BB0900090909FFFBFFBFFBFDBF9BD99F999999909BDF9BFFFFFFFBBFBB99B9BD9BDBBFFDFFFFFFFFF90B000000000000000009009DAD9B0909090B9D99DA9DB09BDF9099A900000B09B0F9FBCBB9A90B9A9A0A9A900000000000000000000000990909000000B9FFBFF9FDFBDBF9B9B9A9F9B099B9B9FFDFFFFFFDF999B90990B9A9D9BBFBFFFBFFF9F9B0000000000000090090B09B00B09A9090099CBDFF090D9FF9009A900A9AB0B0BB0FB9A9A00B00B90900A000000000000000000000000990D0909009DB9FDFBFBFBFB9B09B999B9999B9090B9BBBFFFFFBFF0909FB090090B99999B9FFFFF0B900000000000009000BC909E9F90F090B0FA9DBDBDBD090D9DAD0DDFA09A90B0B90BFFA9A9B000B00B00B9000000000000000000000009A9BB9A90000BFFBFB9F9B9999099090909ADB909B99F9FDFFFFFDB9B90BD09000009000DB9F9FFFF9909000000000000000009A90909EB90B09C9909D9EFDB0099FF99BBF909BA9B0B00AFFF900F0A0000B090000000000000000000000000909F9F9090009F9BDF9F9B990000000000009F0009099BDBBFBFFFB909090B00009000009A9DBFFFFF000000000000000000999090F009B9CBC9FBF09F9BD900090FF9CA090B0A0900A9AB0BBFEBBFF0B00B0BA9A9000000000000000000000090B9B09000009BFFBFBFBDBDB000000000000B990090B9BDFFFFBDBDB90900000000000DB9BFFFFFFB00000000000000009000A9A90B9009B9FBC9DBD0D0BDB90B9ADB999E99B000B00A9A90DFFCBFFFCFA9ADBCDA0000000000000000000000909B990900000DBDBDBF9BFB9F900000000000009009CB9B9FBFFFFBD09090900000A9B90999FBFFFF90000000000009000B99C909D0B90D0909FBC99999D90090DFFDBC99A9000A00A9A9ABBB9BFFFFBB0FFFFBB090000000000000000000000990000000000BBF9BFDFF9F9B9090900000009000999B9FBFDF9FBDBB9009909A9B9900B9FBDFFFFD000000000000000090009A9E99C0D0B09A90BD9DAD09D9FFFFDFDBDA900B090BB9A9B9009A9BBBBDFFFF0FD000000000000000000000009000900000009BD9ABDBB9B9B909B00090090000A9B0B9F9F9FBFBDB990B000099000099DBF9FBFFFB0000000000009009009B09090F9DB900090BD90B909FFFFDBFBFBC9D0900FBA9E0F000BA000909BABB9FBFA000C000000000000000000090900000000009BBD9B9090909B909B90900900990999B9FBFBDBDBBDB999990009099A9B90FBDFFF90000000000000000A900909090F909909AD9099D90FFDF9A9009DBDB09A9A9E9BBA9A00B00A0009900A90B909A9A9000000000000000000BA9000000000099B9900000000090909090099099B0DB999F9BFBDB9FBC9A99000900909B990B9FFF900000000000000900B09A9F090F9009C9FFFF09CBDFBDF9FFF0909D900FBFBFADBAC9AD0B00B0A00000000000000000000000000000000990000000009B9B000090090009000000009009A909B9FBF9F9BDB9F99B990090000909090BFDFFB900000000000000B009C90D909BD90F9FDFDF9099DF9FDF9FDBD0F909090BB09A9B0B9AB0B0000000A0090900000900000000000000000000000000000009000099B000090000000000009090DBDB9F9BDBDBDBBDA90909000900009ADFDBFF9F0000000000000900909B0B09F0FFFDFFBBBFD90FF9FBF9BDBC9F9CB099BCBB000A90A9000000000009A00A00090A09000000000000000000000000000000900B0B0F90000000000000000909A9B9F9F9B9B9BD9BD99A90A90A009D099BFF9FB900000000090000900A90D0B009099A999C0DBE9D9FC99C90990F9F9F09BB000000000B00B0000009009A0900009000000000000000000000000000000000000999909B0000000009009A90B99BDB9B9F9F9B9B9BBFBDBD9F99FDA9FBE9BDBDB0900000000000000B009A909B09909DBCB990D90FD9B00BDB0BD9E9F9F90BB000000000000000000A0000F0CB0000B00000000000000000000000000000000090B0B9B0900909909D09BDB909F99BDBDB9B909DAD990BDBF9FF9BDB9099FB0B900000000000000B0090090B099A0F909909A99099BD09D909090BDBD090000000000000000000000000FFFFF0A009000000000000000000000000000000000009099099000090009A9B09909B9B0F9B9B9DA99B99BFBF9F9FB9BDB90B9F099900000000000000900D09B09C9AC9990B9C90D0000BD0BC9E9AD09990090900000000B00000000000009AFFFFFFDA000000000000000000000000000000000000009A9B0B9000009A999090B90909B9BDBDA99900909999B9F90909909909B900900000000000000090A000B9E9BE9E900B0B09B0909D99F9FDBD000B9AD0000000000A000000000000ADFFFFFFFDF0000000000000000000000000000000000000090990900000090B99B9000090090B9B9BB9000B00B9F9BFB9000B09090B9B0000000000000009A99090099099F9E99090909909F90D9F9ADBD900DBD9000000BA9000000000000A9FFFFFFFFFB000000000000000000000000000000000000099090000009000909A909900009099A9D9009909909D0BD99000B99A90B090000000000000090000090DB0F0BD9F9E0A9DA9A0DBDA9909C9FF9A9DBC9B00000B0000000000000B09ABBBFFDEBF0000000000000000000000000000000000000000000000090090009909B00009009F99A90900CB090B9F9B09009909090900900000000000000909B00B0909D0A9FDBD0BC909B009D09DBFDBD09A9990000000B0000000000000A000900BFBD900090000000000000000000000000000000000000000000090099000909F90000909B990090B99B009B99090B090B900009000000000000000B00909099A9909900BDA9F9F0B09B9B90BDFF90B09A90900000A0B00000000000B000000000BA00000F000000000000000000000000000000000000000000909009900B909900090B0DA909009A9C900FB900909A9009090000000000000000009A0B0B090DA90990FFDB0F9BDBC900D90FF9F9DA9DAD9000000000000000000B00000AC09A09009FF000D00000000000000000000000000000000000000B090B9000990B9B0090099B9900099DBB9099900B09090900000090000000000000000909090B0990DA0BFFB0FF09ADBDBDF0990FDFFFDA99000000000A00090000000000BCB0A09009EB09A9A0000000000000000000000000000000000000909099000B0909900000909090009A9A99090B09099B090000009000000000000000090900B0F099A9099FFFFDF99DF9FDFDBD90F9E9FFFF90B0000A0009A00A00000000000B0909A000BDB0000000000000000000000000000000000000000009000000909A9000000009A9000099999090F9009B09000000000000000000000000000A90999CBEDA99E9FF9A9F0BDF9F0BD0B09D90F9FFD9000009A0000B00B00000000009A000090000F09E90000000000000000000000000000000000090009090900909909000009090B00000000BC90B9009B9900000000000000000000000009000E0B99FBDADFEBD099090B90D9DB990B0B0BCBFBCB000000000000B000000000B00000000009B09E900B000000000000000000000000000000000009000000090B000B00009000990009099B9B999009B00000090000000000000000090000090990FCBDAF9B9FA9FA0B09099FF9F99C9909B9C9BD00000B00000B00000000A0000000000000ADA0B000000000000000000000000000000000000000009090909909900009009090900009A9090000009909009000000000000000000009009A000BDBDBF90FFFDFF999009FDF0B90A99A0F0DB9CB0000B0000A00000000A00B0000000000009A9BCBD00000000000000000000000000000000000009000000900000900009000000000009090B09000000000009000000000000000000000009B90FFB090B09FBFFF0A9B099DBDA990BD99F9C9B000000A9000000000000B0000000000A0009AC9BCBE90000000000000000000000000000000000000090000B900000000090000090090000090090000090900000000000000000000000900000B9FDE909FF9DFFFFD00FC9FDBDA99EBE9FFBCF900B0090A0900000000000000000000900009B0FBDB0000000000000000000000000000000000000000090900009000000000000000009090009000000000000090000000000000000090090900FFB90BEFFFFFFDFA9FBDBDBC9F9A9D9FFBCBDA0000A0A9A00000000000000000000B0090000090B000000000000000000000000000000000000000090000909000090A90000909B0000009000000000000090000090000000000900900A00009BFF90B99FFFFFBFDFFDF9D99F909DB0B99F9FD0000000090000000000000000A0A00000000000000000000000000000000000000000000000000000000900009090090D09900A9099009000900000000000000000A900000000000A00090909A09FCB0FA9FF9F9BFDFB9D0D90D9E9FD9FA9CBB00A9A90A0000000000000000090900B09000A00000000000000000000000000000000000000000000000090000B090090B09F9009AC990B090009000000000000000000000000900909000090900BFDFDFFFFFF099F0DB990FDFDBF9F009B090000000A9A00000000000000000A0A900A0B009000000000000000000000000000000000000000000000090000000009A999A90990990B09000900000000000000009000090000000000A900A00009FFFFFFFFDBF0FBDBC9DBDB9AD9FA9B0DBCB0000B0009000000A000000000A9090A90900900B0A900000000000000000000000000000000000000000000009909009900999A009A909009000000000000000000000000000000090090099C9000FFFBFFFFBF09ADF09DB999ADB0B9D09A9A900000B000000000000A9A0000000000000B0A00090C9000000000000000000000000000000000000000000000009090009B0B0D90090090900B00000000000000900000000000000000009A0B00000BFDBFFBCD99DBDFD909E90BCBDBA90909000A0000000000000000B0B000000A090A0090900A9A0A9000000000000000000000000000000000000000000000000990099090B009900A0909090000000000000000000000090090009009C0F9009F0FCB9FB90A99FFBDB09BD999CDB0900F00000B000A00000A09A9A9000000A00009000000B00909000000000000000000000000000000000000000000000000900B0000B09090A9090000000000000000000000000000000000900090B90B000A9BB9ED09BD9E9FD9DBD09E9CB90F09B09000B00A090000009A9A00000000090A0000000000900000000000000000000000000000000000000000000000000000900909909000909000090000000000000000000000000909000009A900AD000D9000B90F0BF9DFF90909F9FF90B90FCBF0000B09A0000000A00000000000000900090A0900000000000000000000000000000000000000000000000000000090090000090B0900000900000000000000000000000000000A000B00009090B00BEFF99099D00FBDFF9A909FDBB09A99BFD000000A9A0000000B0000A000000A00A90A090000000000000000000000000000000000000000000000000000000000009009A900009000000000000000000000000000000000009000090BCB009009FFFE9F0AFBD0FBD9C90F09FD0BC9EB09F00A000900000000000A09090000090090000000090B00000000000000000000000000000000000000000000000000000000900009000090000000000000000000000000000900900090900C9009A09FFFFFF0BDFFFB9DB09DF9909ABDBF90FF9000000A0000000B0BA900A000000000000909090A0000000000000000000000000000900000000000000000000000000000000900000000000000000000000000009000000000009A000A090B0090CFFFFFFF9BFFB09A09DBBD0F9FDFFF0FFDB000000000A9A0000000B9000000000B0B000A9A900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090909A90DA09BFFFFFFB0A9FFFF990B00BDF0BFBDBF9BFD0000000B00000B0B09A0A00A0000A00009A90000090000000000000000000900090000000000000000000000000000000000000000000000000000000000000000000900000000900090000FB0D0CFFFFFFF99C909FBA909BDDFB90DDF09F09F0000A9A00000A000A009000009A90000A0000B0F00009000000000000000B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000A90BD00FBFFFFFFFF9AFB09BF9B0FBCBFB90FBE9BFADF9000009A9A00B900B000000000A000009090A90C9000000000000000000900009000000000000000000000000000000000000000000000000000000000000000000000000000000009090C90BDBDFFFFFFFFFDF90BE9F9FB9B9B09A9F9FDEDBD9000A9A0009A0AB00000A00000090B000A0900BFAF0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0B09EFF9FFFFFFFFFFB099FFFFFC9009ADA990B9B0B900000000000900000A090A9000A000A09A0B0FDFBC0000000000000000000900A00000000000000000000000000000000000009000000000000000000000000000000000000000009A9090E9B09FFFFFFFFFFFF909FDFF99F9B0999009009D000009A9A9A00000000900000000900009A900A9EBD9A90000000000000000900009000000000000000000000000000000000000000000000000000000000000000000000000000900000F0B900BE9ADFFFFFFFFFFF09B9A9E9009E000D0DB0A99090A000A000A00000A0A000A000A00A0F00B9F9F0A000000000000000090000900000900000000090000000000000000000900000000000000000000000000000000000000000009C9B009000099FFFFFFFFFFFFFF09A9D9BD9F9B0B0B90D99A0A00BB09000090A09000A9090B009090B0B000A09090000000000000000A0000000000000000000000000000000000000000000A9000000000000000000000000000000000000000B0090009000A9BFFFFFFFFFFFFF0D9AD0F90F090D0909F0900000BA00000A090A0090A0A00B0A000000B099A09A9000000000000000090000000000000090000000000000000000000000000C0900000000000000000000000000000000000009F00900000090CFFFFFFFFFFFFBB0BDB90F90BDABB09F0F00000B09A000090A090B0A900B000000000900A099A000000000000000090000000000000000000000000000000000000000000090B000000000000000000000000000000000A00090090A009000009BFFFFFFFFFF90990BD9F90B909D0BC9F990009A9A90000A009AA09000B00B090000A0009BEA090000000000000000000B0000000000000000000000000000000000000000A0000000000000000000000000000000000090000B90090900090B00B9B9F9BF990A00AD0D00B0D0B0B0BB09A000A000000A900A090B009A09A000A0B009A9A099000000900900000000000000000000000000B00000000000000000000000900000000000000000000000000000000000000900900F000009000090009A9A90A00000999A900B0B0B099CB90900900000000009A00000A9A09BA0900B90009A0A000000000000000000000009000A0000000000900B0000000000000000000009000000000000000000000000000000000000000909900000B09000000009A9000000A09009B0B909A0B90900A00A00A000A0BA90000A9A90A0900A90A0B0A090900909000000000009000900A0900000000000A0000000000000000000000000000000000000000000000000000000000009009A90A00000090B0000000000000000090B9A0BDA90F9EB00B0000000000009A9A00900000B0B0A009A909AD0000000000900000000000000009000C00900000090000000000000000000000000000000000000000000000000000000009A90A900009000099E900000000A0000000900BD00B9BBDBDB9B0B9A0A900000000A9B00A0009A9ADA90B0A9E9A9A09000B0000A900000000000000000009000000000000900000000000000000000000000000000000000000000000000000000009009F09C009A09A000000009A0A0000A0090900A9FBF00B99CB0900A0A000A09AF0B9A90A000B0A9E9B0B0B09A0B00000B0000000000000000000000A00009000000000000000000000000000000000000000000000000000000000000009009090009A909090990000000000900A000909B0909A9B99ACB0900A0B0009A09AB0BB0B00A9A9AB09EB0A9AF0F09000909000009000000000090000090000000000000000000000000000000000000000000000000000000000000000090090A9ACADA9090B0009A0000000000A0A900F90AD090009A90B99090B009A9A9A0BBA9BB0B00B9A9AB9BA90909A9B0A0090A000009000000000000000000000900000000000000000000000000000000000000000000000000000000000000A0B009090909000D090F00900000000009000F0099090A09000B09A90BB09A9A9A9BF09A9A90BA9A9A9BE9BB0BBA9A0909A00009A90A0000000000000000000000000000000000000000000000000000000000000009000000000000000000A909090F0F09A9009A9090B9A900000000A0B0B09B009F000A0009A9C9A99BA9A09AB0BBE9A9A009A9A9A9BA9AF0F0F9A000000900000090000090000000000000000000000000000000000000000000000A000000000A00000000000000000900900C0909F9C9A009CB0B09000000000000000AC09A00F99000009A90DAB09AB0AF9FB0BB9A9A9AA9B0FA99BF9BB9A090A90900A90090000090000090000000000000000000000000000000C0B0000000F000000AD0000000000000000000000000B0B0B090B0D09A90090000000000009A00099B00999A000000F9E9A99BAB90B9BA9BB0A9A9AB9BEBB9BAB0BB00A9000000A090000000900A0000009000000000000000009FD000000009000000009A00C0F0000090000000D0090F00009009E9C90D090BDB0B009090B0000000000A0000B0A0A90DA000009B00B9BDA9F0BFAFB9A0B09A9AB9A9B9BA9B9B009A90A09090900009A909A90090000000900000009000000000A9A90A0000A90000A00C909A00000A000000A009A0009090A9009A9A9A9AD09CB0DA90A090A00000000000B0090900A90DB00000BB0A9A9ABB0B9BA9BA9A0FB9EB9ABA9B0B09ADADA90000A009A90000A000900A9009A0000000000000000009000000900900C000DEF00AC90C900000000009009F0B00A900B00909A9C9A90BDB09A990A909A00000009A0B9A0A90900090B0000DB9E909A9BFBA9B0900BB0BB9A9B9A9A9A09A9A9A009A90A0000009009A0A900000090B090000000000000000000000C0ADBDEFFFFFDFFEFF0E90C09CA900A900909A9C090090B090B90DB9009AD00B00000900000A00BCA09D000999E90000BA9A99BA9ABB09A0A00BBCBB9ABB9A9A000BA9A0B009000000000A0009A00909A0B00000000000009000000000900000B0D0A0B0F9B9BF99B9A90F90CB9C0090E9ADAD0B9A09A000DA9E9B0009090A9090009A0009000B0B09B0A009A09A000009090A09A909A00090B0BBB0B09AB0B09A9000090A00A0000090009A000900A090090A0900000000000000000009A0900E90C9C9AD0A000A009A90A0B00B9EA090909A90090099A9A990009D00A0900A00B0009A00A9A00A9A090A9C9B00900000A0B9BB9A9A90000A9B0BFBBB090A0B09A9A9A0900000000A0A90000A00A900A90A090A09A9000000A00090000090A0900B0BACB0BC9A90000009090B0009CB0F0B09A9AC9A00909E99A90B0090A90900099009A09A9A90A9A0090BC9B0090B00900A90A9A00A00A90A9B0B000A090A0A000000A0B0900B000000000900000B0009000900000090090000000000C909E9F0909B0BCB000000000A0A00F0B0B090B0DA9090B09A0B090A909990009000A90A00900B0A09AF0A9A90B09A000A000A0A90AB9B0B000000A9A0B09A0000A90000000B0B00A000000000A90A0000000000A09A0A9A00000009090AD0F9A9EB09A0F0B0A9A90B000000A9090B0B0009ABC9A9CA9A09AD9099AD9A0D009000A090009B0B0B0B0BA9A9A90A09900B0090A9090A90A0B0090000000B0A00900B00B000000000A90B00A90B00000000000000B09A0090090A00F00A0A900B00909C9A9B0F9A9CB0000A00000CA0A9009A9AD0B9DAB9A9A090ADA090AD9A9000A0090A9B00900B0B9E9A9ADA90900B0090A90A00A909BA900A0A09A0B0B0B0A0B0B0000009A0B0A000090000000000000A00000A090A0B0A9000009090A909BAF0A90BCA9A0DA90B0000900B0B0B0AB0A9A0B90BA90FAD0B0B99990B9AD9D09090BA9009B09B0F9AB9A90A9AAD0BD0B0000A90B00A9A900A00090A09000B0B0B0B0B0A90B0000090B0A00A00000000000000A0909A909009E9E9A9A0B09B0A0D0BDAF0B9E9BB0AB0B090A0000A90BC9A9ADB0A909EFBDABCB00A0CB00909A9090B090B9E90BCBBAB9A90A9A9B0B09B0B0B09A00009AB0A0009A0A900A0BCB0B9A9A009AA0A09A9AA0090090A0A00A009A90A90A0A00A009A9A90000B0AB0A99BAFAFDAF0B0B0B90009AA909AB9AB0BA9E9B0F9F0BFBDEBDBB0BDB99A90B099E90909E9A9B9E9B0BDAB0A9ADB0B09A0B0000A0000B090900B0A090A9009EBDB0A9A9A9A0909A00A90B0A00A00909000A00A90A9009A90B0A9A90A9A9CBF0B9A0009FFFFDB0BCB0ADABA90AA000A9CB09A9B0BB0BFBDFF9FAFCB0B0F0B000F9A999A9A9AB0B0BA0B9A90BCB0BA9E9A9F0A00000B000A9A0B0009AA90A0A0BEFFB9A9A9A9A0B00B00A9A9A9A0B0A0A0000B00A90A9000000B0B0A9000A909B009A0B0FFFFFEF0B0B0B09AB909B0B0AB0B0B0A90A90B0FBFFFFFBFB09990B909A9AABC9BDB9F9F9BB0BBA9AB0B0BB0BDA9B09A09000009A0B0B0B009A0090B9FF9EBF9A90A9A00B00B00B0BE9B0B0B09A9000B0A900000B0B0B0B00A909ABA09A0090BFFFFFFFF0B0A0BE90EBA0B0B90A9A0B9AB9AB0BBCFBDFFFF0F0B0F9EB0DB999BA9ABA9ABA90B90A9B0B0B00B0A9A9A000A00A09A9A9A0B0A9A00B0A9EFFEFF0A9AA90B0B00B0AB0B90BCB0A09A00A0B009A00A0B0B0B0B09A90A0B009A00B0BFFFFFFFFF0B099A9ABB90B9A00A9A0B90A9CADFADFFEFFFFFFFF0BBFB9DBBFBEBDB9A9B9A9BBA0A90A9A9A9A9A90BE090B00909ADB9A9A0A9A9A9A9BBFBFFFFFF009AB0B0FA0B00F0AB0B0A90A0B0900ABA9A99A0BCB0B0A000A9B0B0A90B0A9EFFFFFFFFF0B0A9A9A9EB0A9B09A090AB9BBFFFFFFFFFFFFFFFF909B9A9BFB9B9AFA9A9A9A9009000B0B0000000A90B0A0B0A0A9B0000909A0B0B0F0FCFFFFFFFBA90B0E90B00A9A90BCABCA9A90AA9009A9A0A9A9B0B0F9B0B0A0B0B0B0A9BB9FFFFFFFFFACB0A9ADA90B0A9AA9AA900BCBFFFFFFFDFFFFFFFFB009A909B9EBB9B9ADAB0BAB00000000B0090009A90B00009A9ABBB0B0A00B0FFFBFBFFFFFFFFEDBA9A9A000F9A9AC0A90A9A9EB90ABBE9A9B0A9ACBCB0A0F0B9BD0A9A9B0BCBFFFFFFFFFF9A09ADA9AB0B0A09A90A0BFBFFFFFFFFFBFFFFFFF000A9CB0BFB9EB0F9A90B09000000000000A000000A00B0BA9A9A90A0009ADFFFBCFFFFFFFFFFFB0000000E9A0AC0A900E90A9A90AF909A9A0A900B0B0B09A0BCB0B9B0BADBF9FFFFFFFFFFE9FA9A90E09A9E9AADA9FFFFFFFFFFFBFDFFFFFFF00090B0BDA9A99B00B0BA9A900000000000909000090B0BCBDA909FFBB0ADAFFFFFDFEFFFFFFFF00F00000000B0B00A0000B0A90A90AFABC09000E0E0F0E00F0B0B0A0B09AF9EFFFFFFFFFF9A00E0A090ACBFFF9AFFFFFFFFFFFFFDFEFFFFFFF0000B090B9B9A00A90B0900000000000000000000000BCBF0B0000FFCFB0BFFFFFBEBDFFFFFFFFF00A00A00A0C00C00CA900D0A9CA90090B0A000009A9A9E00BCBC90BCBB9EF9BFFFFFFFFFFDA909C0AC9ACFFFFFFFFFFFFFFFFFBFF9FFFFFFFB000000000009A90000000000000000000000000000A0B0FF00000FFFB0FFFFFFFDFFFFFFFFFFFE0000000000A00A00A0CA00AC0A0CA0E00000000E0F0F00F0CB09A9E900CBDEDFFFFFFFFF0A0E0A0A00A0FFFFFFFFFFFFFFFFFFDE9FFFFFFFF0000000000000000000000000000000000000000000090DADB0000FFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000000B0F00E00A90B0000A9BFFFBFFFFFFFFFF00000000000FFFFFFFFFFFFFFFFFFFBFFFFFFFFF0000000000000000000000000000000000000000000000BFF00000000000000000000000000105000000000000AEAD05FE,'Anne has a BA degree in English from St. Lawrence College. She is fluent in French and German.',5,'http://accweb/emmployees/davolio.bmp') +go +set identity_insert "Employees" off +go +ALTER TABLE "Employees" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +ALTER TABLE "Order Details" NOCHECK CONSTRAINT ALL +go +INSERT "Order Details" VALUES(10248,11,14,12,0) +INSERT "Order Details" VALUES(10248,42,9.8,10,0) +INSERT "Order Details" VALUES(10248,72,34.8,5,0) +INSERT "Order Details" VALUES(10249,14,18.6,9,0) +INSERT "Order Details" VALUES(10249,51,42.4,40,0) +INSERT "Order Details" VALUES(10250,41,7.7,10,0) +INSERT "Order Details" VALUES(10250,51,42.4,35,0.15) +INSERT "Order Details" VALUES(10250,65,16.8,15,0.15) +INSERT "Order Details" VALUES(10251,22,16.8,6,0.05) +INSERT "Order Details" VALUES(10251,57,15.6,15,0.05) +go +INSERT "Order Details" VALUES(10251,65,16.8,20,0) +INSERT "Order Details" VALUES(10252,20,64.8,40,0.05) +INSERT "Order Details" VALUES(10252,33,2,25,0.05) +INSERT "Order Details" VALUES(10252,60,27.2,40,0) +INSERT "Order Details" VALUES(10253,31,10,20,0) +INSERT "Order Details" VALUES(10253,39,14.4,42,0) +INSERT "Order Details" VALUES(10253,49,16,40,0) +INSERT "Order Details" VALUES(10254,24,3.6,15,0.15) +INSERT "Order Details" VALUES(10254,55,19.2,21,0.15) +INSERT "Order Details" VALUES(10254,74,8,21,0) +go +INSERT "Order Details" VALUES(10255,2,15.2,20,0) +INSERT "Order Details" VALUES(10255,16,13.9,35,0) +INSERT "Order Details" VALUES(10255,36,15.2,25,0) +INSERT "Order Details" VALUES(10255,59,44,30,0) +INSERT "Order Details" VALUES(10256,53,26.2,15,0) +INSERT "Order Details" VALUES(10256,77,10.4,12,0) +INSERT "Order Details" VALUES(10257,27,35.1,25,0) +INSERT "Order Details" VALUES(10257,39,14.4,6,0) +INSERT "Order Details" VALUES(10257,77,10.4,15,0) +INSERT "Order Details" VALUES(10258,2,15.2,50,0.2) +go +INSERT "Order Details" VALUES(10258,5,17,65,0.2) +INSERT "Order Details" VALUES(10258,32,25.6,6,0.2) +INSERT "Order Details" VALUES(10259,21,8,10,0) +INSERT "Order Details" VALUES(10259,37,20.8,1,0) +INSERT "Order Details" VALUES(10260,41,7.7,16,0.25) +INSERT "Order Details" VALUES(10260,57,15.6,50,0) +INSERT "Order Details" VALUES(10260,62,39.4,15,0.25) +INSERT "Order Details" VALUES(10260,70,12,21,0.25) +INSERT "Order Details" VALUES(10261,21,8,20,0) +INSERT "Order Details" VALUES(10261,35,14.4,20,0) +go +INSERT "Order Details" VALUES(10262,5,17,12,0.2) +INSERT "Order Details" VALUES(10262,7,24,15,0) +INSERT "Order Details" VALUES(10262,56,30.4,2,0) +INSERT "Order Details" VALUES(10263,16,13.9,60,0.25) +INSERT "Order Details" VALUES(10263,24,3.6,28,0) +INSERT "Order Details" VALUES(10263,30,20.7,60,0.25) +INSERT "Order Details" VALUES(10263,74,8,36,0.25) +INSERT "Order Details" VALUES(10264,2,15.2,35,0) +INSERT "Order Details" VALUES(10264,41,7.7,25,0.15) +INSERT "Order Details" VALUES(10265,17,31.2,30,0) +go +INSERT "Order Details" VALUES(10265,70,12,20,0) +INSERT "Order Details" VALUES(10266,12,30.4,12,0.05) +INSERT "Order Details" VALUES(10267,40,14.7,50,0) +INSERT "Order Details" VALUES(10267,59,44,70,0.15) +INSERT "Order Details" VALUES(10267,76,14.4,15,0.15) +INSERT "Order Details" VALUES(10268,29,99,10,0) +INSERT "Order Details" VALUES(10268,72,27.8,4,0) +INSERT "Order Details" VALUES(10269,33,2,60,0.05) +INSERT "Order Details" VALUES(10269,72,27.8,20,0.05) +INSERT "Order Details" VALUES(10270,36,15.2,30,0) +go +INSERT "Order Details" VALUES(10270,43,36.8,25,0) +INSERT "Order Details" VALUES(10271,33,2,24,0) +INSERT "Order Details" VALUES(10272,20,64.8,6,0) +INSERT "Order Details" VALUES(10272,31,10,40,0) +INSERT "Order Details" VALUES(10272,72,27.8,24,0) +INSERT "Order Details" VALUES(10273,10,24.8,24,0.05) +INSERT "Order Details" VALUES(10273,31,10,15,0.05) +INSERT "Order Details" VALUES(10273,33,2,20,0) +INSERT "Order Details" VALUES(10273,40,14.7,60,0.05) +INSERT "Order Details" VALUES(10273,76,14.4,33,0.05) +go +INSERT "Order Details" VALUES(10274,71,17.2,20,0) +INSERT "Order Details" VALUES(10274,72,27.8,7,0) +INSERT "Order Details" VALUES(10275,24,3.6,12,0.05) +INSERT "Order Details" VALUES(10275,59,44,6,0.05) +INSERT "Order Details" VALUES(10276,10,24.8,15,0) +INSERT "Order Details" VALUES(10276,13,4.8,10,0) +INSERT "Order Details" VALUES(10277,28,36.4,20,0) +INSERT "Order Details" VALUES(10277,62,39.4,12,0) +INSERT "Order Details" VALUES(10278,44,15.5,16,0) +INSERT "Order Details" VALUES(10278,59,44,15,0) +go +INSERT "Order Details" VALUES(10278,63,35.1,8,0) +INSERT "Order Details" VALUES(10278,73,12,25,0) +INSERT "Order Details" VALUES(10279,17,31.2,15,0.25) +INSERT "Order Details" VALUES(10280,24,3.6,12,0) +INSERT "Order Details" VALUES(10280,55,19.2,20,0) +INSERT "Order Details" VALUES(10280,75,6.2,30,0) +INSERT "Order Details" VALUES(10281,19,7.3,1,0) +INSERT "Order Details" VALUES(10281,24,3.6,6,0) +INSERT "Order Details" VALUES(10281,35,14.4,4,0) +INSERT "Order Details" VALUES(10282,30,20.7,6,0) +go +INSERT "Order Details" VALUES(10282,57,15.6,2,0) +INSERT "Order Details" VALUES(10283,15,12.4,20,0) +INSERT "Order Details" VALUES(10283,19,7.3,18,0) +INSERT "Order Details" VALUES(10283,60,27.2,35,0) +INSERT "Order Details" VALUES(10283,72,27.8,3,0) +INSERT "Order Details" VALUES(10284,27,35.1,15,0.25) +INSERT "Order Details" VALUES(10284,44,15.5,21,0) +INSERT "Order Details" VALUES(10284,60,27.2,20,0.25) +INSERT "Order Details" VALUES(10284,67,11.2,5,0.25) +INSERT "Order Details" VALUES(10285,1,14.4,45,0.2) +go +INSERT "Order Details" VALUES(10285,40,14.7,40,0.2) +INSERT "Order Details" VALUES(10285,53,26.2,36,0.2) +INSERT "Order Details" VALUES(10286,35,14.4,100,0) +INSERT "Order Details" VALUES(10286,62,39.4,40,0) +INSERT "Order Details" VALUES(10287,16,13.9,40,0.15) +INSERT "Order Details" VALUES(10287,34,11.2,20,0) +INSERT "Order Details" VALUES(10287,46,9.6,15,0.15) +INSERT "Order Details" VALUES(10288,54,5.9,10,0.1) +INSERT "Order Details" VALUES(10288,68,10,3,0.1) +INSERT "Order Details" VALUES(10289,3,8,30,0) +go +INSERT "Order Details" VALUES(10289,64,26.6,9,0) +INSERT "Order Details" VALUES(10290,5,17,20,0) +INSERT "Order Details" VALUES(10290,29,99,15,0) +INSERT "Order Details" VALUES(10290,49,16,15,0) +INSERT "Order Details" VALUES(10290,77,10.4,10,0) +INSERT "Order Details" VALUES(10291,13,4.8,20,0.1) +INSERT "Order Details" VALUES(10291,44,15.5,24,0.1) +INSERT "Order Details" VALUES(10291,51,42.4,2,0.1) +INSERT "Order Details" VALUES(10292,20,64.8,20,0) +INSERT "Order Details" VALUES(10293,18,50,12,0) +go +INSERT "Order Details" VALUES(10293,24,3.6,10,0) +INSERT "Order Details" VALUES(10293,63,35.1,5,0) +INSERT "Order Details" VALUES(10293,75,6.2,6,0) +INSERT "Order Details" VALUES(10294,1,14.4,18,0) +INSERT "Order Details" VALUES(10294,17,31.2,15,0) +INSERT "Order Details" VALUES(10294,43,36.8,15,0) +INSERT "Order Details" VALUES(10294,60,27.2,21,0) +INSERT "Order Details" VALUES(10294,75,6.2,6,0) +INSERT "Order Details" VALUES(10295,56,30.4,4,0) +INSERT "Order Details" VALUES(10296,11,16.8,12,0) +go +INSERT "Order Details" VALUES(10296,16,13.9,30,0) +INSERT "Order Details" VALUES(10296,69,28.8,15,0) +INSERT "Order Details" VALUES(10297,39,14.4,60,0) +INSERT "Order Details" VALUES(10297,72,27.8,20,0) +INSERT "Order Details" VALUES(10298,2,15.2,40,0) +INSERT "Order Details" VALUES(10298,36,15.2,40,0.25) +INSERT "Order Details" VALUES(10298,59,44,30,0.25) +INSERT "Order Details" VALUES(10298,62,39.4,15,0) +INSERT "Order Details" VALUES(10299,19,7.3,15,0) +INSERT "Order Details" VALUES(10299,70,12,20,0) +go +INSERT "Order Details" VALUES(10300,66,13.6,30,0) +INSERT "Order Details" VALUES(10300,68,10,20,0) +INSERT "Order Details" VALUES(10301,40,14.7,10,0) +INSERT "Order Details" VALUES(10301,56,30.4,20,0) +INSERT "Order Details" VALUES(10302,17,31.2,40,0) +INSERT "Order Details" VALUES(10302,28,36.4,28,0) +INSERT "Order Details" VALUES(10302,43,36.8,12,0) +INSERT "Order Details" VALUES(10303,40,14.7,40,0.1) +INSERT "Order Details" VALUES(10303,65,16.8,30,0.1) +INSERT "Order Details" VALUES(10303,68,10,15,0.1) +go +INSERT "Order Details" VALUES(10304,49,16,30,0) +INSERT "Order Details" VALUES(10304,59,44,10,0) +INSERT "Order Details" VALUES(10304,71,17.2,2,0) +INSERT "Order Details" VALUES(10305,18,50,25,0.1) +INSERT "Order Details" VALUES(10305,29,99,25,0.1) +INSERT "Order Details" VALUES(10305,39,14.4,30,0.1) +INSERT "Order Details" VALUES(10306,30,20.7,10,0) +INSERT "Order Details" VALUES(10306,53,26.2,10,0) +INSERT "Order Details" VALUES(10306,54,5.9,5,0) +INSERT "Order Details" VALUES(10307,62,39.4,10,0) +go +INSERT "Order Details" VALUES(10307,68,10,3,0) +INSERT "Order Details" VALUES(10308,69,28.8,1,0) +INSERT "Order Details" VALUES(10308,70,12,5,0) +INSERT "Order Details" VALUES(10309,4,17.6,20,0) +INSERT "Order Details" VALUES(10309,6,20,30,0) +INSERT "Order Details" VALUES(10309,42,11.2,2,0) +INSERT "Order Details" VALUES(10309,43,36.8,20,0) +INSERT "Order Details" VALUES(10309,71,17.2,3,0) +INSERT "Order Details" VALUES(10310,16,13.9,10,0) +INSERT "Order Details" VALUES(10310,62,39.4,5,0) +go +INSERT "Order Details" VALUES(10311,42,11.2,6,0) +INSERT "Order Details" VALUES(10311,69,28.8,7,0) +INSERT "Order Details" VALUES(10312,28,36.4,4,0) +INSERT "Order Details" VALUES(10312,43,36.8,24,0) +INSERT "Order Details" VALUES(10312,53,26.2,20,0) +INSERT "Order Details" VALUES(10312,75,6.2,10,0) +INSERT "Order Details" VALUES(10313,36,15.2,12,0) +INSERT "Order Details" VALUES(10314,32,25.6,40,0.1) +INSERT "Order Details" VALUES(10314,58,10.6,30,0.1) +INSERT "Order Details" VALUES(10314,62,39.4,25,0.1) +go +INSERT "Order Details" VALUES(10315,34,11.2,14,0) +INSERT "Order Details" VALUES(10315,70,12,30,0) +INSERT "Order Details" VALUES(10316,41,7.7,10,0) +INSERT "Order Details" VALUES(10316,62,39.4,70,0) +INSERT "Order Details" VALUES(10317,1,14.4,20,0) +INSERT "Order Details" VALUES(10318,41,7.7,20,0) +INSERT "Order Details" VALUES(10318,76,14.4,6,0) +INSERT "Order Details" VALUES(10319,17,31.2,8,0) +INSERT "Order Details" VALUES(10319,28,36.4,14,0) +INSERT "Order Details" VALUES(10319,76,14.4,30,0) +go +INSERT "Order Details" VALUES(10320,71,17.2,30,0) +INSERT "Order Details" VALUES(10321,35,14.4,10,0) +INSERT "Order Details" VALUES(10322,52,5.6,20,0) +INSERT "Order Details" VALUES(10323,15,12.4,5,0) +INSERT "Order Details" VALUES(10323,25,11.2,4,0) +INSERT "Order Details" VALUES(10323,39,14.4,4,0) +INSERT "Order Details" VALUES(10324,16,13.9,21,0.15) +INSERT "Order Details" VALUES(10324,35,14.4,70,0.15) +INSERT "Order Details" VALUES(10324,46,9.6,30,0) +INSERT "Order Details" VALUES(10324,59,44,40,0.15) +go +INSERT "Order Details" VALUES(10324,63,35.1,80,0.15) +INSERT "Order Details" VALUES(10325,6,20,6,0) +INSERT "Order Details" VALUES(10325,13,4.8,12,0) +INSERT "Order Details" VALUES(10325,14,18.6,9,0) +INSERT "Order Details" VALUES(10325,31,10,4,0) +INSERT "Order Details" VALUES(10325,72,27.8,40,0) +INSERT "Order Details" VALUES(10326,4,17.6,24,0) +INSERT "Order Details" VALUES(10326,57,15.6,16,0) +INSERT "Order Details" VALUES(10326,75,6.2,50,0) +INSERT "Order Details" VALUES(10327,2,15.2,25,0.2) +go +INSERT "Order Details" VALUES(10327,11,16.8,50,0.2) +INSERT "Order Details" VALUES(10327,30,20.7,35,0.2) +INSERT "Order Details" VALUES(10327,58,10.6,30,0.2) +INSERT "Order Details" VALUES(10328,59,44,9,0) +INSERT "Order Details" VALUES(10328,65,16.8,40,0) +INSERT "Order Details" VALUES(10328,68,10,10,0) +INSERT "Order Details" VALUES(10329,19,7.3,10,0.05) +INSERT "Order Details" VALUES(10329,30,20.7,8,0.05) +INSERT "Order Details" VALUES(10329,38,210.8,20,0.05) +INSERT "Order Details" VALUES(10329,56,30.4,12,0.05) +go +INSERT "Order Details" VALUES(10330,26,24.9,50,0.15) +INSERT "Order Details" VALUES(10330,72,27.8,25,0.15) +INSERT "Order Details" VALUES(10331,54,5.9,15,0) +INSERT "Order Details" VALUES(10332,18,50,40,0.2) +INSERT "Order Details" VALUES(10332,42,11.2,10,0.2) +INSERT "Order Details" VALUES(10332,47,7.6,16,0.2) +INSERT "Order Details" VALUES(10333,14,18.6,10,0) +INSERT "Order Details" VALUES(10333,21,8,10,0.1) +INSERT "Order Details" VALUES(10333,71,17.2,40,0.1) +INSERT "Order Details" VALUES(10334,52,5.6,8,0) +go +INSERT "Order Details" VALUES(10334,68,10,10,0) +INSERT "Order Details" VALUES(10335,2,15.2,7,0.2) +INSERT "Order Details" VALUES(10335,31,10,25,0.2) +INSERT "Order Details" VALUES(10335,32,25.6,6,0.2) +INSERT "Order Details" VALUES(10335,51,42.4,48,0.2) +INSERT "Order Details" VALUES(10336,4,17.6,18,0.1) +INSERT "Order Details" VALUES(10337,23,7.2,40,0) +INSERT "Order Details" VALUES(10337,26,24.9,24,0) +INSERT "Order Details" VALUES(10337,36,15.2,20,0) +INSERT "Order Details" VALUES(10337,37,20.8,28,0) +go +INSERT "Order Details" VALUES(10337,72,27.8,25,0) +INSERT "Order Details" VALUES(10338,17,31.2,20,0) +INSERT "Order Details" VALUES(10338,30,20.7,15,0) +INSERT "Order Details" VALUES(10339,4,17.6,10,0) +INSERT "Order Details" VALUES(10339,17,31.2,70,0.05) +INSERT "Order Details" VALUES(10339,62,39.4,28,0) +INSERT "Order Details" VALUES(10340,18,50,20,0.05) +INSERT "Order Details" VALUES(10340,41,7.7,12,0.05) +INSERT "Order Details" VALUES(10340,43,36.8,40,0.05) +INSERT "Order Details" VALUES(10341,33,2,8,0) +go +INSERT "Order Details" VALUES(10341,59,44,9,0.15) +INSERT "Order Details" VALUES(10342,2,15.2,24,0.2) +INSERT "Order Details" VALUES(10342,31,10,56,0.2) +INSERT "Order Details" VALUES(10342,36,15.2,40,0.2) +INSERT "Order Details" VALUES(10342,55,19.2,40,0.2) +INSERT "Order Details" VALUES(10343,64,26.6,50,0) +INSERT "Order Details" VALUES(10343,68,10,4,0.05) +INSERT "Order Details" VALUES(10343,76,14.4,15,0) +INSERT "Order Details" VALUES(10344,4,17.6,35,0) +INSERT "Order Details" VALUES(10344,8,32,70,0.25) +go +INSERT "Order Details" VALUES(10345,8,32,70,0) +INSERT "Order Details" VALUES(10345,19,7.3,80,0) +INSERT "Order Details" VALUES(10345,42,11.2,9,0) +INSERT "Order Details" VALUES(10346,17,31.2,36,0.1) +INSERT "Order Details" VALUES(10346,56,30.4,20,0) +INSERT "Order Details" VALUES(10347,25,11.2,10,0) +INSERT "Order Details" VALUES(10347,39,14.4,50,0.15) +INSERT "Order Details" VALUES(10347,40,14.7,4,0) +INSERT "Order Details" VALUES(10347,75,6.2,6,0.15) +INSERT "Order Details" VALUES(10348,1,14.4,15,0.15) +go +INSERT "Order Details" VALUES(10348,23,7.2,25,0) +INSERT "Order Details" VALUES(10349,54,5.9,24,0) +INSERT "Order Details" VALUES(10350,50,13,15,0.1) +INSERT "Order Details" VALUES(10350,69,28.8,18,0.1) +INSERT "Order Details" VALUES(10351,38,210.8,20,0.05) +INSERT "Order Details" VALUES(10351,41,7.7,13,0) +INSERT "Order Details" VALUES(10351,44,15.5,77,0.05) +INSERT "Order Details" VALUES(10351,65,16.8,10,0.05) +INSERT "Order Details" VALUES(10352,24,3.6,10,0) +INSERT "Order Details" VALUES(10352,54,5.9,20,0.15) +go +INSERT "Order Details" VALUES(10353,11,16.8,12,0.2) +INSERT "Order Details" VALUES(10353,38,210.8,50,0.2) +INSERT "Order Details" VALUES(10354,1,14.4,12,0) +INSERT "Order Details" VALUES(10354,29,99,4,0) +INSERT "Order Details" VALUES(10355,24,3.6,25,0) +INSERT "Order Details" VALUES(10355,57,15.6,25,0) +INSERT "Order Details" VALUES(10356,31,10,30,0) +INSERT "Order Details" VALUES(10356,55,19.2,12,0) +INSERT "Order Details" VALUES(10356,69,28.8,20,0) +INSERT "Order Details" VALUES(10357,10,24.8,30,0.2) +go +INSERT "Order Details" VALUES(10357,26,24.9,16,0) +INSERT "Order Details" VALUES(10357,60,27.2,8,0.2) +INSERT "Order Details" VALUES(10358,24,3.6,10,0.05) +INSERT "Order Details" VALUES(10358,34,11.2,10,0.05) +INSERT "Order Details" VALUES(10358,36,15.2,20,0.05) +INSERT "Order Details" VALUES(10359,16,13.9,56,0.05) +INSERT "Order Details" VALUES(10359,31,10,70,0.05) +INSERT "Order Details" VALUES(10359,60,27.2,80,0.05) +INSERT "Order Details" VALUES(10360,28,36.4,30,0) +INSERT "Order Details" VALUES(10360,29,99,35,0) +go +INSERT "Order Details" VALUES(10360,38,210.8,10,0) +INSERT "Order Details" VALUES(10360,49,16,35,0) +INSERT "Order Details" VALUES(10360,54,5.9,28,0) +INSERT "Order Details" VALUES(10361,39,14.4,54,0.1) +INSERT "Order Details" VALUES(10361,60,27.2,55,0.1) +INSERT "Order Details" VALUES(10362,25,11.2,50,0) +INSERT "Order Details" VALUES(10362,51,42.4,20,0) +INSERT "Order Details" VALUES(10362,54,5.9,24,0) +INSERT "Order Details" VALUES(10363,31,10,20,0) +INSERT "Order Details" VALUES(10363,75,6.2,12,0) +go +INSERT "Order Details" VALUES(10363,76,14.4,12,0) +INSERT "Order Details" VALUES(10364,69,28.8,30,0) +INSERT "Order Details" VALUES(10364,71,17.2,5,0) +INSERT "Order Details" VALUES(10365,11,16.8,24,0) +INSERT "Order Details" VALUES(10366,65,16.8,5,0) +INSERT "Order Details" VALUES(10366,77,10.4,5,0) +INSERT "Order Details" VALUES(10367,34,11.2,36,0) +INSERT "Order Details" VALUES(10367,54,5.9,18,0) +INSERT "Order Details" VALUES(10367,65,16.8,15,0) +INSERT "Order Details" VALUES(10367,77,10.4,7,0) +go +INSERT "Order Details" VALUES(10368,21,8,5,0.1) +INSERT "Order Details" VALUES(10368,28,36.4,13,0.1) +INSERT "Order Details" VALUES(10368,57,15.6,25,0) +INSERT "Order Details" VALUES(10368,64,26.6,35,0.1) +INSERT "Order Details" VALUES(10369,29,99,20,0) +INSERT "Order Details" VALUES(10369,56,30.4,18,0.25) +INSERT "Order Details" VALUES(10370,1,14.4,15,0.15) +INSERT "Order Details" VALUES(10370,64,26.6,30,0) +INSERT "Order Details" VALUES(10370,74,8,20,0.15) +INSERT "Order Details" VALUES(10371,36,15.2,6,0.2) +go +INSERT "Order Details" VALUES(10372,20,64.8,12,0.25) +INSERT "Order Details" VALUES(10372,38,210.8,40,0.25) +INSERT "Order Details" VALUES(10372,60,27.2,70,0.25) +INSERT "Order Details" VALUES(10372,72,27.8,42,0.25) +INSERT "Order Details" VALUES(10373,58,10.6,80,0.2) +INSERT "Order Details" VALUES(10373,71,17.2,50,0.2) +INSERT "Order Details" VALUES(10374,31,10,30,0) +INSERT "Order Details" VALUES(10374,58,10.6,15,0) +INSERT "Order Details" VALUES(10375,14,18.6,15,0) +INSERT "Order Details" VALUES(10375,54,5.9,10,0) +go +INSERT "Order Details" VALUES(10376,31,10,42,0.05) +INSERT "Order Details" VALUES(10377,28,36.4,20,0.15) +INSERT "Order Details" VALUES(10377,39,14.4,20,0.15) +INSERT "Order Details" VALUES(10378,71,17.2,6,0) +INSERT "Order Details" VALUES(10379,41,7.7,8,0.1) +INSERT "Order Details" VALUES(10379,63,35.1,16,0.1) +INSERT "Order Details" VALUES(10379,65,16.8,20,0.1) +INSERT "Order Details" VALUES(10380,30,20.7,18,0.1) +INSERT "Order Details" VALUES(10380,53,26.2,20,0.1) +INSERT "Order Details" VALUES(10380,60,27.2,6,0.1) +go +INSERT "Order Details" VALUES(10380,70,12,30,0) +INSERT "Order Details" VALUES(10381,74,8,14,0) +INSERT "Order Details" VALUES(10382,5,17,32,0) +INSERT "Order Details" VALUES(10382,18,50,9,0) +INSERT "Order Details" VALUES(10382,29,99,14,0) +INSERT "Order Details" VALUES(10382,33,2,60,0) +INSERT "Order Details" VALUES(10382,74,8,50,0) +INSERT "Order Details" VALUES(10383,13,4.8,20,0) +INSERT "Order Details" VALUES(10383,50,13,15,0) +INSERT "Order Details" VALUES(10383,56,30.4,20,0) +go +INSERT "Order Details" VALUES(10384,20,64.8,28,0) +INSERT "Order Details" VALUES(10384,60,27.2,15,0) +INSERT "Order Details" VALUES(10385,7,24,10,0.2) +INSERT "Order Details" VALUES(10385,60,27.2,20,0.2) +INSERT "Order Details" VALUES(10385,68,10,8,0.2) +INSERT "Order Details" VALUES(10386,24,3.6,15,0) +INSERT "Order Details" VALUES(10386,34,11.2,10,0) +INSERT "Order Details" VALUES(10387,24,3.6,15,0) +INSERT "Order Details" VALUES(10387,28,36.4,6,0) +INSERT "Order Details" VALUES(10387,59,44,12,0) +go +INSERT "Order Details" VALUES(10387,71,17.2,15,0) +INSERT "Order Details" VALUES(10388,45,7.6,15,0.2) +INSERT "Order Details" VALUES(10388,52,5.6,20,0.2) +INSERT "Order Details" VALUES(10388,53,26.2,40,0) +INSERT "Order Details" VALUES(10389,10,24.8,16,0) +INSERT "Order Details" VALUES(10389,55,19.2,15,0) +INSERT "Order Details" VALUES(10389,62,39.4,20,0) +INSERT "Order Details" VALUES(10389,70,12,30,0) +INSERT "Order Details" VALUES(10390,31,10,60,0.1) +INSERT "Order Details" VALUES(10390,35,14.4,40,0.1) +go +INSERT "Order Details" VALUES(10390,46,9.6,45,0) +INSERT "Order Details" VALUES(10390,72,27.8,24,0.1) +INSERT "Order Details" VALUES(10391,13,4.8,18,0) +INSERT "Order Details" VALUES(10392,69,28.8,50,0) +INSERT "Order Details" VALUES(10393,2,15.2,25,0.25) +INSERT "Order Details" VALUES(10393,14,18.6,42,0.25) +INSERT "Order Details" VALUES(10393,25,11.2,7,0.25) +INSERT "Order Details" VALUES(10393,26,24.9,70,0.25) +INSERT "Order Details" VALUES(10393,31,10,32,0) +INSERT "Order Details" VALUES(10394,13,4.8,10,0) +go +INSERT "Order Details" VALUES(10394,62,39.4,10,0) +INSERT "Order Details" VALUES(10395,46,9.6,28,0.1) +INSERT "Order Details" VALUES(10395,53,26.2,70,0.1) +INSERT "Order Details" VALUES(10395,69,28.8,8,0) +INSERT "Order Details" VALUES(10396,23,7.2,40,0) +INSERT "Order Details" VALUES(10396,71,17.2,60,0) +INSERT "Order Details" VALUES(10396,72,27.8,21,0) +INSERT "Order Details" VALUES(10397,21,8,10,0.15) +INSERT "Order Details" VALUES(10397,51,42.4,18,0.15) +INSERT "Order Details" VALUES(10398,35,14.4,30,0) +go +INSERT "Order Details" VALUES(10398,55,19.2,120,0.1) +INSERT "Order Details" VALUES(10399,68,10,60,0) +INSERT "Order Details" VALUES(10399,71,17.2,30,0) +INSERT "Order Details" VALUES(10399,76,14.4,35,0) +INSERT "Order Details" VALUES(10399,77,10.4,14,0) +INSERT "Order Details" VALUES(10400,29,99,21,0) +INSERT "Order Details" VALUES(10400,35,14.4,35,0) +INSERT "Order Details" VALUES(10400,49,16,30,0) +INSERT "Order Details" VALUES(10401,30,20.7,18,0) +INSERT "Order Details" VALUES(10401,56,30.4,70,0) +go +INSERT "Order Details" VALUES(10401,65,16.8,20,0) +INSERT "Order Details" VALUES(10401,71,17.2,60,0) +INSERT "Order Details" VALUES(10402,23,7.2,60,0) +INSERT "Order Details" VALUES(10402,63,35.1,65,0) +INSERT "Order Details" VALUES(10403,16,13.9,21,0.15) +INSERT "Order Details" VALUES(10403,48,10.2,70,0.15) +INSERT "Order Details" VALUES(10404,26,24.9,30,0.05) +INSERT "Order Details" VALUES(10404,42,11.2,40,0.05) +INSERT "Order Details" VALUES(10404,49,16,30,0.05) +INSERT "Order Details" VALUES(10405,3,8,50,0) +go +INSERT "Order Details" VALUES(10406,1,14.4,10,0) +INSERT "Order Details" VALUES(10406,21,8,30,0.1) +INSERT "Order Details" VALUES(10406,28,36.4,42,0.1) +INSERT "Order Details" VALUES(10406,36,15.2,5,0.1) +INSERT "Order Details" VALUES(10406,40,14.7,2,0.1) +INSERT "Order Details" VALUES(10407,11,16.8,30,0) +INSERT "Order Details" VALUES(10407,69,28.8,15,0) +INSERT "Order Details" VALUES(10407,71,17.2,15,0) +INSERT "Order Details" VALUES(10408,37,20.8,10,0) +INSERT "Order Details" VALUES(10408,54,5.9,6,0) +go +INSERT "Order Details" VALUES(10408,62,39.4,35,0) +INSERT "Order Details" VALUES(10409,14,18.6,12,0) +INSERT "Order Details" VALUES(10409,21,8,12,0) +INSERT "Order Details" VALUES(10410,33,2,49,0) +INSERT "Order Details" VALUES(10410,59,44,16,0) +INSERT "Order Details" VALUES(10411,41,7.7,25,0.2) +INSERT "Order Details" VALUES(10411,44,15.5,40,0.2) +INSERT "Order Details" VALUES(10411,59,44,9,0.2) +INSERT "Order Details" VALUES(10412,14,18.6,20,0.1) +INSERT "Order Details" VALUES(10413,1,14.4,24,0) +go +INSERT "Order Details" VALUES(10413,62,39.4,40,0) +INSERT "Order Details" VALUES(10413,76,14.4,14,0) +INSERT "Order Details" VALUES(10414,19,7.3,18,0.05) +INSERT "Order Details" VALUES(10414,33,2,50,0) +INSERT "Order Details" VALUES(10415,17,31.2,2,0) +INSERT "Order Details" VALUES(10415,33,2,20,0) +INSERT "Order Details" VALUES(10416,19,7.3,20,0) +INSERT "Order Details" VALUES(10416,53,26.2,10,0) +INSERT "Order Details" VALUES(10416,57,15.6,20,0) +INSERT "Order Details" VALUES(10417,38,210.8,50,0) +go +INSERT "Order Details" VALUES(10417,46,9.6,2,0.25) +INSERT "Order Details" VALUES(10417,68,10,36,0.25) +INSERT "Order Details" VALUES(10417,77,10.4,35,0) +INSERT "Order Details" VALUES(10418,2,15.2,60,0) +INSERT "Order Details" VALUES(10418,47,7.6,55,0) +INSERT "Order Details" VALUES(10418,61,22.8,16,0) +INSERT "Order Details" VALUES(10418,74,8,15,0) +INSERT "Order Details" VALUES(10419,60,27.2,60,0.05) +INSERT "Order Details" VALUES(10419,69,28.8,20,0.05) +INSERT "Order Details" VALUES(10420,9,77.6,20,0.1) +go +INSERT "Order Details" VALUES(10420,13,4.8,2,0.1) +INSERT "Order Details" VALUES(10420,70,12,8,0.1) +INSERT "Order Details" VALUES(10420,73,12,20,0.1) +INSERT "Order Details" VALUES(10421,19,7.3,4,0.15) +INSERT "Order Details" VALUES(10421,26,24.9,30,0) +INSERT "Order Details" VALUES(10421,53,26.2,15,0.15) +INSERT "Order Details" VALUES(10421,77,10.4,10,0.15) +INSERT "Order Details" VALUES(10422,26,24.9,2,0) +INSERT "Order Details" VALUES(10423,31,10,14,0) +INSERT "Order Details" VALUES(10423,59,44,20,0) +go +INSERT "Order Details" VALUES(10424,35,14.4,60,0.2) +INSERT "Order Details" VALUES(10424,38,210.8,49,0.2) +INSERT "Order Details" VALUES(10424,68,10,30,0.2) +INSERT "Order Details" VALUES(10425,55,19.2,10,0.25) +INSERT "Order Details" VALUES(10425,76,14.4,20,0.25) +INSERT "Order Details" VALUES(10426,56,30.4,5,0) +INSERT "Order Details" VALUES(10426,64,26.6,7,0) +INSERT "Order Details" VALUES(10427,14,18.6,35,0) +INSERT "Order Details" VALUES(10428,46,9.6,20,0) +INSERT "Order Details" VALUES(10429,50,13,40,0) +go +INSERT "Order Details" VALUES(10429,63,35.1,35,0.25) +INSERT "Order Details" VALUES(10430,17,31.2,45,0.2) +INSERT "Order Details" VALUES(10430,21,8,50,0) +INSERT "Order Details" VALUES(10430,56,30.4,30,0) +INSERT "Order Details" VALUES(10430,59,44,70,0.2) +INSERT "Order Details" VALUES(10431,17,31.2,50,0.25) +INSERT "Order Details" VALUES(10431,40,14.7,50,0.25) +INSERT "Order Details" VALUES(10431,47,7.6,30,0.25) +INSERT "Order Details" VALUES(10432,26,24.9,10,0) +INSERT "Order Details" VALUES(10432,54,5.9,40,0) +go +INSERT "Order Details" VALUES(10433,56,30.4,28,0) +INSERT "Order Details" VALUES(10434,11,16.8,6,0) +INSERT "Order Details" VALUES(10434,76,14.4,18,0.15) +INSERT "Order Details" VALUES(10435,2,15.2,10,0) +INSERT "Order Details" VALUES(10435,22,16.8,12,0) +INSERT "Order Details" VALUES(10435,72,27.8,10,0) +INSERT "Order Details" VALUES(10436,46,9.6,5,0) +INSERT "Order Details" VALUES(10436,56,30.4,40,0.1) +INSERT "Order Details" VALUES(10436,64,26.6,30,0.1) +INSERT "Order Details" VALUES(10436,75,6.2,24,0.1) +go +INSERT "Order Details" VALUES(10437,53,26.2,15,0) +INSERT "Order Details" VALUES(10438,19,7.3,15,0.2) +INSERT "Order Details" VALUES(10438,34,11.2,20,0.2) +INSERT "Order Details" VALUES(10438,57,15.6,15,0.2) +INSERT "Order Details" VALUES(10439,12,30.4,15,0) +INSERT "Order Details" VALUES(10439,16,13.9,16,0) +INSERT "Order Details" VALUES(10439,64,26.6,6,0) +INSERT "Order Details" VALUES(10439,74,8,30,0) +INSERT "Order Details" VALUES(10440,2,15.2,45,0.15) +INSERT "Order Details" VALUES(10440,16,13.9,49,0.15) +go +INSERT "Order Details" VALUES(10440,29,99,24,0.15) +INSERT "Order Details" VALUES(10440,61,22.8,90,0.15) +INSERT "Order Details" VALUES(10441,27,35.1,50,0) +INSERT "Order Details" VALUES(10442,11,16.8,30,0) +INSERT "Order Details" VALUES(10442,54,5.9,80,0) +INSERT "Order Details" VALUES(10442,66,13.6,60,0) +INSERT "Order Details" VALUES(10443,11,16.8,6,0.2) +INSERT "Order Details" VALUES(10443,28,36.4,12,0) +INSERT "Order Details" VALUES(10444,17,31.2,10,0) +INSERT "Order Details" VALUES(10444,26,24.9,15,0) +go +INSERT "Order Details" VALUES(10444,35,14.4,8,0) +INSERT "Order Details" VALUES(10444,41,7.7,30,0) +INSERT "Order Details" VALUES(10445,39,14.4,6,0) +INSERT "Order Details" VALUES(10445,54,5.9,15,0) +INSERT "Order Details" VALUES(10446,19,7.3,12,0.1) +INSERT "Order Details" VALUES(10446,24,3.6,20,0.1) +INSERT "Order Details" VALUES(10446,31,10,3,0.1) +INSERT "Order Details" VALUES(10446,52,5.6,15,0.1) +INSERT "Order Details" VALUES(10447,19,7.3,40,0) +INSERT "Order Details" VALUES(10447,65,16.8,35,0) +go +INSERT "Order Details" VALUES(10447,71,17.2,2,0) +INSERT "Order Details" VALUES(10448,26,24.9,6,0) +INSERT "Order Details" VALUES(10448,40,14.7,20,0) +INSERT "Order Details" VALUES(10449,10,24.8,14,0) +INSERT "Order Details" VALUES(10449,52,5.6,20,0) +INSERT "Order Details" VALUES(10449,62,39.4,35,0) +INSERT "Order Details" VALUES(10450,10,24.8,20,0.2) +INSERT "Order Details" VALUES(10450,54,5.9,6,0.2) +INSERT "Order Details" VALUES(10451,55,19.2,120,0.1) +INSERT "Order Details" VALUES(10451,64,26.6,35,0.1) +go +INSERT "Order Details" VALUES(10451,65,16.8,28,0.1) +INSERT "Order Details" VALUES(10451,77,10.4,55,0.1) +INSERT "Order Details" VALUES(10452,28,36.4,15,0) +INSERT "Order Details" VALUES(10452,44,15.5,100,0.05) +INSERT "Order Details" VALUES(10453,48,10.2,15,0.1) +INSERT "Order Details" VALUES(10453,70,12,25,0.1) +INSERT "Order Details" VALUES(10454,16,13.9,20,0.2) +INSERT "Order Details" VALUES(10454,33,2,20,0.2) +INSERT "Order Details" VALUES(10454,46,9.6,10,0.2) +INSERT "Order Details" VALUES(10455,39,14.4,20,0) +go +INSERT "Order Details" VALUES(10455,53,26.2,50,0) +INSERT "Order Details" VALUES(10455,61,22.8,25,0) +INSERT "Order Details" VALUES(10455,71,17.2,30,0) +INSERT "Order Details" VALUES(10456,21,8,40,0.15) +INSERT "Order Details" VALUES(10456,49,16,21,0.15) +INSERT "Order Details" VALUES(10457,59,44,36,0) +INSERT "Order Details" VALUES(10458,26,24.9,30,0) +INSERT "Order Details" VALUES(10458,28,36.4,30,0) +INSERT "Order Details" VALUES(10458,43,36.8,20,0) +INSERT "Order Details" VALUES(10458,56,30.4,15,0) +go +INSERT "Order Details" VALUES(10458,71,17.2,50,0) +INSERT "Order Details" VALUES(10459,7,24,16,0.05) +INSERT "Order Details" VALUES(10459,46,9.6,20,0.05) +INSERT "Order Details" VALUES(10459,72,27.8,40,0) +INSERT "Order Details" VALUES(10460,68,10,21,0.25) +INSERT "Order Details" VALUES(10460,75,6.2,4,0.25) +INSERT "Order Details" VALUES(10461,21,8,40,0.25) +INSERT "Order Details" VALUES(10461,30,20.7,28,0.25) +INSERT "Order Details" VALUES(10461,55,19.2,60,0.25) +INSERT "Order Details" VALUES(10462,13,4.8,1,0) +go +INSERT "Order Details" VALUES(10462,23,7.2,21,0) +INSERT "Order Details" VALUES(10463,19,7.3,21,0) +INSERT "Order Details" VALUES(10463,42,11.2,50,0) +INSERT "Order Details" VALUES(10464,4,17.6,16,0.2) +INSERT "Order Details" VALUES(10464,43,36.8,3,0) +INSERT "Order Details" VALUES(10464,56,30.4,30,0.2) +INSERT "Order Details" VALUES(10464,60,27.2,20,0) +INSERT "Order Details" VALUES(10465,24,3.6,25,0) +INSERT "Order Details" VALUES(10465,29,99,18,0.1) +INSERT "Order Details" VALUES(10465,40,14.7,20,0) +go +INSERT "Order Details" VALUES(10465,45,7.6,30,0.1) +INSERT "Order Details" VALUES(10465,50,13,25,0) +INSERT "Order Details" VALUES(10466,11,16.8,10,0) +INSERT "Order Details" VALUES(10466,46,9.6,5,0) +INSERT "Order Details" VALUES(10467,24,3.6,28,0) +INSERT "Order Details" VALUES(10467,25,11.2,12,0) +INSERT "Order Details" VALUES(10468,30,20.7,8,0) +INSERT "Order Details" VALUES(10468,43,36.8,15,0) +INSERT "Order Details" VALUES(10469,2,15.2,40,0.15) +INSERT "Order Details" VALUES(10469,16,13.9,35,0.15) +go +INSERT "Order Details" VALUES(10469,44,15.5,2,0.15) +INSERT "Order Details" VALUES(10470,18,50,30,0) +INSERT "Order Details" VALUES(10470,23,7.2,15,0) +INSERT "Order Details" VALUES(10470,64,26.6,8,0) +INSERT "Order Details" VALUES(10471,7,24,30,0) +INSERT "Order Details" VALUES(10471,56,30.4,20,0) +INSERT "Order Details" VALUES(10472,24,3.6,80,0.05) +INSERT "Order Details" VALUES(10472,51,42.4,18,0) +INSERT "Order Details" VALUES(10473,33,2,12,0) +INSERT "Order Details" VALUES(10473,71,17.2,12,0) +go +INSERT "Order Details" VALUES(10474,14,18.6,12,0) +INSERT "Order Details" VALUES(10474,28,36.4,18,0) +INSERT "Order Details" VALUES(10474,40,14.7,21,0) +INSERT "Order Details" VALUES(10474,75,6.2,10,0) +INSERT "Order Details" VALUES(10475,31,10,35,0.15) +INSERT "Order Details" VALUES(10475,66,13.6,60,0.15) +INSERT "Order Details" VALUES(10475,76,14.4,42,0.15) +INSERT "Order Details" VALUES(10476,55,19.2,2,0.05) +INSERT "Order Details" VALUES(10476,70,12,12,0) +INSERT "Order Details" VALUES(10477,1,14.4,15,0) +go +INSERT "Order Details" VALUES(10477,21,8,21,0.25) +INSERT "Order Details" VALUES(10477,39,14.4,20,0.25) +INSERT "Order Details" VALUES(10478,10,24.8,20,0.05) +INSERT "Order Details" VALUES(10479,38,210.8,30,0) +INSERT "Order Details" VALUES(10479,53,26.2,28,0) +INSERT "Order Details" VALUES(10479,59,44,60,0) +INSERT "Order Details" VALUES(10479,64,26.6,30,0) +INSERT "Order Details" VALUES(10480,47,7.6,30,0) +INSERT "Order Details" VALUES(10480,59,44,12,0) +INSERT "Order Details" VALUES(10481,49,16,24,0) +go +INSERT "Order Details" VALUES(10481,60,27.2,40,0) +INSERT "Order Details" VALUES(10482,40,14.7,10,0) +INSERT "Order Details" VALUES(10483,34,11.2,35,0.05) +INSERT "Order Details" VALUES(10483,77,10.4,30,0.05) +INSERT "Order Details" VALUES(10484,21,8,14,0) +INSERT "Order Details" VALUES(10484,40,14.7,10,0) +INSERT "Order Details" VALUES(10484,51,42.4,3,0) +INSERT "Order Details" VALUES(10485,2,15.2,20,0.1) +INSERT "Order Details" VALUES(10485,3,8,20,0.1) +INSERT "Order Details" VALUES(10485,55,19.2,30,0.1) +go +INSERT "Order Details" VALUES(10485,70,12,60,0.1) +INSERT "Order Details" VALUES(10486,11,16.8,5,0) +INSERT "Order Details" VALUES(10486,51,42.4,25,0) +INSERT "Order Details" VALUES(10486,74,8,16,0) +INSERT "Order Details" VALUES(10487,19,7.3,5,0) +INSERT "Order Details" VALUES(10487,26,24.9,30,0) +INSERT "Order Details" VALUES(10487,54,5.9,24,0.25) +INSERT "Order Details" VALUES(10488,59,44,30,0) +INSERT "Order Details" VALUES(10488,73,12,20,0.2) +INSERT "Order Details" VALUES(10489,11,16.8,15,0.25) +go +INSERT "Order Details" VALUES(10489,16,13.9,18,0) +INSERT "Order Details" VALUES(10490,59,44,60,0) +INSERT "Order Details" VALUES(10490,68,10,30,0) +INSERT "Order Details" VALUES(10490,75,6.2,36,0) +INSERT "Order Details" VALUES(10491,44,15.5,15,0.15) +INSERT "Order Details" VALUES(10491,77,10.4,7,0.15) +INSERT "Order Details" VALUES(10492,25,11.2,60,0.05) +INSERT "Order Details" VALUES(10492,42,11.2,20,0.05) +INSERT "Order Details" VALUES(10493,65,16.8,15,0.1) +INSERT "Order Details" VALUES(10493,66,13.6,10,0.1) +go +INSERT "Order Details" VALUES(10493,69,28.8,10,0.1) +INSERT "Order Details" VALUES(10494,56,30.4,30,0) +INSERT "Order Details" VALUES(10495,23,7.2,10,0) +INSERT "Order Details" VALUES(10495,41,7.7,20,0) +INSERT "Order Details" VALUES(10495,77,10.4,5,0) +INSERT "Order Details" VALUES(10496,31,10,20,0.05) +INSERT "Order Details" VALUES(10497,56,30.4,14,0) +INSERT "Order Details" VALUES(10497,72,27.8,25,0) +INSERT "Order Details" VALUES(10497,77,10.4,25,0) +INSERT "Order Details" VALUES(10498,24,4.5,14,0) +go +INSERT "Order Details" VALUES(10498,40,18.4,5,0) +INSERT "Order Details" VALUES(10498,42,14,30,0) +INSERT "Order Details" VALUES(10499,28,45.6,20,0) +INSERT "Order Details" VALUES(10499,49,20,25,0) +INSERT "Order Details" VALUES(10500,15,15.5,12,0.05) +INSERT "Order Details" VALUES(10500,28,45.6,8,0.05) +INSERT "Order Details" VALUES(10501,54,7.45,20,0) +INSERT "Order Details" VALUES(10502,45,9.5,21,0) +INSERT "Order Details" VALUES(10502,53,32.8,6,0) +INSERT "Order Details" VALUES(10502,67,14,30,0) +go +INSERT "Order Details" VALUES(10503,14,23.25,70,0) +INSERT "Order Details" VALUES(10503,65,21.05,20,0) +INSERT "Order Details" VALUES(10504,2,19,12,0) +INSERT "Order Details" VALUES(10504,21,10,12,0) +INSERT "Order Details" VALUES(10504,53,32.8,10,0) +INSERT "Order Details" VALUES(10504,61,28.5,25,0) +INSERT "Order Details" VALUES(10505,62,49.3,3,0) +INSERT "Order Details" VALUES(10506,25,14,18,0.1) +INSERT "Order Details" VALUES(10506,70,15,14,0.1) +INSERT "Order Details" VALUES(10507,43,46,15,0.15) +go +INSERT "Order Details" VALUES(10507,48,12.75,15,0.15) +INSERT "Order Details" VALUES(10508,13,6,10,0) +INSERT "Order Details" VALUES(10508,39,18,10,0) +INSERT "Order Details" VALUES(10509,28,45.6,3,0) +INSERT "Order Details" VALUES(10510,29,123.79,36,0) +INSERT "Order Details" VALUES(10510,75,7.75,36,0.1) +INSERT "Order Details" VALUES(10511,4,22,50,0.15) +INSERT "Order Details" VALUES(10511,7,30,50,0.15) +INSERT "Order Details" VALUES(10511,8,40,10,0.15) +INSERT "Order Details" VALUES(10512,24,4.5,10,0.15) +go +INSERT "Order Details" VALUES(10512,46,12,9,0.15) +INSERT "Order Details" VALUES(10512,47,9.5,6,0.15) +INSERT "Order Details" VALUES(10512,60,34,12,0.15) +INSERT "Order Details" VALUES(10513,21,10,40,0.2) +INSERT "Order Details" VALUES(10513,32,32,50,0.2) +INSERT "Order Details" VALUES(10513,61,28.5,15,0.2) +INSERT "Order Details" VALUES(10514,20,81,39,0) +INSERT "Order Details" VALUES(10514,28,45.6,35,0) +INSERT "Order Details" VALUES(10514,56,38,70,0) +INSERT "Order Details" VALUES(10514,65,21.05,39,0) +go +INSERT "Order Details" VALUES(10514,75,7.75,50,0) +INSERT "Order Details" VALUES(10515,9,97,16,0.15) +INSERT "Order Details" VALUES(10515,16,17.45,50,0) +INSERT "Order Details" VALUES(10515,27,43.9,120,0) +INSERT "Order Details" VALUES(10515,33,2.5,16,0.15) +INSERT "Order Details" VALUES(10515,60,34,84,0.15) +INSERT "Order Details" VALUES(10516,18,62.5,25,0.1) +INSERT "Order Details" VALUES(10516,41,9.65,80,0.1) +INSERT "Order Details" VALUES(10516,42,14,20,0) +INSERT "Order Details" VALUES(10517,52,7,6,0) +go +INSERT "Order Details" VALUES(10517,59,55,4,0) +INSERT "Order Details" VALUES(10517,70,15,6,0) +INSERT "Order Details" VALUES(10518,24,4.5,5,0) +INSERT "Order Details" VALUES(10518,38,263.5,15,0) +INSERT "Order Details" VALUES(10518,44,19.45,9,0) +INSERT "Order Details" VALUES(10519,10,31,16,0.05) +INSERT "Order Details" VALUES(10519,56,38,40,0) +INSERT "Order Details" VALUES(10519,60,34,10,0.05) +INSERT "Order Details" VALUES(10520,24,4.5,8,0) +INSERT "Order Details" VALUES(10520,53,32.8,5,0) +go +INSERT "Order Details" VALUES(10521,35,18,3,0) +INSERT "Order Details" VALUES(10521,41,9.65,10,0) +INSERT "Order Details" VALUES(10521,68,12.5,6,0) +INSERT "Order Details" VALUES(10522,1,18,40,0.2) +INSERT "Order Details" VALUES(10522,8,40,24,0) +INSERT "Order Details" VALUES(10522,30,25.89,20,0.2) +INSERT "Order Details" VALUES(10522,40,18.4,25,0.2) +INSERT "Order Details" VALUES(10523,17,39,25,0.1) +INSERT "Order Details" VALUES(10523,20,81,15,0.1) +INSERT "Order Details" VALUES(10523,37,26,18,0.1) +go +INSERT "Order Details" VALUES(10523,41,9.65,6,0.1) +INSERT "Order Details" VALUES(10524,10,31,2,0) +INSERT "Order Details" VALUES(10524,30,25.89,10,0) +INSERT "Order Details" VALUES(10524,43,46,60,0) +INSERT "Order Details" VALUES(10524,54,7.45,15,0) +INSERT "Order Details" VALUES(10525,36,19,30,0) +INSERT "Order Details" VALUES(10525,40,18.4,15,0.1) +INSERT "Order Details" VALUES(10526,1,18,8,0.15) +INSERT "Order Details" VALUES(10526,13,6,10,0) +INSERT "Order Details" VALUES(10526,56,38,30,0.15) +go +INSERT "Order Details" VALUES(10527,4,22,50,0.1) +INSERT "Order Details" VALUES(10527,36,19,30,0.1) +INSERT "Order Details" VALUES(10528,11,21,3,0) +INSERT "Order Details" VALUES(10528,33,2.5,8,0.2) +INSERT "Order Details" VALUES(10528,72,34.8,9,0) +INSERT "Order Details" VALUES(10529,55,24,14,0) +INSERT "Order Details" VALUES(10529,68,12.5,20,0) +INSERT "Order Details" VALUES(10529,69,36,10,0) +INSERT "Order Details" VALUES(10530,17,39,40,0) +INSERT "Order Details" VALUES(10530,43,46,25,0) +go +INSERT "Order Details" VALUES(10530,61,28.5,20,0) +INSERT "Order Details" VALUES(10530,76,18,50,0) +INSERT "Order Details" VALUES(10531,59,55,2,0) +INSERT "Order Details" VALUES(10532,30,25.89,15,0) +INSERT "Order Details" VALUES(10532,66,17,24,0) +INSERT "Order Details" VALUES(10533,4,22,50,0.05) +INSERT "Order Details" VALUES(10533,72,34.8,24,0) +INSERT "Order Details" VALUES(10533,73,15,24,0.05) +INSERT "Order Details" VALUES(10534,30,25.89,10,0) +INSERT "Order Details" VALUES(10534,40,18.4,10,0.2) +go +INSERT "Order Details" VALUES(10534,54,7.45,10,0.2) +INSERT "Order Details" VALUES(10535,11,21,50,0.1) +INSERT "Order Details" VALUES(10535,40,18.4,10,0.1) +INSERT "Order Details" VALUES(10535,57,19.5,5,0.1) +INSERT "Order Details" VALUES(10535,59,55,15,0.1) +INSERT "Order Details" VALUES(10536,12,38,15,0.25) +INSERT "Order Details" VALUES(10536,31,12.5,20,0) +INSERT "Order Details" VALUES(10536,33,2.5,30,0) +INSERT "Order Details" VALUES(10536,60,34,35,0.25) +INSERT "Order Details" VALUES(10537,31,12.5,30,0) +go +INSERT "Order Details" VALUES(10537,51,53,6,0) +INSERT "Order Details" VALUES(10537,58,13.25,20,0) +INSERT "Order Details" VALUES(10537,72,34.8,21,0) +INSERT "Order Details" VALUES(10537,73,15,9,0) +INSERT "Order Details" VALUES(10538,70,15,7,0) +INSERT "Order Details" VALUES(10538,72,34.8,1,0) +INSERT "Order Details" VALUES(10539,13,6,8,0) +INSERT "Order Details" VALUES(10539,21,10,15,0) +INSERT "Order Details" VALUES(10539,33,2.5,15,0) +INSERT "Order Details" VALUES(10539,49,20,6,0) +go +INSERT "Order Details" VALUES(10540,3,10,60,0) +INSERT "Order Details" VALUES(10540,26,31.23,40,0) +INSERT "Order Details" VALUES(10540,38,263.5,30,0) +INSERT "Order Details" VALUES(10540,68,12.5,35,0) +INSERT "Order Details" VALUES(10541,24,4.5,35,0.1) +INSERT "Order Details" VALUES(10541,38,263.5,4,0.1) +INSERT "Order Details" VALUES(10541,65,21.05,36,0.1) +INSERT "Order Details" VALUES(10541,71,21.5,9,0.1) +INSERT "Order Details" VALUES(10542,11,21,15,0.05) +INSERT "Order Details" VALUES(10542,54,7.45,24,0.05) +go +INSERT "Order Details" VALUES(10543,12,38,30,0.15) +INSERT "Order Details" VALUES(10543,23,9,70,0.15) +INSERT "Order Details" VALUES(10544,28,45.6,7,0) +INSERT "Order Details" VALUES(10544,67,14,7,0) +INSERT "Order Details" VALUES(10545,11,21,10,0) +INSERT "Order Details" VALUES(10546,7,30,10,0) +INSERT "Order Details" VALUES(10546,35,18,30,0) +INSERT "Order Details" VALUES(10546,62,49.3,40,0) +INSERT "Order Details" VALUES(10547,32,32,24,0.15) +INSERT "Order Details" VALUES(10547,36,19,60,0) +go +INSERT "Order Details" VALUES(10548,34,14,10,0.25) +INSERT "Order Details" VALUES(10548,41,9.65,14,0) +INSERT "Order Details" VALUES(10549,31,12.5,55,0.15) +INSERT "Order Details" VALUES(10549,45,9.5,100,0.15) +INSERT "Order Details" VALUES(10549,51,53,48,0.15) +INSERT "Order Details" VALUES(10550,17,39,8,0.1) +INSERT "Order Details" VALUES(10550,19,9.2,10,0) +INSERT "Order Details" VALUES(10550,21,10,6,0.1) +INSERT "Order Details" VALUES(10550,61,28.5,10,0.1) +INSERT "Order Details" VALUES(10551,16,17.45,40,0.15) +go +INSERT "Order Details" VALUES(10551,35,18,20,0.15) +INSERT "Order Details" VALUES(10551,44,19.45,40,0) +INSERT "Order Details" VALUES(10552,69,36,18,0) +INSERT "Order Details" VALUES(10552,75,7.75,30,0) +INSERT "Order Details" VALUES(10553,11,21,15,0) +INSERT "Order Details" VALUES(10553,16,17.45,14,0) +INSERT "Order Details" VALUES(10553,22,21,24,0) +INSERT "Order Details" VALUES(10553,31,12.5,30,0) +INSERT "Order Details" VALUES(10553,35,18,6,0) +INSERT "Order Details" VALUES(10554,16,17.45,30,0.05) +go +INSERT "Order Details" VALUES(10554,23,9,20,0.05) +INSERT "Order Details" VALUES(10554,62,49.3,20,0.05) +INSERT "Order Details" VALUES(10554,77,13,10,0.05) +INSERT "Order Details" VALUES(10555,14,23.25,30,0.2) +INSERT "Order Details" VALUES(10555,19,9.2,35,0.2) +INSERT "Order Details" VALUES(10555,24,4.5,18,0.2) +INSERT "Order Details" VALUES(10555,51,53,20,0.2) +INSERT "Order Details" VALUES(10555,56,38,40,0.2) +INSERT "Order Details" VALUES(10556,72,34.8,24,0) +INSERT "Order Details" VALUES(10557,64,33.25,30,0) +go +INSERT "Order Details" VALUES(10557,75,7.75,20,0) +INSERT "Order Details" VALUES(10558,47,9.5,25,0) +INSERT "Order Details" VALUES(10558,51,53,20,0) +INSERT "Order Details" VALUES(10558,52,7,30,0) +INSERT "Order Details" VALUES(10558,53,32.8,18,0) +INSERT "Order Details" VALUES(10558,73,15,3,0) +INSERT "Order Details" VALUES(10559,41,9.65,12,0.05) +INSERT "Order Details" VALUES(10559,55,24,18,0.05) +INSERT "Order Details" VALUES(10560,30,25.89,20,0) +INSERT "Order Details" VALUES(10560,62,49.3,15,0.25) +go +INSERT "Order Details" VALUES(10561,44,19.45,10,0) +INSERT "Order Details" VALUES(10561,51,53,50,0) +INSERT "Order Details" VALUES(10562,33,2.5,20,0.1) +INSERT "Order Details" VALUES(10562,62,49.3,10,0.1) +INSERT "Order Details" VALUES(10563,36,19,25,0) +INSERT "Order Details" VALUES(10563,52,7,70,0) +INSERT "Order Details" VALUES(10564,17,39,16,0.05) +INSERT "Order Details" VALUES(10564,31,12.5,6,0.05) +INSERT "Order Details" VALUES(10564,55,24,25,0.05) +INSERT "Order Details" VALUES(10565,24,4.5,25,0.1) +go +INSERT "Order Details" VALUES(10565,64,33.25,18,0.1) +INSERT "Order Details" VALUES(10566,11,21,35,0.15) +INSERT "Order Details" VALUES(10566,18,62.5,18,0.15) +INSERT "Order Details" VALUES(10566,76,18,10,0) +INSERT "Order Details" VALUES(10567,31,12.5,60,0.2) +INSERT "Order Details" VALUES(10567,51,53,3,0) +INSERT "Order Details" VALUES(10567,59,55,40,0.2) +INSERT "Order Details" VALUES(10568,10,31,5,0) +INSERT "Order Details" VALUES(10569,31,12.5,35,0.2) +INSERT "Order Details" VALUES(10569,76,18,30,0) +go +INSERT "Order Details" VALUES(10570,11,21,15,0.05) +INSERT "Order Details" VALUES(10570,56,38,60,0.05) +INSERT "Order Details" VALUES(10571,14,23.25,11,0.15) +INSERT "Order Details" VALUES(10571,42,14,28,0.15) +INSERT "Order Details" VALUES(10572,16,17.45,12,0.1) +INSERT "Order Details" VALUES(10572,32,32,10,0.1) +INSERT "Order Details" VALUES(10572,40,18.4,50,0) +INSERT "Order Details" VALUES(10572,75,7.75,15,0.1) +INSERT "Order Details" VALUES(10573,17,39,18,0) +INSERT "Order Details" VALUES(10573,34,14,40,0) +go +INSERT "Order Details" VALUES(10573,53,32.8,25,0) +INSERT "Order Details" VALUES(10574,33,2.5,14,0) +INSERT "Order Details" VALUES(10574,40,18.4,2,0) +INSERT "Order Details" VALUES(10574,62,49.3,10,0) +INSERT "Order Details" VALUES(10574,64,33.25,6,0) +INSERT "Order Details" VALUES(10575,59,55,12,0) +INSERT "Order Details" VALUES(10575,63,43.9,6,0) +INSERT "Order Details" VALUES(10575,72,34.8,30,0) +INSERT "Order Details" VALUES(10575,76,18,10,0) +INSERT "Order Details" VALUES(10576,1,18,10,0) +go +INSERT "Order Details" VALUES(10576,31,12.5,20,0) +INSERT "Order Details" VALUES(10576,44,19.45,21,0) +INSERT "Order Details" VALUES(10577,39,18,10,0) +INSERT "Order Details" VALUES(10577,75,7.75,20,0) +INSERT "Order Details" VALUES(10577,77,13,18,0) +INSERT "Order Details" VALUES(10578,35,18,20,0) +INSERT "Order Details" VALUES(10578,57,19.5,6,0) +INSERT "Order Details" VALUES(10579,15,15.5,10,0) +INSERT "Order Details" VALUES(10579,75,7.75,21,0) +INSERT "Order Details" VALUES(10580,14,23.25,15,0.05) +go +INSERT "Order Details" VALUES(10580,41,9.65,9,0.05) +INSERT "Order Details" VALUES(10580,65,21.05,30,0.05) +INSERT "Order Details" VALUES(10581,75,7.75,50,0.2) +INSERT "Order Details" VALUES(10582,57,19.5,4,0) +INSERT "Order Details" VALUES(10582,76,18,14,0) +INSERT "Order Details" VALUES(10583,29,123.79,10,0) +INSERT "Order Details" VALUES(10583,60,34,24,0.15) +INSERT "Order Details" VALUES(10583,69,36,10,0.15) +INSERT "Order Details" VALUES(10584,31,12.5,50,0.05) +INSERT "Order Details" VALUES(10585,47,9.5,15,0) +go +INSERT "Order Details" VALUES(10586,52,7,4,0.15) +INSERT "Order Details" VALUES(10587,26,31.23,6,0) +INSERT "Order Details" VALUES(10587,35,18,20,0) +INSERT "Order Details" VALUES(10587,77,13,20,0) +INSERT "Order Details" VALUES(10588,18,62.5,40,0.2) +INSERT "Order Details" VALUES(10588,42,14,100,0.2) +INSERT "Order Details" VALUES(10589,35,18,4,0) +INSERT "Order Details" VALUES(10590,1,18,20,0) +INSERT "Order Details" VALUES(10590,77,13,60,0.05) +INSERT "Order Details" VALUES(10591,3,10,14,0) +go +INSERT "Order Details" VALUES(10591,7,30,10,0) +INSERT "Order Details" VALUES(10591,54,7.45,50,0) +INSERT "Order Details" VALUES(10592,15,15.5,25,0.05) +INSERT "Order Details" VALUES(10592,26,31.23,5,0.05) +INSERT "Order Details" VALUES(10593,20,81,21,0.2) +INSERT "Order Details" VALUES(10593,69,36,20,0.2) +INSERT "Order Details" VALUES(10593,76,18,4,0.2) +INSERT "Order Details" VALUES(10594,52,7,24,0) +INSERT "Order Details" VALUES(10594,58,13.25,30,0) +INSERT "Order Details" VALUES(10595,35,18,30,0.25) +go +INSERT "Order Details" VALUES(10595,61,28.5,120,0.25) +INSERT "Order Details" VALUES(10595,69,36,65,0.25) +INSERT "Order Details" VALUES(10596,56,38,5,0.2) +INSERT "Order Details" VALUES(10596,63,43.9,24,0.2) +INSERT "Order Details" VALUES(10596,75,7.75,30,0.2) +INSERT "Order Details" VALUES(10597,24,4.5,35,0.2) +INSERT "Order Details" VALUES(10597,57,19.5,20,0) +INSERT "Order Details" VALUES(10597,65,21.05,12,0.2) +INSERT "Order Details" VALUES(10598,27,43.9,50,0) +INSERT "Order Details" VALUES(10598,71,21.5,9,0) +go +INSERT "Order Details" VALUES(10599,62,49.3,10,0) +INSERT "Order Details" VALUES(10600,54,7.45,4,0) +INSERT "Order Details" VALUES(10600,73,15,30,0) +INSERT "Order Details" VALUES(10601,13,6,60,0) +INSERT "Order Details" VALUES(10601,59,55,35,0) +INSERT "Order Details" VALUES(10602,77,13,5,0.25) +INSERT "Order Details" VALUES(10603,22,21,48,0) +INSERT "Order Details" VALUES(10603,49,20,25,0.05) +INSERT "Order Details" VALUES(10604,48,12.75,6,0.1) +INSERT "Order Details" VALUES(10604,76,18,10,0.1) +go +INSERT "Order Details" VALUES(10605,16,17.45,30,0.05) +INSERT "Order Details" VALUES(10605,59,55,20,0.05) +INSERT "Order Details" VALUES(10605,60,34,70,0.05) +INSERT "Order Details" VALUES(10605,71,21.5,15,0.05) +INSERT "Order Details" VALUES(10606,4,22,20,0.2) +INSERT "Order Details" VALUES(10606,55,24,20,0.2) +INSERT "Order Details" VALUES(10606,62,49.3,10,0.2) +INSERT "Order Details" VALUES(10607,7,30,45,0) +INSERT "Order Details" VALUES(10607,17,39,100,0) +INSERT "Order Details" VALUES(10607,33,2.5,14,0) +go +INSERT "Order Details" VALUES(10607,40,18.4,42,0) +INSERT "Order Details" VALUES(10607,72,34.8,12,0) +INSERT "Order Details" VALUES(10608,56,38,28,0) +INSERT "Order Details" VALUES(10609,1,18,3,0) +INSERT "Order Details" VALUES(10609,10,31,10,0) +INSERT "Order Details" VALUES(10609,21,10,6,0) +INSERT "Order Details" VALUES(10610,36,19,21,0.25) +INSERT "Order Details" VALUES(10611,1,18,6,0) +INSERT "Order Details" VALUES(10611,2,19,10,0) +INSERT "Order Details" VALUES(10611,60,34,15,0) +go +INSERT "Order Details" VALUES(10612,10,31,70,0) +INSERT "Order Details" VALUES(10612,36,19,55,0) +INSERT "Order Details" VALUES(10612,49,20,18,0) +INSERT "Order Details" VALUES(10612,60,34,40,0) +INSERT "Order Details" VALUES(10612,76,18,80,0) +INSERT "Order Details" VALUES(10613,13,6,8,0.1) +INSERT "Order Details" VALUES(10613,75,7.75,40,0) +INSERT "Order Details" VALUES(10614,11,21,14,0) +INSERT "Order Details" VALUES(10614,21,10,8,0) +INSERT "Order Details" VALUES(10614,39,18,5,0) +go +INSERT "Order Details" VALUES(10615,55,24,5,0) +INSERT "Order Details" VALUES(10616,38,263.5,15,0.05) +INSERT "Order Details" VALUES(10616,56,38,14,0) +INSERT "Order Details" VALUES(10616,70,15,15,0.05) +INSERT "Order Details" VALUES(10616,71,21.5,15,0.05) +INSERT "Order Details" VALUES(10617,59,55,30,0.15) +INSERT "Order Details" VALUES(10618,6,25,70,0) +INSERT "Order Details" VALUES(10618,56,38,20,0) +INSERT "Order Details" VALUES(10618,68,12.5,15,0) +INSERT "Order Details" VALUES(10619,21,10,42,0) +go +INSERT "Order Details" VALUES(10619,22,21,40,0) +INSERT "Order Details" VALUES(10620,24,4.5,5,0) +INSERT "Order Details" VALUES(10620,52,7,5,0) +INSERT "Order Details" VALUES(10621,19,9.2,5,0) +INSERT "Order Details" VALUES(10621,23,9,10,0) +INSERT "Order Details" VALUES(10621,70,15,20,0) +INSERT "Order Details" VALUES(10621,71,21.5,15,0) +INSERT "Order Details" VALUES(10622,2,19,20,0) +INSERT "Order Details" VALUES(10622,68,12.5,18,0.2) +INSERT "Order Details" VALUES(10623,14,23.25,21,0) +go +INSERT "Order Details" VALUES(10623,19,9.2,15,0.1) +INSERT "Order Details" VALUES(10623,21,10,25,0.1) +INSERT "Order Details" VALUES(10623,24,4.5,3,0) +INSERT "Order Details" VALUES(10623,35,18,30,0.1) +INSERT "Order Details" VALUES(10624,28,45.6,10,0) +INSERT "Order Details" VALUES(10624,29,123.79,6,0) +INSERT "Order Details" VALUES(10624,44,19.45,10,0) +INSERT "Order Details" VALUES(10625,14,23.25,3,0) +INSERT "Order Details" VALUES(10625,42,14,5,0) +INSERT "Order Details" VALUES(10625,60,34,10,0) +go +INSERT "Order Details" VALUES(10626,53,32.8,12,0) +INSERT "Order Details" VALUES(10626,60,34,20,0) +INSERT "Order Details" VALUES(10626,71,21.5,20,0) +INSERT "Order Details" VALUES(10627,62,49.3,15,0) +INSERT "Order Details" VALUES(10627,73,15,35,0.15) +INSERT "Order Details" VALUES(10628,1,18,25,0) +INSERT "Order Details" VALUES(10629,29,123.79,20,0) +INSERT "Order Details" VALUES(10629,64,33.25,9,0) +INSERT "Order Details" VALUES(10630,55,24,12,0.05) +INSERT "Order Details" VALUES(10630,76,18,35,0) +go +INSERT "Order Details" VALUES(10631,75,7.75,8,0.1) +INSERT "Order Details" VALUES(10632,2,19,30,0.05) +INSERT "Order Details" VALUES(10632,33,2.5,20,0.05) +INSERT "Order Details" VALUES(10633,12,38,36,0.15) +INSERT "Order Details" VALUES(10633,13,6,13,0.15) +INSERT "Order Details" VALUES(10633,26,31.23,35,0.15) +INSERT "Order Details" VALUES(10633,62,49.3,80,0.15) +INSERT "Order Details" VALUES(10634,7,30,35,0) +INSERT "Order Details" VALUES(10634,18,62.5,50,0) +INSERT "Order Details" VALUES(10634,51,53,15,0) +go +INSERT "Order Details" VALUES(10634,75,7.75,2,0) +INSERT "Order Details" VALUES(10635,4,22,10,0.1) +INSERT "Order Details" VALUES(10635,5,21.35,15,0.1) +INSERT "Order Details" VALUES(10635,22,21,40,0) +INSERT "Order Details" VALUES(10636,4,22,25,0) +INSERT "Order Details" VALUES(10636,58,13.25,6,0) +INSERT "Order Details" VALUES(10637,11,21,10,0) +INSERT "Order Details" VALUES(10637,50,16.25,25,0.05) +INSERT "Order Details" VALUES(10637,56,38,60,0.05) +INSERT "Order Details" VALUES(10638,45,9.5,20,0) +go +INSERT "Order Details" VALUES(10638,65,21.05,21,0) +INSERT "Order Details" VALUES(10638,72,34.8,60,0) +INSERT "Order Details" VALUES(10639,18,62.5,8,0) +INSERT "Order Details" VALUES(10640,69,36,20,0.25) +INSERT "Order Details" VALUES(10640,70,15,15,0.25) +INSERT "Order Details" VALUES(10641,2,19,50,0) +INSERT "Order Details" VALUES(10641,40,18.4,60,0) +INSERT "Order Details" VALUES(10642,21,10,30,0.2) +INSERT "Order Details" VALUES(10642,61,28.5,20,0.2) +INSERT "Order Details" VALUES(10643,28,45.6,15,0.25) +go +INSERT "Order Details" VALUES(10643,39,18,21,0.25) +INSERT "Order Details" VALUES(10643,46,12,2,0.25) +INSERT "Order Details" VALUES(10644,18,62.5,4,0.1) +INSERT "Order Details" VALUES(10644,43,46,20,0) +INSERT "Order Details" VALUES(10644,46,12,21,0.1) +INSERT "Order Details" VALUES(10645,18,62.5,20,0) +INSERT "Order Details" VALUES(10645,36,19,15,0) +INSERT "Order Details" VALUES(10646,1,18,15,0.25) +INSERT "Order Details" VALUES(10646,10,31,18,0.25) +INSERT "Order Details" VALUES(10646,71,21.5,30,0.25) +go +INSERT "Order Details" VALUES(10646,77,13,35,0.25) +INSERT "Order Details" VALUES(10647,19,9.2,30,0) +INSERT "Order Details" VALUES(10647,39,18,20,0) +INSERT "Order Details" VALUES(10648,22,21,15,0) +INSERT "Order Details" VALUES(10648,24,4.5,15,0.15) +INSERT "Order Details" VALUES(10649,28,45.6,20,0) +INSERT "Order Details" VALUES(10649,72,34.8,15,0) +INSERT "Order Details" VALUES(10650,30,25.89,30,0) +INSERT "Order Details" VALUES(10650,53,32.8,25,0.05) +INSERT "Order Details" VALUES(10650,54,7.45,30,0) +go +INSERT "Order Details" VALUES(10651,19,9.2,12,0.25) +INSERT "Order Details" VALUES(10651,22,21,20,0.25) +INSERT "Order Details" VALUES(10652,30,25.89,2,0.25) +INSERT "Order Details" VALUES(10652,42,14,20,0) +INSERT "Order Details" VALUES(10653,16,17.45,30,0.1) +INSERT "Order Details" VALUES(10653,60,34,20,0.1) +INSERT "Order Details" VALUES(10654,4,22,12,0.1) +INSERT "Order Details" VALUES(10654,39,18,20,0.1) +INSERT "Order Details" VALUES(10654,54,7.45,6,0.1) +INSERT "Order Details" VALUES(10655,41,9.65,20,0.2) +go +INSERT "Order Details" VALUES(10656,14,23.25,3,0.1) +INSERT "Order Details" VALUES(10656,44,19.45,28,0.1) +INSERT "Order Details" VALUES(10656,47,9.5,6,0.1) +INSERT "Order Details" VALUES(10657,15,15.5,50,0) +INSERT "Order Details" VALUES(10657,41,9.65,24,0) +INSERT "Order Details" VALUES(10657,46,12,45,0) +INSERT "Order Details" VALUES(10657,47,9.5,10,0) +INSERT "Order Details" VALUES(10657,56,38,45,0) +INSERT "Order Details" VALUES(10657,60,34,30,0) +INSERT "Order Details" VALUES(10658,21,10,60,0) +go +INSERT "Order Details" VALUES(10658,40,18.4,70,0.05) +INSERT "Order Details" VALUES(10658,60,34,55,0.05) +INSERT "Order Details" VALUES(10658,77,13,70,0.05) +INSERT "Order Details" VALUES(10659,31,12.5,20,0.05) +INSERT "Order Details" VALUES(10659,40,18.4,24,0.05) +INSERT "Order Details" VALUES(10659,70,15,40,0.05) +INSERT "Order Details" VALUES(10660,20,81,21,0) +INSERT "Order Details" VALUES(10661,39,18,3,0.2) +INSERT "Order Details" VALUES(10661,58,13.25,49,0.2) +INSERT "Order Details" VALUES(10662,68,12.5,10,0) +go +INSERT "Order Details" VALUES(10663,40,18.4,30,0.05) +INSERT "Order Details" VALUES(10663,42,14,30,0.05) +INSERT "Order Details" VALUES(10663,51,53,20,0.05) +INSERT "Order Details" VALUES(10664,10,31,24,0.15) +INSERT "Order Details" VALUES(10664,56,38,12,0.15) +INSERT "Order Details" VALUES(10664,65,21.05,15,0.15) +INSERT "Order Details" VALUES(10665,51,53,20,0) +INSERT "Order Details" VALUES(10665,59,55,1,0) +INSERT "Order Details" VALUES(10665,76,18,10,0) +INSERT "Order Details" VALUES(10666,29,123.79,36,0) +go +INSERT "Order Details" VALUES(10666,65,21.05,10,0) +INSERT "Order Details" VALUES(10667,69,36,45,0.2) +INSERT "Order Details" VALUES(10667,71,21.5,14,0.2) +INSERT "Order Details" VALUES(10668,31,12.5,8,0.1) +INSERT "Order Details" VALUES(10668,55,24,4,0.1) +INSERT "Order Details" VALUES(10668,64,33.25,15,0.1) +INSERT "Order Details" VALUES(10669,36,19,30,0) +INSERT "Order Details" VALUES(10670,23,9,32,0) +INSERT "Order Details" VALUES(10670,46,12,60,0) +INSERT "Order Details" VALUES(10670,67,14,25,0) +go +INSERT "Order Details" VALUES(10670,73,15,50,0) +INSERT "Order Details" VALUES(10670,75,7.75,25,0) +INSERT "Order Details" VALUES(10671,16,17.45,10,0) +INSERT "Order Details" VALUES(10671,62,49.3,10,0) +INSERT "Order Details" VALUES(10671,65,21.05,12,0) +INSERT "Order Details" VALUES(10672,38,263.5,15,0.1) +INSERT "Order Details" VALUES(10672,71,21.5,12,0) +INSERT "Order Details" VALUES(10673,16,17.45,3,0) +INSERT "Order Details" VALUES(10673,42,14,6,0) +INSERT "Order Details" VALUES(10673,43,46,6,0) +go +INSERT "Order Details" VALUES(10674,23,9,5,0) +INSERT "Order Details" VALUES(10675,14,23.25,30,0) +INSERT "Order Details" VALUES(10675,53,32.8,10,0) +INSERT "Order Details" VALUES(10675,58,13.25,30,0) +INSERT "Order Details" VALUES(10676,10,31,2,0) +INSERT "Order Details" VALUES(10676,19,9.2,7,0) +INSERT "Order Details" VALUES(10676,44,19.45,21,0) +INSERT "Order Details" VALUES(10677,26,31.23,30,0.15) +INSERT "Order Details" VALUES(10677,33,2.5,8,0.15) +INSERT "Order Details" VALUES(10678,12,38,100,0) +go +INSERT "Order Details" VALUES(10678,33,2.5,30,0) +INSERT "Order Details" VALUES(10678,41,9.65,120,0) +INSERT "Order Details" VALUES(10678,54,7.45,30,0) +INSERT "Order Details" VALUES(10679,59,55,12,0) +INSERT "Order Details" VALUES(10680,16,17.45,50,0.25) +INSERT "Order Details" VALUES(10680,31,12.5,20,0.25) +INSERT "Order Details" VALUES(10680,42,14,40,0.25) +INSERT "Order Details" VALUES(10681,19,9.2,30,0.1) +INSERT "Order Details" VALUES(10681,21,10,12,0.1) +INSERT "Order Details" VALUES(10681,64,33.25,28,0) +go +INSERT "Order Details" VALUES(10682,33,2.5,30,0) +INSERT "Order Details" VALUES(10682,66,17,4,0) +INSERT "Order Details" VALUES(10682,75,7.75,30,0) +INSERT "Order Details" VALUES(10683,52,7,9,0) +INSERT "Order Details" VALUES(10684,40,18.4,20,0) +INSERT "Order Details" VALUES(10684,47,9.5,40,0) +INSERT "Order Details" VALUES(10684,60,34,30,0) +INSERT "Order Details" VALUES(10685,10,31,20,0) +INSERT "Order Details" VALUES(10685,41,9.65,4,0) +INSERT "Order Details" VALUES(10685,47,9.5,15,0) +go +INSERT "Order Details" VALUES(10686,17,39,30,0.2) +INSERT "Order Details" VALUES(10686,26,31.23,15,0) +INSERT "Order Details" VALUES(10687,9,97,50,0.25) +INSERT "Order Details" VALUES(10687,29,123.79,10,0) +INSERT "Order Details" VALUES(10687,36,19,6,0.25) +INSERT "Order Details" VALUES(10688,10,31,18,0.1) +INSERT "Order Details" VALUES(10688,28,45.6,60,0.1) +INSERT "Order Details" VALUES(10688,34,14,14,0) +INSERT "Order Details" VALUES(10689,1,18,35,0.25) +INSERT "Order Details" VALUES(10690,56,38,20,0.25) +go +INSERT "Order Details" VALUES(10690,77,13,30,0.25) +INSERT "Order Details" VALUES(10691,1,18,30,0) +INSERT "Order Details" VALUES(10691,29,123.79,40,0) +INSERT "Order Details" VALUES(10691,43,46,40,0) +INSERT "Order Details" VALUES(10691,44,19.45,24,0) +INSERT "Order Details" VALUES(10691,62,49.3,48,0) +INSERT "Order Details" VALUES(10692,63,43.9,20,0) +INSERT "Order Details" VALUES(10693,9,97,6,0) +INSERT "Order Details" VALUES(10693,54,7.45,60,0.15) +INSERT "Order Details" VALUES(10693,69,36,30,0.15) +go +INSERT "Order Details" VALUES(10693,73,15,15,0.15) +INSERT "Order Details" VALUES(10694,7,30,90,0) +INSERT "Order Details" VALUES(10694,59,55,25,0) +INSERT "Order Details" VALUES(10694,70,15,50,0) +INSERT "Order Details" VALUES(10695,8,40,10,0) +INSERT "Order Details" VALUES(10695,12,38,4,0) +INSERT "Order Details" VALUES(10695,24,4.5,20,0) +INSERT "Order Details" VALUES(10696,17,39,20,0) +INSERT "Order Details" VALUES(10696,46,12,18,0) +INSERT "Order Details" VALUES(10697,19,9.2,7,0.25) +go +INSERT "Order Details" VALUES(10697,35,18,9,0.25) +INSERT "Order Details" VALUES(10697,58,13.25,30,0.25) +INSERT "Order Details" VALUES(10697,70,15,30,0.25) +INSERT "Order Details" VALUES(10698,11,21,15,0) +INSERT "Order Details" VALUES(10698,17,39,8,0.05) +INSERT "Order Details" VALUES(10698,29,123.79,12,0.05) +INSERT "Order Details" VALUES(10698,65,21.05,65,0.05) +INSERT "Order Details" VALUES(10698,70,15,8,0.05) +INSERT "Order Details" VALUES(10699,47,9.5,12,0) +INSERT "Order Details" VALUES(10700,1,18,5,0.2) +go +INSERT "Order Details" VALUES(10700,34,14,12,0.2) +INSERT "Order Details" VALUES(10700,68,12.5,40,0.2) +INSERT "Order Details" VALUES(10700,71,21.5,60,0.2) +INSERT "Order Details" VALUES(10701,59,55,42,0.15) +INSERT "Order Details" VALUES(10701,71,21.5,20,0.15) +INSERT "Order Details" VALUES(10701,76,18,35,0.15) +INSERT "Order Details" VALUES(10702,3,10,6,0) +INSERT "Order Details" VALUES(10702,76,18,15,0) +INSERT "Order Details" VALUES(10703,2,19,5,0) +INSERT "Order Details" VALUES(10703,59,55,35,0) +go +INSERT "Order Details" VALUES(10703,73,15,35,0) +INSERT "Order Details" VALUES(10704,4,22,6,0) +INSERT "Order Details" VALUES(10704,24,4.5,35,0) +INSERT "Order Details" VALUES(10704,48,12.75,24,0) +INSERT "Order Details" VALUES(10705,31,12.5,20,0) +INSERT "Order Details" VALUES(10705,32,32,4,0) +INSERT "Order Details" VALUES(10706,16,17.45,20,0) +INSERT "Order Details" VALUES(10706,43,46,24,0) +INSERT "Order Details" VALUES(10706,59,55,8,0) +INSERT "Order Details" VALUES(10707,55,24,21,0) +go +INSERT "Order Details" VALUES(10707,57,19.5,40,0) +INSERT "Order Details" VALUES(10707,70,15,28,0.15) +INSERT "Order Details" VALUES(10708,5,21.35,4,0) +INSERT "Order Details" VALUES(10708,36,19,5,0) +INSERT "Order Details" VALUES(10709,8,40,40,0) +INSERT "Order Details" VALUES(10709,51,53,28,0) +INSERT "Order Details" VALUES(10709,60,34,10,0) +INSERT "Order Details" VALUES(10710,19,9.2,5,0) +INSERT "Order Details" VALUES(10710,47,9.5,5,0) +INSERT "Order Details" VALUES(10711,19,9.2,12,0) +go +INSERT "Order Details" VALUES(10711,41,9.65,42,0) +INSERT "Order Details" VALUES(10711,53,32.8,120,0) +INSERT "Order Details" VALUES(10712,53,32.8,3,0.05) +INSERT "Order Details" VALUES(10712,56,38,30,0) +INSERT "Order Details" VALUES(10713,10,31,18,0) +INSERT "Order Details" VALUES(10713,26,31.23,30,0) +INSERT "Order Details" VALUES(10713,45,9.5,110,0) +INSERT "Order Details" VALUES(10713,46,12,24,0) +INSERT "Order Details" VALUES(10714,2,19,30,0.25) +INSERT "Order Details" VALUES(10714,17,39,27,0.25) +go +INSERT "Order Details" VALUES(10714,47,9.5,50,0.25) +INSERT "Order Details" VALUES(10714,56,38,18,0.25) +INSERT "Order Details" VALUES(10714,58,13.25,12,0.25) +INSERT "Order Details" VALUES(10715,10,31,21,0) +INSERT "Order Details" VALUES(10715,71,21.5,30,0) +INSERT "Order Details" VALUES(10716,21,10,5,0) +INSERT "Order Details" VALUES(10716,51,53,7,0) +INSERT "Order Details" VALUES(10716,61,28.5,10,0) +INSERT "Order Details" VALUES(10717,21,10,32,0.05) +INSERT "Order Details" VALUES(10717,54,7.45,15,0) +go +INSERT "Order Details" VALUES(10717,69,36,25,0.05) +INSERT "Order Details" VALUES(10718,12,38,36,0) +INSERT "Order Details" VALUES(10718,16,17.45,20,0) +INSERT "Order Details" VALUES(10718,36,19,40,0) +INSERT "Order Details" VALUES(10718,62,49.3,20,0) +INSERT "Order Details" VALUES(10719,18,62.5,12,0.25) +INSERT "Order Details" VALUES(10719,30,25.89,3,0.25) +INSERT "Order Details" VALUES(10719,54,7.45,40,0.25) +INSERT "Order Details" VALUES(10720,35,18,21,0) +INSERT "Order Details" VALUES(10720,71,21.5,8,0) +go +INSERT "Order Details" VALUES(10721,44,19.45,50,0.05) +INSERT "Order Details" VALUES(10722,2,19,3,0) +INSERT "Order Details" VALUES(10722,31,12.5,50,0) +INSERT "Order Details" VALUES(10722,68,12.5,45,0) +INSERT "Order Details" VALUES(10722,75,7.75,42,0) +INSERT "Order Details" VALUES(10723,26,31.23,15,0) +INSERT "Order Details" VALUES(10724,10,31,16,0) +INSERT "Order Details" VALUES(10724,61,28.5,5,0) +INSERT "Order Details" VALUES(10725,41,9.65,12,0) +INSERT "Order Details" VALUES(10725,52,7,4,0) +go +INSERT "Order Details" VALUES(10725,55,24,6,0) +INSERT "Order Details" VALUES(10726,4,22,25,0) +INSERT "Order Details" VALUES(10726,11,21,5,0) +INSERT "Order Details" VALUES(10727,17,39,20,0.05) +INSERT "Order Details" VALUES(10727,56,38,10,0.05) +INSERT "Order Details" VALUES(10727,59,55,10,0.05) +INSERT "Order Details" VALUES(10728,30,25.89,15,0) +INSERT "Order Details" VALUES(10728,40,18.4,6,0) +INSERT "Order Details" VALUES(10728,55,24,12,0) +INSERT "Order Details" VALUES(10728,60,34,15,0) +go +INSERT "Order Details" VALUES(10729,1,18,50,0) +INSERT "Order Details" VALUES(10729,21,10,30,0) +INSERT "Order Details" VALUES(10729,50,16.25,40,0) +INSERT "Order Details" VALUES(10730,16,17.45,15,0.05) +INSERT "Order Details" VALUES(10730,31,12.5,3,0.05) +INSERT "Order Details" VALUES(10730,65,21.05,10,0.05) +INSERT "Order Details" VALUES(10731,21,10,40,0.05) +INSERT "Order Details" VALUES(10731,51,53,30,0.05) +INSERT "Order Details" VALUES(10732,76,18,20,0) +INSERT "Order Details" VALUES(10733,14,23.25,16,0) +go +INSERT "Order Details" VALUES(10733,28,45.6,20,0) +INSERT "Order Details" VALUES(10733,52,7,25,0) +INSERT "Order Details" VALUES(10734,6,25,30,0) +INSERT "Order Details" VALUES(10734,30,25.89,15,0) +INSERT "Order Details" VALUES(10734,76,18,20,0) +INSERT "Order Details" VALUES(10735,61,28.5,20,0.1) +INSERT "Order Details" VALUES(10735,77,13,2,0.1) +INSERT "Order Details" VALUES(10736,65,21.05,40,0) +INSERT "Order Details" VALUES(10736,75,7.75,20,0) +INSERT "Order Details" VALUES(10737,13,6,4,0) +go +INSERT "Order Details" VALUES(10737,41,9.65,12,0) +INSERT "Order Details" VALUES(10738,16,17.45,3,0) +INSERT "Order Details" VALUES(10739,36,19,6,0) +INSERT "Order Details" VALUES(10739,52,7,18,0) +INSERT "Order Details" VALUES(10740,28,45.6,5,0.2) +INSERT "Order Details" VALUES(10740,35,18,35,0.2) +INSERT "Order Details" VALUES(10740,45,9.5,40,0.2) +INSERT "Order Details" VALUES(10740,56,38,14,0.2) +INSERT "Order Details" VALUES(10741,2,19,15,0.2) +INSERT "Order Details" VALUES(10742,3,10,20,0) +go +INSERT "Order Details" VALUES(10742,60,34,50,0) +INSERT "Order Details" VALUES(10742,72,34.8,35,0) +INSERT "Order Details" VALUES(10743,46,12,28,0.05) +INSERT "Order Details" VALUES(10744,40,18.4,50,0.2) +INSERT "Order Details" VALUES(10745,18,62.5,24,0) +INSERT "Order Details" VALUES(10745,44,19.45,16,0) +INSERT "Order Details" VALUES(10745,59,55,45,0) +INSERT "Order Details" VALUES(10745,72,34.8,7,0) +INSERT "Order Details" VALUES(10746,13,6,6,0) +INSERT "Order Details" VALUES(10746,42,14,28,0) +go +INSERT "Order Details" VALUES(10746,62,49.3,9,0) +INSERT "Order Details" VALUES(10746,69,36,40,0) +INSERT "Order Details" VALUES(10747,31,12.5,8,0) +INSERT "Order Details" VALUES(10747,41,9.65,35,0) +INSERT "Order Details" VALUES(10747,63,43.9,9,0) +INSERT "Order Details" VALUES(10747,69,36,30,0) +INSERT "Order Details" VALUES(10748,23,9,44,0) +INSERT "Order Details" VALUES(10748,40,18.4,40,0) +INSERT "Order Details" VALUES(10748,56,38,28,0) +INSERT "Order Details" VALUES(10749,56,38,15,0) +go +INSERT "Order Details" VALUES(10749,59,55,6,0) +INSERT "Order Details" VALUES(10749,76,18,10,0) +INSERT "Order Details" VALUES(10750,14,23.25,5,0.15) +INSERT "Order Details" VALUES(10750,45,9.5,40,0.15) +INSERT "Order Details" VALUES(10750,59,55,25,0.15) +INSERT "Order Details" VALUES(10751,26,31.23,12,0.1) +INSERT "Order Details" VALUES(10751,30,25.89,30,0) +INSERT "Order Details" VALUES(10751,50,16.25,20,0.1) +INSERT "Order Details" VALUES(10751,73,15,15,0) +INSERT "Order Details" VALUES(10752,1,18,8,0) +go +INSERT "Order Details" VALUES(10752,69,36,3,0) +INSERT "Order Details" VALUES(10753,45,9.5,4,0) +INSERT "Order Details" VALUES(10753,74,10,5,0) +INSERT "Order Details" VALUES(10754,40,18.4,3,0) +INSERT "Order Details" VALUES(10755,47,9.5,30,0.25) +INSERT "Order Details" VALUES(10755,56,38,30,0.25) +INSERT "Order Details" VALUES(10755,57,19.5,14,0.25) +INSERT "Order Details" VALUES(10755,69,36,25,0.25) +INSERT "Order Details" VALUES(10756,18,62.5,21,0.2) +INSERT "Order Details" VALUES(10756,36,19,20,0.2) +go +INSERT "Order Details" VALUES(10756,68,12.5,6,0.2) +INSERT "Order Details" VALUES(10756,69,36,20,0.2) +INSERT "Order Details" VALUES(10757,34,14,30,0) +INSERT "Order Details" VALUES(10757,59,55,7,0) +INSERT "Order Details" VALUES(10757,62,49.3,30,0) +INSERT "Order Details" VALUES(10757,64,33.25,24,0) +INSERT "Order Details" VALUES(10758,26,31.23,20,0) +INSERT "Order Details" VALUES(10758,52,7,60,0) +INSERT "Order Details" VALUES(10758,70,15,40,0) +INSERT "Order Details" VALUES(10759,32,32,10,0) +go +INSERT "Order Details" VALUES(10760,25,14,12,0.25) +INSERT "Order Details" VALUES(10760,27,43.9,40,0) +INSERT "Order Details" VALUES(10760,43,46,30,0.25) +INSERT "Order Details" VALUES(10761,25,14,35,0.25) +INSERT "Order Details" VALUES(10761,75,7.75,18,0) +INSERT "Order Details" VALUES(10762,39,18,16,0) +INSERT "Order Details" VALUES(10762,47,9.5,30,0) +INSERT "Order Details" VALUES(10762,51,53,28,0) +INSERT "Order Details" VALUES(10762,56,38,60,0) +INSERT "Order Details" VALUES(10763,21,10,40,0) +go +INSERT "Order Details" VALUES(10763,22,21,6,0) +INSERT "Order Details" VALUES(10763,24,4.5,20,0) +INSERT "Order Details" VALUES(10764,3,10,20,0.1) +INSERT "Order Details" VALUES(10764,39,18,130,0.1) +INSERT "Order Details" VALUES(10765,65,21.05,80,0.1) +INSERT "Order Details" VALUES(10766,2,19,40,0) +INSERT "Order Details" VALUES(10766,7,30,35,0) +INSERT "Order Details" VALUES(10766,68,12.5,40,0) +INSERT "Order Details" VALUES(10767,42,14,2,0) +INSERT "Order Details" VALUES(10768,22,21,4,0) +go +INSERT "Order Details" VALUES(10768,31,12.5,50,0) +INSERT "Order Details" VALUES(10768,60,34,15,0) +INSERT "Order Details" VALUES(10768,71,21.5,12,0) +INSERT "Order Details" VALUES(10769,41,9.65,30,0.05) +INSERT "Order Details" VALUES(10769,52,7,15,0.05) +INSERT "Order Details" VALUES(10769,61,28.5,20,0) +INSERT "Order Details" VALUES(10769,62,49.3,15,0) +INSERT "Order Details" VALUES(10770,11,21,15,0.25) +INSERT "Order Details" VALUES(10771,71,21.5,16,0) +INSERT "Order Details" VALUES(10772,29,123.79,18,0) +go +INSERT "Order Details" VALUES(10772,59,55,25,0) +INSERT "Order Details" VALUES(10773,17,39,33,0) +INSERT "Order Details" VALUES(10773,31,12.5,70,0.2) +INSERT "Order Details" VALUES(10773,75,7.75,7,0.2) +INSERT "Order Details" VALUES(10774,31,12.5,2,0.25) +INSERT "Order Details" VALUES(10774,66,17,50,0) +INSERT "Order Details" VALUES(10775,10,31,6,0) +INSERT "Order Details" VALUES(10775,67,14,3,0) +INSERT "Order Details" VALUES(10776,31,12.5,16,0.05) +INSERT "Order Details" VALUES(10776,42,14,12,0.05) +go +INSERT "Order Details" VALUES(10776,45,9.5,27,0.05) +INSERT "Order Details" VALUES(10776,51,53,120,0.05) +INSERT "Order Details" VALUES(10777,42,14,20,0.2) +INSERT "Order Details" VALUES(10778,41,9.65,10,0) +INSERT "Order Details" VALUES(10779,16,17.45,20,0) +INSERT "Order Details" VALUES(10779,62,49.3,20,0) +INSERT "Order Details" VALUES(10780,70,15,35,0) +INSERT "Order Details" VALUES(10780,77,13,15,0) +INSERT "Order Details" VALUES(10781,54,7.45,3,0.2) +INSERT "Order Details" VALUES(10781,56,38,20,0.2) +go +INSERT "Order Details" VALUES(10781,74,10,35,0) +INSERT "Order Details" VALUES(10782,31,12.5,1,0) +INSERT "Order Details" VALUES(10783,31,12.5,10,0) +INSERT "Order Details" VALUES(10783,38,263.5,5,0) +INSERT "Order Details" VALUES(10784,36,19,30,0) +INSERT "Order Details" VALUES(10784,39,18,2,0.15) +INSERT "Order Details" VALUES(10784,72,34.8,30,0.15) +INSERT "Order Details" VALUES(10785,10,31,10,0) +INSERT "Order Details" VALUES(10785,75,7.75,10,0) +INSERT "Order Details" VALUES(10786,8,40,30,0.2) +go +INSERT "Order Details" VALUES(10786,30,25.89,15,0.2) +INSERT "Order Details" VALUES(10786,75,7.75,42,0.2) +INSERT "Order Details" VALUES(10787,2,19,15,0.05) +INSERT "Order Details" VALUES(10787,29,123.79,20,0.05) +INSERT "Order Details" VALUES(10788,19,9.2,50,0.05) +INSERT "Order Details" VALUES(10788,75,7.75,40,0.05) +INSERT "Order Details" VALUES(10789,18,62.5,30,0) +INSERT "Order Details" VALUES(10789,35,18,15,0) +INSERT "Order Details" VALUES(10789,63,43.9,30,0) +INSERT "Order Details" VALUES(10789,68,12.5,18,0) +go +INSERT "Order Details" VALUES(10790,7,30,3,0.15) +INSERT "Order Details" VALUES(10790,56,38,20,0.15) +INSERT "Order Details" VALUES(10791,29,123.79,14,0.05) +INSERT "Order Details" VALUES(10791,41,9.65,20,0.05) +INSERT "Order Details" VALUES(10792,2,19,10,0) +INSERT "Order Details" VALUES(10792,54,7.45,3,0) +INSERT "Order Details" VALUES(10792,68,12.5,15,0) +INSERT "Order Details" VALUES(10793,41,9.65,14,0) +INSERT "Order Details" VALUES(10793,52,7,8,0) +INSERT "Order Details" VALUES(10794,14,23.25,15,0.2) +go +INSERT "Order Details" VALUES(10794,54,7.45,6,0.2) +INSERT "Order Details" VALUES(10795,16,17.45,65,0) +INSERT "Order Details" VALUES(10795,17,39,35,0.25) +INSERT "Order Details" VALUES(10796,26,31.23,21,0.2) +INSERT "Order Details" VALUES(10796,44,19.45,10,0) +INSERT "Order Details" VALUES(10796,64,33.25,35,0.2) +INSERT "Order Details" VALUES(10796,69,36,24,0.2) +INSERT "Order Details" VALUES(10797,11,21,20,0) +INSERT "Order Details" VALUES(10798,62,49.3,2,0) +INSERT "Order Details" VALUES(10798,72,34.8,10,0) +go +INSERT "Order Details" VALUES(10799,13,6,20,0.15) +INSERT "Order Details" VALUES(10799,24,4.5,20,0.15) +INSERT "Order Details" VALUES(10799,59,55,25,0) +INSERT "Order Details" VALUES(10800,11,21,50,0.1) +INSERT "Order Details" VALUES(10800,51,53,10,0.1) +INSERT "Order Details" VALUES(10800,54,7.45,7,0.1) +INSERT "Order Details" VALUES(10801,17,39,40,0.25) +INSERT "Order Details" VALUES(10801,29,123.79,20,0.25) +INSERT "Order Details" VALUES(10802,30,25.89,25,0.25) +INSERT "Order Details" VALUES(10802,51,53,30,0.25) +go +INSERT "Order Details" VALUES(10802,55,24,60,0.25) +INSERT "Order Details" VALUES(10802,62,49.3,5,0.25) +INSERT "Order Details" VALUES(10803,19,9.2,24,0.05) +INSERT "Order Details" VALUES(10803,25,14,15,0.05) +INSERT "Order Details" VALUES(10803,59,55,15,0.05) +INSERT "Order Details" VALUES(10804,10,31,36,0) +INSERT "Order Details" VALUES(10804,28,45.6,24,0) +INSERT "Order Details" VALUES(10804,49,20,4,0.15) +INSERT "Order Details" VALUES(10805,34,14,10,0) +INSERT "Order Details" VALUES(10805,38,263.5,10,0) +go +INSERT "Order Details" VALUES(10806,2,19,20,0.25) +INSERT "Order Details" VALUES(10806,65,21.05,2,0) +INSERT "Order Details" VALUES(10806,74,10,15,0.25) +INSERT "Order Details" VALUES(10807,40,18.4,1,0) +INSERT "Order Details" VALUES(10808,56,38,20,0.15) +INSERT "Order Details" VALUES(10808,76,18,50,0.15) +INSERT "Order Details" VALUES(10809,52,7,20,0) +INSERT "Order Details" VALUES(10810,13,6,7,0) +INSERT "Order Details" VALUES(10810,25,14,5,0) +INSERT "Order Details" VALUES(10810,70,15,5,0) +go +INSERT "Order Details" VALUES(10811,19,9.2,15,0) +INSERT "Order Details" VALUES(10811,23,9,18,0) +INSERT "Order Details" VALUES(10811,40,18.4,30,0) +INSERT "Order Details" VALUES(10812,31,12.5,16,0.1) +INSERT "Order Details" VALUES(10812,72,34.8,40,0.1) +INSERT "Order Details" VALUES(10812,77,13,20,0) +INSERT "Order Details" VALUES(10813,2,19,12,0.2) +INSERT "Order Details" VALUES(10813,46,12,35,0) +INSERT "Order Details" VALUES(10814,41,9.65,20,0) +INSERT "Order Details" VALUES(10814,43,46,20,0.15) +go +INSERT "Order Details" VALUES(10814,48,12.75,8,0.15) +INSERT "Order Details" VALUES(10814,61,28.5,30,0.15) +INSERT "Order Details" VALUES(10815,33,2.5,16,0) +INSERT "Order Details" VALUES(10816,38,263.5,30,0.05) +INSERT "Order Details" VALUES(10816,62,49.3,20,0.05) +INSERT "Order Details" VALUES(10817,26,31.23,40,0.15) +INSERT "Order Details" VALUES(10817,38,263.5,30,0) +INSERT "Order Details" VALUES(10817,40,18.4,60,0.15) +INSERT "Order Details" VALUES(10817,62,49.3,25,0.15) +INSERT "Order Details" VALUES(10818,32,32,20,0) +go +INSERT "Order Details" VALUES(10818,41,9.65,20,0) +INSERT "Order Details" VALUES(10819,43,46,7,0) +INSERT "Order Details" VALUES(10819,75,7.75,20,0) +INSERT "Order Details" VALUES(10820,56,38,30,0) +INSERT "Order Details" VALUES(10821,35,18,20,0) +INSERT "Order Details" VALUES(10821,51,53,6,0) +INSERT "Order Details" VALUES(10822,62,49.3,3,0) +INSERT "Order Details" VALUES(10822,70,15,6,0) +INSERT "Order Details" VALUES(10823,11,21,20,0.1) +INSERT "Order Details" VALUES(10823,57,19.5,15,0) +go +INSERT "Order Details" VALUES(10823,59,55,40,0.1) +INSERT "Order Details" VALUES(10823,77,13,15,0.1) +INSERT "Order Details" VALUES(10824,41,9.65,12,0) +INSERT "Order Details" VALUES(10824,70,15,9,0) +INSERT "Order Details" VALUES(10825,26,31.23,12,0) +INSERT "Order Details" VALUES(10825,53,32.8,20,0) +INSERT "Order Details" VALUES(10826,31,12.5,35,0) +INSERT "Order Details" VALUES(10826,57,19.5,15,0) +INSERT "Order Details" VALUES(10827,10,31,15,0) +INSERT "Order Details" VALUES(10827,39,18,21,0) +go +INSERT "Order Details" VALUES(10828,20,81,5,0) +INSERT "Order Details" VALUES(10828,38,263.5,2,0) +INSERT "Order Details" VALUES(10829,2,19,10,0) +INSERT "Order Details" VALUES(10829,8,40,20,0) +INSERT "Order Details" VALUES(10829,13,6,10,0) +INSERT "Order Details" VALUES(10829,60,34,21,0) +INSERT "Order Details" VALUES(10830,6,25,6,0) +INSERT "Order Details" VALUES(10830,39,18,28,0) +INSERT "Order Details" VALUES(10830,60,34,30,0) +INSERT "Order Details" VALUES(10830,68,12.5,24,0) +go +INSERT "Order Details" VALUES(10831,19,9.2,2,0) +INSERT "Order Details" VALUES(10831,35,18,8,0) +INSERT "Order Details" VALUES(10831,38,263.5,8,0) +INSERT "Order Details" VALUES(10831,43,46,9,0) +INSERT "Order Details" VALUES(10832,13,6,3,0.2) +INSERT "Order Details" VALUES(10832,25,14,10,0.2) +INSERT "Order Details" VALUES(10832,44,19.45,16,0.2) +INSERT "Order Details" VALUES(10832,64,33.25,3,0) +INSERT "Order Details" VALUES(10833,7,30,20,0.1) +INSERT "Order Details" VALUES(10833,31,12.5,9,0.1) +go +INSERT "Order Details" VALUES(10833,53,32.8,9,0.1) +INSERT "Order Details" VALUES(10834,29,123.79,8,0.05) +INSERT "Order Details" VALUES(10834,30,25.89,20,0.05) +INSERT "Order Details" VALUES(10835,59,55,15,0) +INSERT "Order Details" VALUES(10835,77,13,2,0.2) +INSERT "Order Details" VALUES(10836,22,21,52,0) +INSERT "Order Details" VALUES(10836,35,18,6,0) +INSERT "Order Details" VALUES(10836,57,19.5,24,0) +INSERT "Order Details" VALUES(10836,60,34,60,0) +INSERT "Order Details" VALUES(10836,64,33.25,30,0) +go +INSERT "Order Details" VALUES(10837,13,6,6,0) +INSERT "Order Details" VALUES(10837,40,18.4,25,0) +INSERT "Order Details" VALUES(10837,47,9.5,40,0.25) +INSERT "Order Details" VALUES(10837,76,18,21,0.25) +INSERT "Order Details" VALUES(10838,1,18,4,0.25) +INSERT "Order Details" VALUES(10838,18,62.5,25,0.25) +INSERT "Order Details" VALUES(10838,36,19,50,0.25) +INSERT "Order Details" VALUES(10839,58,13.25,30,0.1) +INSERT "Order Details" VALUES(10839,72,34.8,15,0.1) +INSERT "Order Details" VALUES(10840,25,14,6,0.2) +go +INSERT "Order Details" VALUES(10840,39,18,10,0.2) +INSERT "Order Details" VALUES(10841,10,31,16,0) +INSERT "Order Details" VALUES(10841,56,38,30,0) +INSERT "Order Details" VALUES(10841,59,55,50,0) +INSERT "Order Details" VALUES(10841,77,13,15,0) +INSERT "Order Details" VALUES(10842,11,21,15,0) +INSERT "Order Details" VALUES(10842,43,46,5,0) +INSERT "Order Details" VALUES(10842,68,12.5,20,0) +INSERT "Order Details" VALUES(10842,70,15,12,0) +INSERT "Order Details" VALUES(10843,51,53,4,0.25) +go +INSERT "Order Details" VALUES(10844,22,21,35,0) +INSERT "Order Details" VALUES(10845,23,9,70,0.1) +INSERT "Order Details" VALUES(10845,35,18,25,0.1) +INSERT "Order Details" VALUES(10845,42,14,42,0.1) +INSERT "Order Details" VALUES(10845,58,13.25,60,0.1) +INSERT "Order Details" VALUES(10845,64,33.25,48,0) +INSERT "Order Details" VALUES(10846,4,22,21,0) +INSERT "Order Details" VALUES(10846,70,15,30,0) +INSERT "Order Details" VALUES(10846,74,10,20,0) +INSERT "Order Details" VALUES(10847,1,18,80,0.2) +go +INSERT "Order Details" VALUES(10847,19,9.2,12,0.2) +INSERT "Order Details" VALUES(10847,37,26,60,0.2) +INSERT "Order Details" VALUES(10847,45,9.5,36,0.2) +INSERT "Order Details" VALUES(10847,60,34,45,0.2) +INSERT "Order Details" VALUES(10847,71,21.5,55,0.2) +INSERT "Order Details" VALUES(10848,5,21.35,30,0) +INSERT "Order Details" VALUES(10848,9,97,3,0) +INSERT "Order Details" VALUES(10849,3,10,49,0) +INSERT "Order Details" VALUES(10849,26,31.23,18,0.15) +INSERT "Order Details" VALUES(10850,25,14,20,0.15) +go +INSERT "Order Details" VALUES(10850,33,2.5,4,0.15) +INSERT "Order Details" VALUES(10850,70,15,30,0.15) +INSERT "Order Details" VALUES(10851,2,19,5,0.05) +INSERT "Order Details" VALUES(10851,25,14,10,0.05) +INSERT "Order Details" VALUES(10851,57,19.5,10,0.05) +INSERT "Order Details" VALUES(10851,59,55,42,0.05) +INSERT "Order Details" VALUES(10852,2,19,15,0) +INSERT "Order Details" VALUES(10852,17,39,6,0) +INSERT "Order Details" VALUES(10852,62,49.3,50,0) +INSERT "Order Details" VALUES(10853,18,62.5,10,0) +go +INSERT "Order Details" VALUES(10854,10,31,100,0.15) +INSERT "Order Details" VALUES(10854,13,6,65,0.15) +INSERT "Order Details" VALUES(10855,16,17.45,50,0) +INSERT "Order Details" VALUES(10855,31,12.5,14,0) +INSERT "Order Details" VALUES(10855,56,38,24,0) +INSERT "Order Details" VALUES(10855,65,21.05,15,0.15) +INSERT "Order Details" VALUES(10856,2,19,20,0) +INSERT "Order Details" VALUES(10856,42,14,20,0) +INSERT "Order Details" VALUES(10857,3,10,30,0) +INSERT "Order Details" VALUES(10857,26,31.23,35,0.25) +go +INSERT "Order Details" VALUES(10857,29,123.79,10,0.25) +INSERT "Order Details" VALUES(10858,7,30,5,0) +INSERT "Order Details" VALUES(10858,27,43.9,10,0) +INSERT "Order Details" VALUES(10858,70,15,4,0) +INSERT "Order Details" VALUES(10859,24,4.5,40,0.25) +INSERT "Order Details" VALUES(10859,54,7.45,35,0.25) +INSERT "Order Details" VALUES(10859,64,33.25,30,0.25) +INSERT "Order Details" VALUES(10860,51,53,3,0) +INSERT "Order Details" VALUES(10860,76,18,20,0) +INSERT "Order Details" VALUES(10861,17,39,42,0) +go +INSERT "Order Details" VALUES(10861,18,62.5,20,0) +INSERT "Order Details" VALUES(10861,21,10,40,0) +INSERT "Order Details" VALUES(10861,33,2.5,35,0) +INSERT "Order Details" VALUES(10861,62,49.3,3,0) +INSERT "Order Details" VALUES(10862,11,21,25,0) +INSERT "Order Details" VALUES(10862,52,7,8,0) +INSERT "Order Details" VALUES(10863,1,18,20,0.15) +INSERT "Order Details" VALUES(10863,58,13.25,12,0.15) +INSERT "Order Details" VALUES(10864,35,18,4,0) +INSERT "Order Details" VALUES(10864,67,14,15,0) +go +INSERT "Order Details" VALUES(10865,38,263.5,60,0.05) +INSERT "Order Details" VALUES(10865,39,18,80,0.05) +INSERT "Order Details" VALUES(10866,2,19,21,0.25) +INSERT "Order Details" VALUES(10866,24,4.5,6,0.25) +INSERT "Order Details" VALUES(10866,30,25.89,40,0.25) +INSERT "Order Details" VALUES(10867,53,32.8,3,0) +INSERT "Order Details" VALUES(10868,26,31.23,20,0) +INSERT "Order Details" VALUES(10868,35,18,30,0) +INSERT "Order Details" VALUES(10868,49,20,42,0.1) +INSERT "Order Details" VALUES(10869,1,18,40,0) +go +INSERT "Order Details" VALUES(10869,11,21,10,0) +INSERT "Order Details" VALUES(10869,23,9,50,0) +INSERT "Order Details" VALUES(10869,68,12.5,20,0) +INSERT "Order Details" VALUES(10870,35,18,3,0) +INSERT "Order Details" VALUES(10870,51,53,2,0) +INSERT "Order Details" VALUES(10871,6,25,50,0.05) +INSERT "Order Details" VALUES(10871,16,17.45,12,0.05) +INSERT "Order Details" VALUES(10871,17,39,16,0.05) +INSERT "Order Details" VALUES(10872,55,24,10,0.05) +INSERT "Order Details" VALUES(10872,62,49.3,20,0.05) +go +INSERT "Order Details" VALUES(10872,64,33.25,15,0.05) +INSERT "Order Details" VALUES(10872,65,21.05,21,0.05) +INSERT "Order Details" VALUES(10873,21,10,20,0) +INSERT "Order Details" VALUES(10873,28,45.6,3,0) +INSERT "Order Details" VALUES(10874,10,31,10,0) +INSERT "Order Details" VALUES(10875,19,9.2,25,0) +INSERT "Order Details" VALUES(10875,47,9.5,21,0.1) +INSERT "Order Details" VALUES(10875,49,20,15,0) +INSERT "Order Details" VALUES(10876,46,12,21,0) +INSERT "Order Details" VALUES(10876,64,33.25,20,0) +go +INSERT "Order Details" VALUES(10877,16,17.45,30,0.25) +INSERT "Order Details" VALUES(10877,18,62.5,25,0) +INSERT "Order Details" VALUES(10878,20,81,20,0.05) +INSERT "Order Details" VALUES(10879,40,18.4,12,0) +INSERT "Order Details" VALUES(10879,65,21.05,10,0) +INSERT "Order Details" VALUES(10879,76,18,10,0) +INSERT "Order Details" VALUES(10880,23,9,30,0.2) +INSERT "Order Details" VALUES(10880,61,28.5,30,0.2) +INSERT "Order Details" VALUES(10880,70,15,50,0.2) +INSERT "Order Details" VALUES(10881,73,15,10,0) +go +INSERT "Order Details" VALUES(10882,42,14,25,0) +INSERT "Order Details" VALUES(10882,49,20,20,0.15) +INSERT "Order Details" VALUES(10882,54,7.45,32,0.15) +INSERT "Order Details" VALUES(10883,24,4.5,8,0) +INSERT "Order Details" VALUES(10884,21,10,40,0.05) +INSERT "Order Details" VALUES(10884,56,38,21,0.05) +INSERT "Order Details" VALUES(10884,65,21.05,12,0.05) +INSERT "Order Details" VALUES(10885,2,19,20,0) +INSERT "Order Details" VALUES(10885,24,4.5,12,0) +INSERT "Order Details" VALUES(10885,70,15,30,0) +go +INSERT "Order Details" VALUES(10885,77,13,25,0) +INSERT "Order Details" VALUES(10886,10,31,70,0) +INSERT "Order Details" VALUES(10886,31,12.5,35,0) +INSERT "Order Details" VALUES(10886,77,13,40,0) +INSERT "Order Details" VALUES(10887,25,14,5,0) +INSERT "Order Details" VALUES(10888,2,19,20,0) +INSERT "Order Details" VALUES(10888,68,12.5,18,0) +INSERT "Order Details" VALUES(10889,11,21,40,0) +INSERT "Order Details" VALUES(10889,38,263.5,40,0) +INSERT "Order Details" VALUES(10890,17,39,15,0) +go +INSERT "Order Details" VALUES(10890,34,14,10,0) +INSERT "Order Details" VALUES(10890,41,9.65,14,0) +INSERT "Order Details" VALUES(10891,30,25.89,15,0.05) +INSERT "Order Details" VALUES(10892,59,55,40,0.05) +INSERT "Order Details" VALUES(10893,8,40,30,0) +INSERT "Order Details" VALUES(10893,24,4.5,10,0) +INSERT "Order Details" VALUES(10893,29,123.79,24,0) +INSERT "Order Details" VALUES(10893,30,25.89,35,0) +INSERT "Order Details" VALUES(10893,36,19,20,0) +INSERT "Order Details" VALUES(10894,13,6,28,0.05) +go +INSERT "Order Details" VALUES(10894,69,36,50,0.05) +INSERT "Order Details" VALUES(10894,75,7.75,120,0.05) +INSERT "Order Details" VALUES(10895,24,4.5,110,0) +INSERT "Order Details" VALUES(10895,39,18,45,0) +INSERT "Order Details" VALUES(10895,40,18.4,91,0) +INSERT "Order Details" VALUES(10895,60,34,100,0) +INSERT "Order Details" VALUES(10896,45,9.5,15,0) +INSERT "Order Details" VALUES(10896,56,38,16,0) +INSERT "Order Details" VALUES(10897,29,123.79,80,0) +INSERT "Order Details" VALUES(10897,30,25.89,36,0) +go +INSERT "Order Details" VALUES(10898,13,6,5,0) +INSERT "Order Details" VALUES(10899,39,18,8,0.15) +INSERT "Order Details" VALUES(10900,70,15,3,0.25) +INSERT "Order Details" VALUES(10901,41,9.65,30,0) +INSERT "Order Details" VALUES(10901,71,21.5,30,0) +INSERT "Order Details" VALUES(10902,55,24,30,0.15) +INSERT "Order Details" VALUES(10902,62,49.3,6,0.15) +INSERT "Order Details" VALUES(10903,13,6,40,0) +INSERT "Order Details" VALUES(10903,65,21.05,21,0) +INSERT "Order Details" VALUES(10903,68,12.5,20,0) +go +INSERT "Order Details" VALUES(10904,58,13.25,15,0) +INSERT "Order Details" VALUES(10904,62,49.3,35,0) +INSERT "Order Details" VALUES(10905,1,18,20,0.05) +INSERT "Order Details" VALUES(10906,61,28.5,15,0) +INSERT "Order Details" VALUES(10907,75,7.75,14,0) +INSERT "Order Details" VALUES(10908,7,30,20,0.05) +INSERT "Order Details" VALUES(10908,52,7,14,0.05) +INSERT "Order Details" VALUES(10909,7,30,12,0) +INSERT "Order Details" VALUES(10909,16,17.45,15,0) +INSERT "Order Details" VALUES(10909,41,9.65,5,0) +go +INSERT "Order Details" VALUES(10910,19,9.2,12,0) +INSERT "Order Details" VALUES(10910,49,20,10,0) +INSERT "Order Details" VALUES(10910,61,28.5,5,0) +INSERT "Order Details" VALUES(10911,1,18,10,0) +INSERT "Order Details" VALUES(10911,17,39,12,0) +INSERT "Order Details" VALUES(10911,67,14,15,0) +INSERT "Order Details" VALUES(10912,11,21,40,0.25) +INSERT "Order Details" VALUES(10912,29,123.79,60,0.25) +INSERT "Order Details" VALUES(10913,4,22,30,0.25) +INSERT "Order Details" VALUES(10913,33,2.5,40,0.25) +go +INSERT "Order Details" VALUES(10913,58,13.25,15,0) +INSERT "Order Details" VALUES(10914,71,21.5,25,0) +INSERT "Order Details" VALUES(10915,17,39,10,0) +INSERT "Order Details" VALUES(10915,33,2.5,30,0) +INSERT "Order Details" VALUES(10915,54,7.45,10,0) +INSERT "Order Details" VALUES(10916,16,17.45,6,0) +INSERT "Order Details" VALUES(10916,32,32,6,0) +INSERT "Order Details" VALUES(10916,57,19.5,20,0) +INSERT "Order Details" VALUES(10917,30,25.89,1,0) +INSERT "Order Details" VALUES(10917,60,34,10,0) +go +INSERT "Order Details" VALUES(10918,1,18,60,0.25) +INSERT "Order Details" VALUES(10918,60,34,25,0.25) +INSERT "Order Details" VALUES(10919,16,17.45,24,0) +INSERT "Order Details" VALUES(10919,25,14,24,0) +INSERT "Order Details" VALUES(10919,40,18.4,20,0) +INSERT "Order Details" VALUES(10920,50,16.25,24,0) +INSERT "Order Details" VALUES(10921,35,18,10,0) +INSERT "Order Details" VALUES(10921,63,43.9,40,0) +INSERT "Order Details" VALUES(10922,17,39,15,0) +INSERT "Order Details" VALUES(10922,24,4.5,35,0) +go +INSERT "Order Details" VALUES(10923,42,14,10,0.2) +INSERT "Order Details" VALUES(10923,43,46,10,0.2) +INSERT "Order Details" VALUES(10923,67,14,24,0.2) +INSERT "Order Details" VALUES(10924,10,31,20,0.1) +INSERT "Order Details" VALUES(10924,28,45.6,30,0.1) +INSERT "Order Details" VALUES(10924,75,7.75,6,0) +INSERT "Order Details" VALUES(10925,36,19,25,0.15) +INSERT "Order Details" VALUES(10925,52,7,12,0.15) +INSERT "Order Details" VALUES(10926,11,21,2,0) +INSERT "Order Details" VALUES(10926,13,6,10,0) +go +INSERT "Order Details" VALUES(10926,19,9.2,7,0) +INSERT "Order Details" VALUES(10926,72,34.8,10,0) +INSERT "Order Details" VALUES(10927,20,81,5,0) +INSERT "Order Details" VALUES(10927,52,7,5,0) +INSERT "Order Details" VALUES(10927,76,18,20,0) +INSERT "Order Details" VALUES(10928,47,9.5,5,0) +INSERT "Order Details" VALUES(10928,76,18,5,0) +INSERT "Order Details" VALUES(10929,21,10,60,0) +INSERT "Order Details" VALUES(10929,75,7.75,49,0) +INSERT "Order Details" VALUES(10929,77,13,15,0) +go +INSERT "Order Details" VALUES(10930,21,10,36,0) +INSERT "Order Details" VALUES(10930,27,43.9,25,0) +INSERT "Order Details" VALUES(10930,55,24,25,0.2) +INSERT "Order Details" VALUES(10930,58,13.25,30,0.2) +INSERT "Order Details" VALUES(10931,13,6,42,0.15) +INSERT "Order Details" VALUES(10931,57,19.5,30,0) +INSERT "Order Details" VALUES(10932,16,17.45,30,0.1) +INSERT "Order Details" VALUES(10932,62,49.3,14,0.1) +INSERT "Order Details" VALUES(10932,72,34.8,16,0) +INSERT "Order Details" VALUES(10932,75,7.75,20,0.1) +go +INSERT "Order Details" VALUES(10933,53,32.8,2,0) +INSERT "Order Details" VALUES(10933,61,28.5,30,0) +INSERT "Order Details" VALUES(10934,6,25,20,0) +INSERT "Order Details" VALUES(10935,1,18,21,0) +INSERT "Order Details" VALUES(10935,18,62.5,4,0.25) +INSERT "Order Details" VALUES(10935,23,9,8,0.25) +INSERT "Order Details" VALUES(10936,36,19,30,0.2) +INSERT "Order Details" VALUES(10937,28,45.6,8,0) +INSERT "Order Details" VALUES(10937,34,14,20,0) +INSERT "Order Details" VALUES(10938,13,6,20,0.25) +go +INSERT "Order Details" VALUES(10938,43,46,24,0.25) +INSERT "Order Details" VALUES(10938,60,34,49,0.25) +INSERT "Order Details" VALUES(10938,71,21.5,35,0.25) +INSERT "Order Details" VALUES(10939,2,19,10,0.15) +INSERT "Order Details" VALUES(10939,67,14,40,0.15) +INSERT "Order Details" VALUES(10940,7,30,8,0) +INSERT "Order Details" VALUES(10940,13,6,20,0) +INSERT "Order Details" VALUES(10941,31,12.5,44,0.25) +INSERT "Order Details" VALUES(10941,62,49.3,30,0.25) +INSERT "Order Details" VALUES(10941,68,12.5,80,0.25) +go +INSERT "Order Details" VALUES(10941,72,34.8,50,0) +INSERT "Order Details" VALUES(10942,49,20,28,0) +INSERT "Order Details" VALUES(10943,13,6,15,0) +INSERT "Order Details" VALUES(10943,22,21,21,0) +INSERT "Order Details" VALUES(10943,46,12,15,0) +INSERT "Order Details" VALUES(10944,11,21,5,0.25) +INSERT "Order Details" VALUES(10944,44,19.45,18,0.25) +INSERT "Order Details" VALUES(10944,56,38,18,0) +INSERT "Order Details" VALUES(10945,13,6,20,0) +INSERT "Order Details" VALUES(10945,31,12.5,10,0) +go +INSERT "Order Details" VALUES(10946,10,31,25,0) +INSERT "Order Details" VALUES(10946,24,4.5,25,0) +INSERT "Order Details" VALUES(10946,77,13,40,0) +INSERT "Order Details" VALUES(10947,59,55,4,0) +INSERT "Order Details" VALUES(10948,50,16.25,9,0) +INSERT "Order Details" VALUES(10948,51,53,40,0) +INSERT "Order Details" VALUES(10948,55,24,4,0) +INSERT "Order Details" VALUES(10949,6,25,12,0) +INSERT "Order Details" VALUES(10949,10,31,30,0) +INSERT "Order Details" VALUES(10949,17,39,6,0) +go +INSERT "Order Details" VALUES(10949,62,49.3,60,0) +INSERT "Order Details" VALUES(10950,4,22,5,0) +INSERT "Order Details" VALUES(10951,33,2.5,15,0.05) +INSERT "Order Details" VALUES(10951,41,9.65,6,0.05) +INSERT "Order Details" VALUES(10951,75,7.75,50,0.05) +INSERT "Order Details" VALUES(10952,6,25,16,0.05) +INSERT "Order Details" VALUES(10952,28,45.6,2,0) +INSERT "Order Details" VALUES(10953,20,81,50,0.05) +INSERT "Order Details" VALUES(10953,31,12.5,50,0.05) +INSERT "Order Details" VALUES(10954,16,17.45,28,0.15) +go +INSERT "Order Details" VALUES(10954,31,12.5,25,0.15) +INSERT "Order Details" VALUES(10954,45,9.5,30,0) +INSERT "Order Details" VALUES(10954,60,34,24,0.15) +INSERT "Order Details" VALUES(10955,75,7.75,12,0.2) +INSERT "Order Details" VALUES(10956,21,10,12,0) +INSERT "Order Details" VALUES(10956,47,9.5,14,0) +INSERT "Order Details" VALUES(10956,51,53,8,0) +INSERT "Order Details" VALUES(10957,30,25.89,30,0) +INSERT "Order Details" VALUES(10957,35,18,40,0) +INSERT "Order Details" VALUES(10957,64,33.25,8,0) +go +INSERT "Order Details" VALUES(10958,5,21.35,20,0) +INSERT "Order Details" VALUES(10958,7,30,6,0) +INSERT "Order Details" VALUES(10958,72,34.8,5,0) +INSERT "Order Details" VALUES(10959,75,7.75,20,0.15) +INSERT "Order Details" VALUES(10960,24,4.5,10,0.25) +INSERT "Order Details" VALUES(10960,41,9.65,24,0) +INSERT "Order Details" VALUES(10961,52,7,6,0.05) +INSERT "Order Details" VALUES(10961,76,18,60,0) +INSERT "Order Details" VALUES(10962,7,30,45,0) +INSERT "Order Details" VALUES(10962,13,6,77,0) +go +INSERT "Order Details" VALUES(10962,53,32.8,20,0) +INSERT "Order Details" VALUES(10962,69,36,9,0) +INSERT "Order Details" VALUES(10962,76,18,44,0) +INSERT "Order Details" VALUES(10963,60,34,2,0.15) +INSERT "Order Details" VALUES(10964,18,62.5,6,0) +INSERT "Order Details" VALUES(10964,38,263.5,5,0) +INSERT "Order Details" VALUES(10964,69,36,10,0) +INSERT "Order Details" VALUES(10965,51,53,16,0) +INSERT "Order Details" VALUES(10966,37,26,8,0) +INSERT "Order Details" VALUES(10966,56,38,12,0.15) +go +INSERT "Order Details" VALUES(10966,62,49.3,12,0.15) +INSERT "Order Details" VALUES(10967,19,9.2,12,0) +INSERT "Order Details" VALUES(10967,49,20,40,0) +INSERT "Order Details" VALUES(10968,12,38,30,0) +INSERT "Order Details" VALUES(10968,24,4.5,30,0) +INSERT "Order Details" VALUES(10968,64,33.25,4,0) +INSERT "Order Details" VALUES(10969,46,12,9,0) +INSERT "Order Details" VALUES(10970,52,7,40,0.2) +INSERT "Order Details" VALUES(10971,29,123.79,14,0) +INSERT "Order Details" VALUES(10972,17,39,6,0) +go +INSERT "Order Details" VALUES(10972,33,2.5,7,0) +INSERT "Order Details" VALUES(10973,26,31.23,5,0) +INSERT "Order Details" VALUES(10973,41,9.65,6,0) +INSERT "Order Details" VALUES(10973,75,7.75,10,0) +INSERT "Order Details" VALUES(10974,63,43.9,10,0) +INSERT "Order Details" VALUES(10975,8,40,16,0) +INSERT "Order Details" VALUES(10975,75,7.75,10,0) +INSERT "Order Details" VALUES(10976,28,45.6,20,0) +INSERT "Order Details" VALUES(10977,39,18,30,0) +INSERT "Order Details" VALUES(10977,47,9.5,30,0) +go +INSERT "Order Details" VALUES(10977,51,53,10,0) +INSERT "Order Details" VALUES(10977,63,43.9,20,0) +INSERT "Order Details" VALUES(10978,8,40,20,0.15) +INSERT "Order Details" VALUES(10978,21,10,40,0.15) +INSERT "Order Details" VALUES(10978,40,18.4,10,0) +INSERT "Order Details" VALUES(10978,44,19.45,6,0.15) +INSERT "Order Details" VALUES(10979,7,30,18,0) +INSERT "Order Details" VALUES(10979,12,38,20,0) +INSERT "Order Details" VALUES(10979,24,4.5,80,0) +INSERT "Order Details" VALUES(10979,27,43.9,30,0) +go +INSERT "Order Details" VALUES(10979,31,12.5,24,0) +INSERT "Order Details" VALUES(10979,63,43.9,35,0) +INSERT "Order Details" VALUES(10980,75,7.75,40,0.2) +INSERT "Order Details" VALUES(10981,38,263.5,60,0) +INSERT "Order Details" VALUES(10982,7,30,20,0) +INSERT "Order Details" VALUES(10982,43,46,9,0) +INSERT "Order Details" VALUES(10983,13,6,84,0.15) +INSERT "Order Details" VALUES(10983,57,19.5,15,0) +INSERT "Order Details" VALUES(10984,16,17.45,55,0) +INSERT "Order Details" VALUES(10984,24,4.5,20,0) +go +INSERT "Order Details" VALUES(10984,36,19,40,0) +INSERT "Order Details" VALUES(10985,16,17.45,36,0.1) +INSERT "Order Details" VALUES(10985,18,62.5,8,0.1) +INSERT "Order Details" VALUES(10985,32,32,35,0.1) +INSERT "Order Details" VALUES(10986,11,21,30,0) +INSERT "Order Details" VALUES(10986,20,81,15,0) +INSERT "Order Details" VALUES(10986,76,18,10,0) +INSERT "Order Details" VALUES(10986,77,13,15,0) +INSERT "Order Details" VALUES(10987,7,30,60,0) +INSERT "Order Details" VALUES(10987,43,46,6,0) +go +INSERT "Order Details" VALUES(10987,72,34.8,20,0) +INSERT "Order Details" VALUES(10988,7,30,60,0) +INSERT "Order Details" VALUES(10988,62,49.3,40,0.1) +INSERT "Order Details" VALUES(10989,6,25,40,0) +INSERT "Order Details" VALUES(10989,11,21,15,0) +INSERT "Order Details" VALUES(10989,41,9.65,4,0) +INSERT "Order Details" VALUES(10990,21,10,65,0) +INSERT "Order Details" VALUES(10990,34,14,60,0.15) +INSERT "Order Details" VALUES(10990,55,24,65,0.15) +INSERT "Order Details" VALUES(10990,61,28.5,66,0.15) +go +INSERT "Order Details" VALUES(10991,2,19,50,0.2) +INSERT "Order Details" VALUES(10991,70,15,20,0.2) +INSERT "Order Details" VALUES(10991,76,18,90,0.2) +INSERT "Order Details" VALUES(10992,72,34.8,2,0) +INSERT "Order Details" VALUES(10993,29,123.79,50,0.25) +INSERT "Order Details" VALUES(10993,41,9.65,35,0.25) +INSERT "Order Details" VALUES(10994,59,55,18,0.05) +INSERT "Order Details" VALUES(10995,51,53,20,0) +INSERT "Order Details" VALUES(10995,60,34,4,0) +INSERT "Order Details" VALUES(10996,42,14,40,0) +go +INSERT "Order Details" VALUES(10997,32,32,50,0) +INSERT "Order Details" VALUES(10997,46,12,20,0.25) +INSERT "Order Details" VALUES(10997,52,7,20,0.25) +INSERT "Order Details" VALUES(10998,24,4.5,12,0) +INSERT "Order Details" VALUES(10998,61,28.5,7,0) +INSERT "Order Details" VALUES(10998,74,10,20,0) +INSERT "Order Details" VALUES(10998,75,7.75,30,0) +INSERT "Order Details" VALUES(10999,41,9.65,20,0.05) +INSERT "Order Details" VALUES(10999,51,53,15,0.05) +INSERT "Order Details" VALUES(10999,77,13,21,0.05) +go +INSERT "Order Details" VALUES(11000,4,22,25,0.25) +INSERT "Order Details" VALUES(11000,24,4.5,30,0.25) +INSERT "Order Details" VALUES(11000,77,13,30,0) +INSERT "Order Details" VALUES(11001,7,30,60,0) +INSERT "Order Details" VALUES(11001,22,21,25,0) +INSERT "Order Details" VALUES(11001,46,12,25,0) +INSERT "Order Details" VALUES(11001,55,24,6,0) +INSERT "Order Details" VALUES(11002,13,6,56,0) +INSERT "Order Details" VALUES(11002,35,18,15,0.15) +INSERT "Order Details" VALUES(11002,42,14,24,0.15) +go +INSERT "Order Details" VALUES(11002,55,24,40,0) +INSERT "Order Details" VALUES(11003,1,18,4,0) +INSERT "Order Details" VALUES(11003,40,18.4,10,0) +INSERT "Order Details" VALUES(11003,52,7,10,0) +INSERT "Order Details" VALUES(11004,26,31.23,6,0) +INSERT "Order Details" VALUES(11004,76,18,6,0) +INSERT "Order Details" VALUES(11005,1,18,2,0) +INSERT "Order Details" VALUES(11005,59,55,10,0) +INSERT "Order Details" VALUES(11006,1,18,8,0) +INSERT "Order Details" VALUES(11006,29,123.79,2,0.25) +go +INSERT "Order Details" VALUES(11007,8,40,30,0) +INSERT "Order Details" VALUES(11007,29,123.79,10,0) +INSERT "Order Details" VALUES(11007,42,14,14,0) +INSERT "Order Details" VALUES(11008,28,45.6,70,0.05) +INSERT "Order Details" VALUES(11008,34,14,90,0.05) +INSERT "Order Details" VALUES(11008,71,21.5,21,0) +INSERT "Order Details" VALUES(11009,24,4.5,12,0) +INSERT "Order Details" VALUES(11009,36,19,18,0.25) +INSERT "Order Details" VALUES(11009,60,34,9,0) +INSERT "Order Details" VALUES(11010,7,30,20,0) +go +INSERT "Order Details" VALUES(11010,24,4.5,10,0) +INSERT "Order Details" VALUES(11011,58,13.25,40,0.05) +INSERT "Order Details" VALUES(11011,71,21.5,20,0) +INSERT "Order Details" VALUES(11012,19,9.2,50,0.05) +INSERT "Order Details" VALUES(11012,60,34,36,0.05) +INSERT "Order Details" VALUES(11012,71,21.5,60,0.05) +INSERT "Order Details" VALUES(11013,23,9,10,0) +INSERT "Order Details" VALUES(11013,42,14,4,0) +INSERT "Order Details" VALUES(11013,45,9.5,20,0) +INSERT "Order Details" VALUES(11013,68,12.5,2,0) +go +INSERT "Order Details" VALUES(11014,41,9.65,28,0.1) +INSERT "Order Details" VALUES(11015,30,25.89,15,0) +INSERT "Order Details" VALUES(11015,77,13,18,0) +INSERT "Order Details" VALUES(11016,31,12.5,15,0) +INSERT "Order Details" VALUES(11016,36,19,16,0) +INSERT "Order Details" VALUES(11017,3,10,25,0) +INSERT "Order Details" VALUES(11017,59,55,110,0) +INSERT "Order Details" VALUES(11017,70,15,30,0) +INSERT "Order Details" VALUES(11018,12,38,20,0) +INSERT "Order Details" VALUES(11018,18,62.5,10,0) +go +INSERT "Order Details" VALUES(11018,56,38,5,0) +INSERT "Order Details" VALUES(11019,46,12,3,0) +INSERT "Order Details" VALUES(11019,49,20,2,0) +INSERT "Order Details" VALUES(11020,10,31,24,0.15) +INSERT "Order Details" VALUES(11021,2,19,11,0.25) +INSERT "Order Details" VALUES(11021,20,81,15,0) +INSERT "Order Details" VALUES(11021,26,31.23,63,0) +INSERT "Order Details" VALUES(11021,51,53,44,0.25) +INSERT "Order Details" VALUES(11021,72,34.8,35,0) +INSERT "Order Details" VALUES(11022,19,9.2,35,0) +go +INSERT "Order Details" VALUES(11022,69,36,30,0) +INSERT "Order Details" VALUES(11023,7,30,4,0) +INSERT "Order Details" VALUES(11023,43,46,30,0) +INSERT "Order Details" VALUES(11024,26,31.23,12,0) +INSERT "Order Details" VALUES(11024,33,2.5,30,0) +INSERT "Order Details" VALUES(11024,65,21.05,21,0) +INSERT "Order Details" VALUES(11024,71,21.5,50,0) +INSERT "Order Details" VALUES(11025,1,18,10,0.1) +INSERT "Order Details" VALUES(11025,13,6,20,0.1) +INSERT "Order Details" VALUES(11026,18,62.5,8,0) +go +INSERT "Order Details" VALUES(11026,51,53,10,0) +INSERT "Order Details" VALUES(11027,24,4.5,30,0.25) +INSERT "Order Details" VALUES(11027,62,49.3,21,0.25) +INSERT "Order Details" VALUES(11028,55,24,35,0) +INSERT "Order Details" VALUES(11028,59,55,24,0) +INSERT "Order Details" VALUES(11029,56,38,20,0) +INSERT "Order Details" VALUES(11029,63,43.9,12,0) +INSERT "Order Details" VALUES(11030,2,19,100,0.25) +INSERT "Order Details" VALUES(11030,5,21.35,70,0) +INSERT "Order Details" VALUES(11030,29,123.79,60,0.25) +go +INSERT "Order Details" VALUES(11030,59,55,100,0.25) +INSERT "Order Details" VALUES(11031,1,18,45,0) +INSERT "Order Details" VALUES(11031,13,6,80,0) +INSERT "Order Details" VALUES(11031,24,4.5,21,0) +INSERT "Order Details" VALUES(11031,64,33.25,20,0) +INSERT "Order Details" VALUES(11031,71,21.5,16,0) +INSERT "Order Details" VALUES(11032,36,19,35,0) +INSERT "Order Details" VALUES(11032,38,263.5,25,0) +INSERT "Order Details" VALUES(11032,59,55,30,0) +INSERT "Order Details" VALUES(11033,53,32.8,70,0.1) +go +INSERT "Order Details" VALUES(11033,69,36,36,0.1) +INSERT "Order Details" VALUES(11034,21,10,15,0.1) +INSERT "Order Details" VALUES(11034,44,19.45,12,0) +INSERT "Order Details" VALUES(11034,61,28.5,6,0) +INSERT "Order Details" VALUES(11035,1,18,10,0) +INSERT "Order Details" VALUES(11035,35,18,60,0) +INSERT "Order Details" VALUES(11035,42,14,30,0) +INSERT "Order Details" VALUES(11035,54,7.45,10,0) +INSERT "Order Details" VALUES(11036,13,6,7,0) +INSERT "Order Details" VALUES(11036,59,55,30,0) +go +INSERT "Order Details" VALUES(11037,70,15,4,0) +INSERT "Order Details" VALUES(11038,40,18.4,5,0.2) +INSERT "Order Details" VALUES(11038,52,7,2,0) +INSERT "Order Details" VALUES(11038,71,21.5,30,0) +INSERT "Order Details" VALUES(11039,28,45.6,20,0) +INSERT "Order Details" VALUES(11039,35,18,24,0) +INSERT "Order Details" VALUES(11039,49,20,60,0) +INSERT "Order Details" VALUES(11039,57,19.5,28,0) +INSERT "Order Details" VALUES(11040,21,10,20,0) +INSERT "Order Details" VALUES(11041,2,19,30,0.2) +go +INSERT "Order Details" VALUES(11041,63,43.9,30,0) +INSERT "Order Details" VALUES(11042,44,19.45,15,0) +INSERT "Order Details" VALUES(11042,61,28.5,4,0) +INSERT "Order Details" VALUES(11043,11,21,10,0) +INSERT "Order Details" VALUES(11044,62,49.3,12,0) +INSERT "Order Details" VALUES(11045,33,2.5,15,0) +INSERT "Order Details" VALUES(11045,51,53,24,0) +INSERT "Order Details" VALUES(11046,12,38,20,0.05) +INSERT "Order Details" VALUES(11046,32,32,15,0.05) +INSERT "Order Details" VALUES(11046,35,18,18,0.05) +go +INSERT "Order Details" VALUES(11047,1,18,25,0.25) +INSERT "Order Details" VALUES(11047,5,21.35,30,0.25) +INSERT "Order Details" VALUES(11048,68,12.5,42,0) +INSERT "Order Details" VALUES(11049,2,19,10,0.2) +INSERT "Order Details" VALUES(11049,12,38,4,0.2) +INSERT "Order Details" VALUES(11050,76,18,50,0.1) +INSERT "Order Details" VALUES(11051,24,4.5,10,0.2) +INSERT "Order Details" VALUES(11052,43,46,30,0.2) +INSERT "Order Details" VALUES(11052,61,28.5,10,0.2) +INSERT "Order Details" VALUES(11053,18,62.5,35,0.2) +go +INSERT "Order Details" VALUES(11053,32,32,20,0) +INSERT "Order Details" VALUES(11053,64,33.25,25,0.2) +INSERT "Order Details" VALUES(11054,33,2.5,10,0) +INSERT "Order Details" VALUES(11054,67,14,20,0) +INSERT "Order Details" VALUES(11055,24,4.5,15,0) +INSERT "Order Details" VALUES(11055,25,14,15,0) +INSERT "Order Details" VALUES(11055,51,53,20,0) +INSERT "Order Details" VALUES(11055,57,19.5,20,0) +INSERT "Order Details" VALUES(11056,7,30,40,0) +INSERT "Order Details" VALUES(11056,55,24,35,0) +go +INSERT "Order Details" VALUES(11056,60,34,50,0) +INSERT "Order Details" VALUES(11057,70,15,3,0) +INSERT "Order Details" VALUES(11058,21,10,3,0) +INSERT "Order Details" VALUES(11058,60,34,21,0) +INSERT "Order Details" VALUES(11058,61,28.5,4,0) +INSERT "Order Details" VALUES(11059,13,6,30,0) +INSERT "Order Details" VALUES(11059,17,39,12,0) +INSERT "Order Details" VALUES(11059,60,34,35,0) +INSERT "Order Details" VALUES(11060,60,34,4,0) +INSERT "Order Details" VALUES(11060,77,13,10,0) +go +INSERT "Order Details" VALUES(11061,60,34,15,0) +INSERT "Order Details" VALUES(11062,53,32.8,10,0.2) +INSERT "Order Details" VALUES(11062,70,15,12,0.2) +INSERT "Order Details" VALUES(11063,34,14,30,0) +INSERT "Order Details" VALUES(11063,40,18.4,40,0.1) +INSERT "Order Details" VALUES(11063,41,9.65,30,0.1) +INSERT "Order Details" VALUES(11064,17,39,77,0.1) +INSERT "Order Details" VALUES(11064,41,9.65,12,0) +INSERT "Order Details" VALUES(11064,53,32.8,25,0.1) +INSERT "Order Details" VALUES(11064,55,24,4,0.1) +go +INSERT "Order Details" VALUES(11064,68,12.5,55,0) +INSERT "Order Details" VALUES(11065,30,25.89,4,0.25) +INSERT "Order Details" VALUES(11065,54,7.45,20,0.25) +INSERT "Order Details" VALUES(11066,16,17.45,3,0) +INSERT "Order Details" VALUES(11066,19,9.2,42,0) +INSERT "Order Details" VALUES(11066,34,14,35,0) +INSERT "Order Details" VALUES(11067,41,9.65,9,0) +INSERT "Order Details" VALUES(11068,28,45.6,8,0.15) +INSERT "Order Details" VALUES(11068,43,46,36,0.15) +INSERT "Order Details" VALUES(11068,77,13,28,0.15) +go +INSERT "Order Details" VALUES(11069,39,18,20,0) +INSERT "Order Details" VALUES(11070,1,18,40,0.15) +INSERT "Order Details" VALUES(11070,2,19,20,0.15) +INSERT "Order Details" VALUES(11070,16,17.45,30,0.15) +INSERT "Order Details" VALUES(11070,31,12.5,20,0) +INSERT "Order Details" VALUES(11071,7,30,15,0.05) +INSERT "Order Details" VALUES(11071,13,6,10,0.05) +INSERT "Order Details" VALUES(11072,2,19,8,0) +INSERT "Order Details" VALUES(11072,41,9.65,40,0) +INSERT "Order Details" VALUES(11072,50,16.25,22,0) +go +INSERT "Order Details" VALUES(11072,64,33.25,130,0) +INSERT "Order Details" VALUES(11073,11,21,10,0) +INSERT "Order Details" VALUES(11073,24,4.5,20,0) +INSERT "Order Details" VALUES(11074,16,17.45,14,0.05) +INSERT "Order Details" VALUES(11075,2,19,10,0.15) +INSERT "Order Details" VALUES(11075,46,12,30,0.15) +INSERT "Order Details" VALUES(11075,76,18,2,0.15) +INSERT "Order Details" VALUES(11076,6,25,20,0.25) +INSERT "Order Details" VALUES(11076,14,23.25,20,0.25) +INSERT "Order Details" VALUES(11076,19,9.2,10,0.25) +go +INSERT "Order Details" VALUES(11077,2,19,24,0.2) +INSERT "Order Details" VALUES(11077,3,10,4,0) +INSERT "Order Details" VALUES(11077,4,22,1,0) +INSERT "Order Details" VALUES(11077,6,25,1,0.02) +INSERT "Order Details" VALUES(11077,7,30,1,0.05) +INSERT "Order Details" VALUES(11077,8,40,2,0.1) +INSERT "Order Details" VALUES(11077,10,31,1,0) +INSERT "Order Details" VALUES(11077,12,38,2,0.05) +INSERT "Order Details" VALUES(11077,13,6,4,0) +INSERT "Order Details" VALUES(11077,14,23.25,1,0.03) +go +INSERT "Order Details" VALUES(11077,16,17.45,2,0.03) +INSERT "Order Details" VALUES(11077,20,81,1,0.04) +INSERT "Order Details" VALUES(11077,23,9,2,0) +INSERT "Order Details" VALUES(11077,32,32,1,0) +INSERT "Order Details" VALUES(11077,39,18,2,0.05) +INSERT "Order Details" VALUES(11077,41,9.65,3,0) +INSERT "Order Details" VALUES(11077,46,12,3,0.02) +INSERT "Order Details" VALUES(11077,52,7,2,0) +INSERT "Order Details" VALUES(11077,55,24,2,0) +INSERT "Order Details" VALUES(11077,60,34,2,0.06) +go +INSERT "Order Details" VALUES(11077,64,33.25,2,0.03) +INSERT "Order Details" VALUES(11077,66,17,1,0) +INSERT "Order Details" VALUES(11077,73,15,2,0.01) +INSERT "Order Details" VALUES(11077,75,7.75,4,0) +INSERT "Order Details" VALUES(11077,77,13,2,0) +go +ALTER TABLE "Order Details" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +set identity_insert "Orders" on +go +ALTER TABLE "Orders" NOCHECK CONSTRAINT ALL +go +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10248,N'VINET',5,'7/4/1996','8/1/1996','7/16/1996',3,32.38, + N'Vins et alcools Chevalier',N'59 rue de l''Abbaye',N'Reims', + NULL,N'51100',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10249,N'TOMSP',6,'7/5/1996','8/16/1996','7/10/1996',1,11.61, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10250,N'HANAR',4,'7/8/1996','8/5/1996','7/12/1996',2,65.83, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10251,N'VICTE',3,'7/8/1996','8/5/1996','7/15/1996',1,41.34, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10252,N'SUPRD',4,'7/9/1996','8/6/1996','7/11/1996',2,51.30, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10253,N'HANAR',3,'7/10/1996','7/24/1996','7/16/1996',2,58.17, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10254,N'CHOPS',5,'7/11/1996','8/8/1996','7/23/1996',2,22.98, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10255,N'RICSU',9,'7/12/1996','8/9/1996','7/15/1996',3,148.33, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10256,N'WELLI',3,'7/15/1996','8/12/1996','7/17/1996',2,13.97, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10257,N'HILAA',4,'7/16/1996','8/13/1996','7/22/1996',3,81.91, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10258,N'ERNSH',1,'7/17/1996','8/14/1996','7/23/1996',1,140.51, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10259,N'CENTC',4,'7/18/1996','8/15/1996','7/25/1996',3,3.25, + N'Centro comercial Moctezuma',N'Sierras de Granada 9993',N'México D.F.', + NULL,N'05022',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10260,N'OTTIK',4,'7/19/1996','8/16/1996','7/29/1996',1,55.09, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10261,N'QUEDE',4,'7/19/1996','8/16/1996','7/30/1996',2,3.05, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10262,N'RATTC',8,'7/22/1996','8/19/1996','7/25/1996',3,48.29, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10263,N'ERNSH',9,'7/23/1996','8/20/1996','7/31/1996',3,146.06, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10264,N'FOLKO',6,'7/24/1996','8/21/1996','8/23/1996',3,3.67, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10265,N'BLONP',2,'7/25/1996','8/22/1996','8/12/1996',1,55.28, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10266,N'WARTH',3,'7/26/1996','9/6/1996','7/31/1996',3,25.73, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10267,N'FRANK',4,'7/29/1996','8/26/1996','8/6/1996',1,208.58, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10268,N'GROSR',8,'7/30/1996','8/27/1996','8/2/1996',3,66.29, + N'GROSELLA-Restaurante',N'5ª Ave. Los Palos Grandes',N'Caracas', + N'DF',N'1081',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10269,N'WHITC',5,'7/31/1996','8/14/1996','8/9/1996',1,4.56, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10270,N'WARTH',1,'8/1/1996','8/29/1996','8/2/1996',1,136.54, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10271,N'SPLIR',6,'8/1/1996','8/29/1996','8/30/1996',2,4.54, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10272,N'RATTC',6,'8/2/1996','8/30/1996','8/6/1996',2,98.03, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10273,N'QUICK',3,'8/5/1996','9/2/1996','8/12/1996',3,76.07, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10274,N'VINET',6,'8/6/1996','9/3/1996','8/16/1996',1,6.01, + N'Vins et alcools Chevalier',N'59 rue de l''Abbaye',N'Reims', + NULL,N'51100',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10275,N'MAGAA',1,'8/7/1996','9/4/1996','8/9/1996',1,26.93, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10276,N'TORTU',8,'8/8/1996','8/22/1996','8/14/1996',3,13.84, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10277,N'MORGK',2,'8/9/1996','9/6/1996','8/13/1996',3,125.77, + N'Morgenstern Gesundkost',N'Heerstr. 22',N'Leipzig', + NULL,N'04179',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10278,N'BERGS',8,'8/12/1996','9/9/1996','8/16/1996',2,92.69, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10279,N'LEHMS',8,'8/13/1996','9/10/1996','8/16/1996',2,25.83, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10280,N'BERGS',2,'8/14/1996','9/11/1996','9/12/1996',1,8.98, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10281,N'ROMEY',4,'8/14/1996','8/28/1996','8/21/1996',1,2.94, + N'Romero y tomillo',N'Gran Vía, 1',N'Madrid', + NULL,N'28001',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10282,N'ROMEY',4,'8/15/1996','9/12/1996','8/21/1996',1,12.69, + N'Romero y tomillo',N'Gran Vía, 1',N'Madrid', + NULL,N'28001',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10283,N'LILAS',3,'8/16/1996','9/13/1996','8/23/1996',3,84.81, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10284,N'LEHMS',4,'8/19/1996','9/16/1996','8/27/1996',1,76.56, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10285,N'QUICK',1,'8/20/1996','9/17/1996','8/26/1996',2,76.83, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10286,N'QUICK',8,'8/21/1996','9/18/1996','8/30/1996',3,229.24, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10287,N'RICAR',8,'8/22/1996','9/19/1996','8/28/1996',3,12.76, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10288,N'REGGC',4,'8/23/1996','9/20/1996','9/3/1996',1,7.45, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10289,N'BSBEV',7,'8/26/1996','9/23/1996','8/28/1996',3,22.77, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10290,N'COMMI',8,'8/27/1996','9/24/1996','9/3/1996',1,79.70, + N'Comércio Mineiro',N'Av. dos Lusíadas, 23',N'Sao Paulo', + N'SP',N'05432-043',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10291,N'QUEDE',6,'8/27/1996','9/24/1996','9/4/1996',2,6.40, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10292,N'TRADH',1,'8/28/1996','9/25/1996','9/2/1996',2,1.35, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10293,N'TORTU',1,'8/29/1996','9/26/1996','9/11/1996',3,21.18, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10294,N'RATTC',4,'8/30/1996','9/27/1996','9/5/1996',2,147.26, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10295,N'VINET',2,'9/2/1996','9/30/1996','9/10/1996',2,1.15, + N'Vins et alcools Chevalier',N'59 rue de l''Abbaye',N'Reims', + NULL,N'51100',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10296,N'LILAS',6,'9/3/1996','10/1/1996','9/11/1996',1,0.12, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10297,N'BLONP',5,'9/4/1996','10/16/1996','9/10/1996',2,5.74, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10298,N'HUNGO',6,'9/5/1996','10/3/1996','9/11/1996',2,168.22, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10299,N'RICAR',4,'9/6/1996','10/4/1996','9/13/1996',2,29.76, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10300,N'MAGAA',2,'9/9/1996','10/7/1996','9/18/1996',2,17.68, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10301,N'WANDK',8,'9/9/1996','10/7/1996','9/17/1996',2,45.08, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10302,N'SUPRD',4,'9/10/1996','10/8/1996','10/9/1996',2,6.27, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10303,N'GODOS',7,'9/11/1996','10/9/1996','9/18/1996',2,107.83, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10304,N'TORTU',1,'9/12/1996','10/10/1996','9/17/1996',2,63.79, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10305,N'OLDWO',8,'9/13/1996','10/11/1996','10/9/1996',3,257.62, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10306,N'ROMEY',1,'9/16/1996','10/14/1996','9/23/1996',3,7.56, + N'Romero y tomillo',N'Gran Vía, 1',N'Madrid', + NULL,N'28001',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10307,N'LONEP',2,'9/17/1996','10/15/1996','9/25/1996',2,0.56, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10308,N'ANATR',7,'9/18/1996','10/16/1996','9/24/1996',3,1.61, + N'Ana Trujillo Emparedados y helados',N'Avda. de la Constitución 2222',N'México D.F.', + NULL,N'05021',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10309,N'HUNGO',3,'9/19/1996','10/17/1996','10/23/1996',1,47.30, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10310,N'THEBI',8,'9/20/1996','10/18/1996','9/27/1996',2,17.52, + N'The Big Cheese',N'89 Jefferson Way Suite 2',N'Portland', + N'OR',N'97201',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10311,N'DUMON',1,'9/20/1996','10/4/1996','9/26/1996',3,24.69, + N'Du monde entier',N'67, rue des Cinquante Otages',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10312,N'WANDK',2,'9/23/1996','10/21/1996','10/3/1996',2,40.26, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10313,N'QUICK',2,'9/24/1996','10/22/1996','10/4/1996',2,1.96, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10314,N'RATTC',1,'9/25/1996','10/23/1996','10/4/1996',2,74.16, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10315,N'ISLAT',4,'9/26/1996','10/24/1996','10/3/1996',2,41.76, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10316,N'RATTC',1,'9/27/1996','10/25/1996','10/8/1996',3,150.15, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10317,N'LONEP',6,'9/30/1996','10/28/1996','10/10/1996',1,12.69, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10318,N'ISLAT',8,'10/1/1996','10/29/1996','10/4/1996',2,4.73, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10319,N'TORTU',7,'10/2/1996','10/30/1996','10/11/1996',3,64.50, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10320,N'WARTH',5,'10/3/1996','10/17/1996','10/18/1996',3,34.57, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10321,N'ISLAT',3,'10/3/1996','10/31/1996','10/11/1996',2,3.43, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10322,N'PERIC',7,'10/4/1996','11/1/1996','10/23/1996',3,0.40, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10323,N'KOENE',4,'10/7/1996','11/4/1996','10/14/1996',1,4.88, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10324,N'SAVEA',9,'10/8/1996','11/5/1996','10/10/1996',1,214.27, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10325,N'KOENE',1,'10/9/1996','10/23/1996','10/14/1996',3,64.86, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10326,N'BOLID',4,'10/10/1996','11/7/1996','10/14/1996',2,77.92, + N'Bólido Comidas preparadas',N'C/ Araquil, 67',N'Madrid', + NULL,N'28023',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10327,N'FOLKO',2,'10/11/1996','11/8/1996','10/14/1996',1,63.36, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10328,N'FURIB',4,'10/14/1996','11/11/1996','10/17/1996',3,87.03, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10329,N'SPLIR',4,'10/15/1996','11/26/1996','10/23/1996',2,191.67, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10330,N'LILAS',3,'10/16/1996','11/13/1996','10/28/1996',1,12.75, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10331,N'BONAP',9,'10/16/1996','11/27/1996','10/21/1996',1,10.19, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10332,N'MEREP',3,'10/17/1996','11/28/1996','10/21/1996',2,52.84, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10333,N'WARTH',5,'10/18/1996','11/15/1996','10/25/1996',3,0.59, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10334,N'VICTE',8,'10/21/1996','11/18/1996','10/28/1996',2,8.56, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10335,N'HUNGO',7,'10/22/1996','11/19/1996','10/24/1996',2,42.11, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10336,N'PRINI',7,'10/23/1996','11/20/1996','10/25/1996',2,15.51, + N'Princesa Isabel Vinhos',N'Estrada da saúde n. 58',N'Lisboa', + NULL,N'1756',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10337,N'FRANK',4,'10/24/1996','11/21/1996','10/29/1996',3,108.26, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10338,N'OLDWO',4,'10/25/1996','11/22/1996','10/29/1996',3,84.21, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10339,N'MEREP',2,'10/28/1996','11/25/1996','11/4/1996',2,15.66, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10340,N'BONAP',1,'10/29/1996','11/26/1996','11/8/1996',3,166.31, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10341,N'SIMOB',7,'10/29/1996','11/26/1996','11/5/1996',3,26.78, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10342,N'FRANK',4,'10/30/1996','11/13/1996','11/4/1996',2,54.83, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10343,N'LEHMS',4,'10/31/1996','11/28/1996','11/6/1996',1,110.37, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10344,N'WHITC',4,'11/1/1996','11/29/1996','11/5/1996',2,23.29, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10345,N'QUICK',2,'11/4/1996','12/2/1996','11/11/1996',2,249.06, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10346,N'RATTC',3,'11/5/1996','12/17/1996','11/8/1996',3,142.08, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10347,N'FAMIA',4,'11/6/1996','12/4/1996','11/8/1996',3,3.10, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10348,N'WANDK',4,'11/7/1996','12/5/1996','11/15/1996',2,0.78, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10349,N'SPLIR',7,'11/8/1996','12/6/1996','11/15/1996',1,8.63, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10350,N'LAMAI',6,'11/11/1996','12/9/1996','12/3/1996',2,64.19, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10351,N'ERNSH',1,'11/11/1996','12/9/1996','11/20/1996',1,162.33, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10352,N'FURIB',3,'11/12/1996','11/26/1996','11/18/1996',3,1.30, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10353,N'PICCO',7,'11/13/1996','12/11/1996','11/25/1996',3,360.63, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10354,N'PERIC',8,'11/14/1996','12/12/1996','11/20/1996',3,53.80, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10355,N'AROUT',6,'11/15/1996','12/13/1996','11/20/1996',1,41.95, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10356,N'WANDK',6,'11/18/1996','12/16/1996','11/27/1996',2,36.71, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10357,N'LILAS',1,'11/19/1996','12/17/1996','12/2/1996',3,34.88, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10358,N'LAMAI',5,'11/20/1996','12/18/1996','11/27/1996',1,19.64, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10359,N'SEVES',5,'11/21/1996','12/19/1996','11/26/1996',3,288.43, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10360,N'BLONP',4,'11/22/1996','12/20/1996','12/2/1996',3,131.70, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10361,N'QUICK',1,'11/22/1996','12/20/1996','12/3/1996',2,183.17, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10362,N'BONAP',3,'11/25/1996','12/23/1996','11/28/1996',1,96.04, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10363,N'DRACD',4,'11/26/1996','12/24/1996','12/4/1996',3,30.54, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10364,N'EASTC',1,'11/26/1996','1/7/1997','12/4/1996',1,71.97, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10365,N'ANTON',3,'11/27/1996','12/25/1996','12/2/1996',2,22.00, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10366,N'GALED',8,'11/28/1996','1/9/1997','12/30/1996',2,10.14, + N'Galería del gastronómo',N'Rambla de Cataluña, 23',N'Barcelona', + NULL,N'8022',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10367,N'VAFFE',7,'11/28/1996','12/26/1996','12/2/1996',3,13.55, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10368,N'ERNSH',2,'11/29/1996','12/27/1996','12/2/1996',2,101.95, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10369,N'SPLIR',8,'12/2/1996','12/30/1996','12/9/1996',2,195.68, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10370,N'CHOPS',6,'12/3/1996','12/31/1996','12/27/1996',2,1.17, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10371,N'LAMAI',1,'12/3/1996','12/31/1996','12/24/1996',1,0.45, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10372,N'QUEEN',5,'12/4/1996','1/1/1997','12/9/1996',2,890.78, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10373,N'HUNGO',4,'12/5/1996','1/2/1997','12/11/1996',3,124.12, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10374,N'WOLZA',1,'12/5/1996','1/2/1997','12/9/1996',3,3.94, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10375,N'HUNGC',3,'12/6/1996','1/3/1997','12/9/1996',2,20.12, + N'Hungry Coyote Import Store',N'City Center Plaza 516 Main St.',N'Elgin', + N'OR',N'97827',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10376,N'MEREP',1,'12/9/1996','1/6/1997','12/13/1996',2,20.39, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10377,N'SEVES',1,'12/9/1996','1/6/1997','12/13/1996',3,22.21, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10378,N'FOLKO',5,'12/10/1996','1/7/1997','12/19/1996',3,5.44, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10379,N'QUEDE',2,'12/11/1996','1/8/1997','12/13/1996',1,45.03, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10380,N'HUNGO',8,'12/12/1996','1/9/1997','1/16/1997',3,35.03, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10381,N'LILAS',3,'12/12/1996','1/9/1997','12/13/1996',3,7.99, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10382,N'ERNSH',4,'12/13/1996','1/10/1997','12/16/1996',1,94.77, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10383,N'AROUT',8,'12/16/1996','1/13/1997','12/18/1996',3,34.24, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10384,N'BERGS',3,'12/16/1996','1/13/1997','12/20/1996',3,168.64, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10385,N'SPLIR',1,'12/17/1996','1/14/1997','12/23/1996',2,30.96, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10386,N'FAMIA',9,'12/18/1996','1/1/1997','12/25/1996',3,13.99, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10387,N'SANTG',1,'12/18/1996','1/15/1997','12/20/1996',2,93.63, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10388,N'SEVES',2,'12/19/1996','1/16/1997','12/20/1996',1,34.86, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10389,N'BOTTM',4,'12/20/1996','1/17/1997','12/24/1996',2,47.42, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10390,N'ERNSH',6,'12/23/1996','1/20/1997','12/26/1996',1,126.38, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10391,N'DRACD',3,'12/23/1996','1/20/1997','12/31/1996',3,5.45, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10392,N'PICCO',2,'12/24/1996','1/21/1997','1/1/1997',3,122.46, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10393,N'SAVEA',1,'12/25/1996','1/22/1997','1/3/1997',3,126.56, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10394,N'HUNGC',1,'12/25/1996','1/22/1997','1/3/1997',3,30.34, + N'Hungry Coyote Import Store',N'City Center Plaza 516 Main St.',N'Elgin', + N'OR',N'97827',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10395,N'HILAA',6,'12/26/1996','1/23/1997','1/3/1997',1,184.41, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10396,N'FRANK',1,'12/27/1996','1/10/1997','1/6/1997',3,135.35, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10397,N'PRINI',5,'12/27/1996','1/24/1997','1/2/1997',1,60.26, + N'Princesa Isabel Vinhos',N'Estrada da saúde n. 58',N'Lisboa', + NULL,N'1756',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10398,N'SAVEA',2,'12/30/1996','1/27/1997','1/9/1997',3,89.16, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10399,N'VAFFE',8,'12/31/1996','1/14/1997','1/8/1997',3,27.36, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10400,N'EASTC',1,'1/1/1997','1/29/1997','1/16/1997',3,83.93, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10401,N'RATTC',1,'1/1/1997','1/29/1997','1/10/1997',1,12.51, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10402,N'ERNSH',8,'1/2/1997','2/13/1997','1/10/1997',2,67.88, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10403,N'ERNSH',4,'1/3/1997','1/31/1997','1/9/1997',3,73.79, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10404,N'MAGAA',2,'1/3/1997','1/31/1997','1/8/1997',1,155.97, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10405,N'LINOD',1,'1/6/1997','2/3/1997','1/22/1997',1,34.82, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10406,N'QUEEN',7,'1/7/1997','2/18/1997','1/13/1997',1,108.04, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10407,N'OTTIK',2,'1/7/1997','2/4/1997','1/30/1997',2,91.48, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10408,N'FOLIG',8,'1/8/1997','2/5/1997','1/14/1997',1,11.26, + N'Folies gourmandes',N'184, chaussée de Tournai',N'Lille', + NULL,N'59000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10409,N'OCEAN',3,'1/9/1997','2/6/1997','1/14/1997',1,29.83, + N'Océano Atlántico Ltda.',N'Ing. Gustavo Moncada 8585 Piso 20-A',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10410,N'BOTTM',3,'1/10/1997','2/7/1997','1/15/1997',3,2.40, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10411,N'BOTTM',9,'1/10/1997','2/7/1997','1/21/1997',3,23.65, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10412,N'WARTH',8,'1/13/1997','2/10/1997','1/15/1997',2,3.77, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10413,N'LAMAI',3,'1/14/1997','2/11/1997','1/16/1997',2,95.66, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10414,N'FAMIA',2,'1/14/1997','2/11/1997','1/17/1997',3,21.48, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10415,N'HUNGC',3,'1/15/1997','2/12/1997','1/24/1997',1,0.20, + N'Hungry Coyote Import Store',N'City Center Plaza 516 Main St.',N'Elgin', + N'OR',N'97827',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10416,N'WARTH',8,'1/16/1997','2/13/1997','1/27/1997',3,22.72, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10417,N'SIMOB',4,'1/16/1997','2/13/1997','1/28/1997',3,70.29, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10418,N'QUICK',4,'1/17/1997','2/14/1997','1/24/1997',1,17.55, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10419,N'RICSU',4,'1/20/1997','2/17/1997','1/30/1997',2,137.35, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10420,N'WELLI',3,'1/21/1997','2/18/1997','1/27/1997',1,44.12, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10421,N'QUEDE',8,'1/21/1997','3/4/1997','1/27/1997',1,99.23, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10422,N'FRANS',2,'1/22/1997','2/19/1997','1/31/1997',1,3.02, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10423,N'GOURL',6,'1/23/1997','2/6/1997','2/24/1997',3,24.50, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10424,N'MEREP',7,'1/23/1997','2/20/1997','1/27/1997',2,370.61, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10425,N'LAMAI',6,'1/24/1997','2/21/1997','2/14/1997',2,7.93, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10426,N'GALED',4,'1/27/1997','2/24/1997','2/6/1997',1,18.69, + N'Galería del gastronómo',N'Rambla de Cataluña, 23',N'Barcelona', + NULL,N'8022',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10427,N'PICCO',4,'1/27/1997','2/24/1997','3/3/1997',2,31.29, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10428,N'REGGC',7,'1/28/1997','2/25/1997','2/4/1997',1,11.09, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10429,N'HUNGO',3,'1/29/1997','3/12/1997','2/7/1997',2,56.63, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10430,N'ERNSH',4,'1/30/1997','2/13/1997','2/3/1997',1,458.78, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10431,N'BOTTM',4,'1/30/1997','2/13/1997','2/7/1997',2,44.17, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10432,N'SPLIR',3,'1/31/1997','2/14/1997','2/7/1997',2,4.34, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10433,N'PRINI',3,'2/3/1997','3/3/1997','3/4/1997',3,73.83, + N'Princesa Isabel Vinhos',N'Estrada da saúde n. 58',N'Lisboa', + NULL,N'1756',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10434,N'FOLKO',3,'2/3/1997','3/3/1997','2/13/1997',2,17.92, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10435,N'CONSH',8,'2/4/1997','3/18/1997','2/7/1997',2,9.21, + N'Consolidated Holdings',N'Berkeley Gardens 12 Brewery',N'London', + NULL,N'WX1 6LT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10436,N'BLONP',3,'2/5/1997','3/5/1997','2/11/1997',2,156.66, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10437,N'WARTH',8,'2/5/1997','3/5/1997','2/12/1997',1,19.97, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10438,N'TOMSP',3,'2/6/1997','3/6/1997','2/14/1997',2,8.24, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10439,N'MEREP',6,'2/7/1997','3/7/1997','2/10/1997',3,4.07, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10440,N'SAVEA',4,'2/10/1997','3/10/1997','2/28/1997',2,86.53, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10441,N'OLDWO',3,'2/10/1997','3/24/1997','3/14/1997',2,73.02, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10442,N'ERNSH',3,'2/11/1997','3/11/1997','2/18/1997',2,47.94, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10443,N'REGGC',8,'2/12/1997','3/12/1997','2/14/1997',1,13.95, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10444,N'BERGS',3,'2/12/1997','3/12/1997','2/21/1997',3,3.50, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10445,N'BERGS',3,'2/13/1997','3/13/1997','2/20/1997',1,9.30, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10446,N'TOMSP',6,'2/14/1997','3/14/1997','2/19/1997',1,14.68, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10447,N'RICAR',4,'2/14/1997','3/14/1997','3/7/1997',2,68.66, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10448,N'RANCH',4,'2/17/1997','3/17/1997','2/24/1997',2,38.82, + N'Rancho grande',N'Av. del Libertador 900',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10449,N'BLONP',3,'2/18/1997','3/18/1997','2/27/1997',2,53.30, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10450,N'VICTE',8,'2/19/1997','3/19/1997','3/11/1997',2,7.23, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10451,N'QUICK',4,'2/19/1997','3/5/1997','3/12/1997',3,189.09, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10452,N'SAVEA',8,'2/20/1997','3/20/1997','2/26/1997',1,140.26, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10453,N'AROUT',1,'2/21/1997','3/21/1997','2/26/1997',2,25.36, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10454,N'LAMAI',4,'2/21/1997','3/21/1997','2/25/1997',3,2.74, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10455,N'WARTH',8,'2/24/1997','4/7/1997','3/3/1997',2,180.45, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10456,N'KOENE',8,'2/25/1997','4/8/1997','2/28/1997',2,8.12, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10457,N'KOENE',2,'2/25/1997','3/25/1997','3/3/1997',1,11.57, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10458,N'SUPRD',7,'2/26/1997','3/26/1997','3/4/1997',3,147.06, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10459,N'VICTE',4,'2/27/1997','3/27/1997','2/28/1997',2,25.09, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10460,N'FOLKO',8,'2/28/1997','3/28/1997','3/3/1997',1,16.27, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10461,N'LILAS',1,'2/28/1997','3/28/1997','3/5/1997',3,148.61, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10462,N'CONSH',2,'3/3/1997','3/31/1997','3/18/1997',1,6.17, + N'Consolidated Holdings',N'Berkeley Gardens 12 Brewery',N'London', + NULL,N'WX1 6LT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10463,N'SUPRD',5,'3/4/1997','4/1/1997','3/6/1997',3,14.78, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10464,N'FURIB',4,'3/4/1997','4/1/1997','3/14/1997',2,89.00, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10465,N'VAFFE',1,'3/5/1997','4/2/1997','3/14/1997',3,145.04, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10466,N'COMMI',4,'3/6/1997','4/3/1997','3/13/1997',1,11.93, + N'Comércio Mineiro',N'Av. dos Lusíadas, 23',N'Sao Paulo', + N'SP',N'05432-043',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10467,N'MAGAA',8,'3/6/1997','4/3/1997','3/11/1997',2,4.93, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10468,N'KOENE',3,'3/7/1997','4/4/1997','3/12/1997',3,44.12, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10469,N'WHITC',1,'3/10/1997','4/7/1997','3/14/1997',1,60.18, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10470,N'BONAP',4,'3/11/1997','4/8/1997','3/14/1997',2,64.56, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10471,N'BSBEV',2,'3/11/1997','4/8/1997','3/18/1997',3,45.59, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10472,N'SEVES',8,'3/12/1997','4/9/1997','3/19/1997',1,4.20, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10473,N'ISLAT',1,'3/13/1997','3/27/1997','3/21/1997',3,16.37, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10474,N'PERIC',5,'3/13/1997','4/10/1997','3/21/1997',2,83.49, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10475,N'SUPRD',9,'3/14/1997','4/11/1997','4/4/1997',1,68.52, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10476,N'HILAA',8,'3/17/1997','4/14/1997','3/24/1997',3,4.41, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10477,N'PRINI',5,'3/17/1997','4/14/1997','3/25/1997',2,13.02, + N'Princesa Isabel Vinhos',N'Estrada da saúde n. 58',N'Lisboa', + NULL,N'1756',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10478,N'VICTE',2,'3/18/1997','4/1/1997','3/26/1997',3,4.81, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10479,N'RATTC',3,'3/19/1997','4/16/1997','3/21/1997',3,708.95, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10480,N'FOLIG',6,'3/20/1997','4/17/1997','3/24/1997',2,1.35, + N'Folies gourmandes',N'184, chaussée de Tournai',N'Lille', + NULL,N'59000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10481,N'RICAR',8,'3/20/1997','4/17/1997','3/25/1997',2,64.33, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10482,N'LAZYK',1,'3/21/1997','4/18/1997','4/10/1997',3,7.48, + N'Lazy K Kountry Store',N'12 Orchestra Terrace',N'Walla Walla', + N'WA',N'99362',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10483,N'WHITC',7,'3/24/1997','4/21/1997','4/25/1997',2,15.28, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10484,N'BSBEV',3,'3/24/1997','4/21/1997','4/1/1997',3,6.88, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10485,N'LINOD',4,'3/25/1997','4/8/1997','3/31/1997',2,64.45, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10486,N'HILAA',1,'3/26/1997','4/23/1997','4/2/1997',2,30.53, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10487,N'QUEEN',2,'3/26/1997','4/23/1997','3/28/1997',2,71.07, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10488,N'FRANK',8,'3/27/1997','4/24/1997','4/2/1997',2,4.93, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10489,N'PICCO',6,'3/28/1997','4/25/1997','4/9/1997',2,5.29, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10490,N'HILAA',7,'3/31/1997','4/28/1997','4/3/1997',2,210.19, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10491,N'FURIB',8,'3/31/1997','4/28/1997','4/8/1997',3,16.96, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10492,N'BOTTM',3,'4/1/1997','4/29/1997','4/11/1997',1,62.89, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10493,N'LAMAI',4,'4/2/1997','4/30/1997','4/10/1997',3,10.64, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10494,N'COMMI',4,'4/2/1997','4/30/1997','4/9/1997',2,65.99, + N'Comércio Mineiro',N'Av. dos Lusíadas, 23',N'Sao Paulo', + N'SP',N'05432-043',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10495,N'LAUGB',3,'4/3/1997','5/1/1997','4/11/1997',3,4.65, + N'Laughing Bacchus Wine Cellars',N'2319 Elm St.',N'Vancouver', + N'BC',N'V3F 2K1',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10496,N'TRADH',7,'4/4/1997','5/2/1997','4/7/1997',2,46.77, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10497,N'LEHMS',7,'4/4/1997','5/2/1997','4/7/1997',1,36.21, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10498,N'HILAA',8,'4/7/1997','5/5/1997','4/11/1997',2,29.75, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10499,N'LILAS',4,'4/8/1997','5/6/1997','4/16/1997',2,102.02, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10500,N'LAMAI',6,'4/9/1997','5/7/1997','4/17/1997',1,42.68, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10501,N'BLAUS',9,'4/9/1997','5/7/1997','4/16/1997',3,8.85, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10502,N'PERIC',2,'4/10/1997','5/8/1997','4/29/1997',1,69.32, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10503,N'HUNGO',6,'4/11/1997','5/9/1997','4/16/1997',2,16.74, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10504,N'WHITC',4,'4/11/1997','5/9/1997','4/18/1997',3,59.13, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10505,N'MEREP',3,'4/14/1997','5/12/1997','4/21/1997',3,7.13, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10506,N'KOENE',9,'4/15/1997','5/13/1997','5/2/1997',2,21.19, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10507,N'ANTON',7,'4/15/1997','5/13/1997','4/22/1997',1,47.45, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10508,N'OTTIK',1,'4/16/1997','5/14/1997','5/13/1997',2,4.99, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10509,N'BLAUS',4,'4/17/1997','5/15/1997','4/29/1997',1,0.15, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10510,N'SAVEA',6,'4/18/1997','5/16/1997','4/28/1997',3,367.63, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10511,N'BONAP',4,'4/18/1997','5/16/1997','4/21/1997',3,350.64, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10512,N'FAMIA',7,'4/21/1997','5/19/1997','4/24/1997',2,3.53, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10513,N'WANDK',7,'4/22/1997','6/3/1997','4/28/1997',1,105.65, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10514,N'ERNSH',3,'4/22/1997','5/20/1997','5/16/1997',2,789.95, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10515,N'QUICK',2,'4/23/1997','5/7/1997','5/23/1997',1,204.47, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10516,N'HUNGO',2,'4/24/1997','5/22/1997','5/1/1997',3,62.78, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10517,N'NORTS',3,'4/24/1997','5/22/1997','4/29/1997',3,32.07, + N'North/South',N'South House 300 Queensbridge',N'London', + NULL,N'SW7 1RZ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10518,N'TORTU',4,'4/25/1997','5/9/1997','5/5/1997',2,218.15, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10519,N'CHOPS',6,'4/28/1997','5/26/1997','5/1/1997',3,91.76, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10520,N'SANTG',7,'4/29/1997','5/27/1997','5/1/1997',1,13.37, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10521,N'CACTU',8,'4/29/1997','5/27/1997','5/2/1997',2,17.22, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10522,N'LEHMS',4,'4/30/1997','5/28/1997','5/6/1997',1,45.33, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10523,N'SEVES',7,'5/1/1997','5/29/1997','5/30/1997',2,77.63, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10524,N'BERGS',1,'5/1/1997','5/29/1997','5/7/1997',2,244.79, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10525,N'BONAP',1,'5/2/1997','5/30/1997','5/23/1997',2,11.06, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10526,N'WARTH',4,'5/5/1997','6/2/1997','5/15/1997',2,58.59, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10527,N'QUICK',7,'5/5/1997','6/2/1997','5/7/1997',1,41.90, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10528,N'GREAL',6,'5/6/1997','5/20/1997','5/9/1997',2,3.35, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10529,N'MAISD',5,'5/7/1997','6/4/1997','5/9/1997',2,66.69, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10530,N'PICCO',3,'5/8/1997','6/5/1997','5/12/1997',2,339.22, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10531,N'OCEAN',7,'5/8/1997','6/5/1997','5/19/1997',1,8.12, + N'Océano Atlántico Ltda.',N'Ing. Gustavo Moncada 8585 Piso 20-A',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10532,N'EASTC',7,'5/9/1997','6/6/1997','5/12/1997',3,74.46, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10533,N'FOLKO',8,'5/12/1997','6/9/1997','5/22/1997',1,188.04, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10534,N'LEHMS',8,'5/12/1997','6/9/1997','5/14/1997',2,27.94, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10535,N'ANTON',4,'5/13/1997','6/10/1997','5/21/1997',1,15.64, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10536,N'LEHMS',3,'5/14/1997','6/11/1997','6/6/1997',2,58.88, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10537,N'RICSU',1,'5/14/1997','5/28/1997','5/19/1997',1,78.85, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10538,N'BSBEV',9,'5/15/1997','6/12/1997','5/16/1997',3,4.87, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10539,N'BSBEV',6,'5/16/1997','6/13/1997','5/23/1997',3,12.36, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10540,N'QUICK',3,'5/19/1997','6/16/1997','6/13/1997',3,1007.64, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10541,N'HANAR',2,'5/19/1997','6/16/1997','5/29/1997',1,68.65, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10542,N'KOENE',1,'5/20/1997','6/17/1997','5/26/1997',3,10.95, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10543,N'LILAS',8,'5/21/1997','6/18/1997','5/23/1997',2,48.17, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10544,N'LONEP',4,'5/21/1997','6/18/1997','5/30/1997',1,24.91, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10545,N'LAZYK',8,'5/22/1997','6/19/1997','6/26/1997',2,11.92, + N'Lazy K Kountry Store',N'12 Orchestra Terrace',N'Walla Walla', + N'WA',N'99362',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10546,N'VICTE',1,'5/23/1997','6/20/1997','5/27/1997',3,194.72, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10547,N'SEVES',3,'5/23/1997','6/20/1997','6/2/1997',2,178.43, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10548,N'TOMSP',3,'5/26/1997','6/23/1997','6/2/1997',2,1.43, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10549,N'QUICK',5,'5/27/1997','6/10/1997','5/30/1997',1,171.24, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10550,N'GODOS',7,'5/28/1997','6/25/1997','6/6/1997',3,4.32, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10551,N'FURIB',4,'5/28/1997','7/9/1997','6/6/1997',3,72.95, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10552,N'HILAA',2,'5/29/1997','6/26/1997','6/5/1997',1,83.22, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10553,N'WARTH',2,'5/30/1997','6/27/1997','6/3/1997',2,149.49, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10554,N'OTTIK',4,'5/30/1997','6/27/1997','6/5/1997',3,120.97, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10555,N'SAVEA',6,'6/2/1997','6/30/1997','6/4/1997',3,252.49, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10556,N'SIMOB',2,'6/3/1997','7/15/1997','6/13/1997',1,9.80, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10557,N'LEHMS',9,'6/3/1997','6/17/1997','6/6/1997',2,96.72, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10558,N'AROUT',1,'6/4/1997','7/2/1997','6/10/1997',2,72.97, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10559,N'BLONP',6,'6/5/1997','7/3/1997','6/13/1997',1,8.05, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10560,N'FRANK',8,'6/6/1997','7/4/1997','6/9/1997',1,36.65, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10561,N'FOLKO',2,'6/6/1997','7/4/1997','6/9/1997',2,242.21, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10562,N'REGGC',1,'6/9/1997','7/7/1997','6/12/1997',1,22.95, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10563,N'RICAR',2,'6/10/1997','7/22/1997','6/24/1997',2,60.43, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10564,N'RATTC',4,'6/10/1997','7/8/1997','6/16/1997',3,13.75, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10565,N'MEREP',8,'6/11/1997','7/9/1997','6/18/1997',2,7.15, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10566,N'BLONP',9,'6/12/1997','7/10/1997','6/18/1997',1,88.40, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10567,N'HUNGO',1,'6/12/1997','7/10/1997','6/17/1997',1,33.97, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10568,N'GALED',3,'6/13/1997','7/11/1997','7/9/1997',3,6.54, + N'Galería del gastronómo',N'Rambla de Cataluña, 23',N'Barcelona', + NULL,N'8022',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10569,N'RATTC',5,'6/16/1997','7/14/1997','7/11/1997',1,58.98, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10570,N'MEREP',3,'6/17/1997','7/15/1997','6/19/1997',3,188.99, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10571,N'ERNSH',8,'6/17/1997','7/29/1997','7/4/1997',3,26.06, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10572,N'BERGS',3,'6/18/1997','7/16/1997','6/25/1997',2,116.43, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10573,N'ANTON',7,'6/19/1997','7/17/1997','6/20/1997',3,84.84, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10574,N'TRAIH',4,'6/19/1997','7/17/1997','6/30/1997',2,37.60, + N'Trail''s Head Gourmet Provisioners',N'722 DaVinci Blvd.',N'Kirkland', + N'WA',N'98034',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10575,N'MORGK',5,'6/20/1997','7/4/1997','6/30/1997',1,127.34, + N'Morgenstern Gesundkost',N'Heerstr. 22',N'Leipzig', + NULL,N'04179',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10576,N'TORTU',3,'6/23/1997','7/7/1997','6/30/1997',3,18.56, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10577,N'TRAIH',9,'6/23/1997','8/4/1997','6/30/1997',2,25.41, + N'Trail''s Head Gourmet Provisioners',N'722 DaVinci Blvd.',N'Kirkland', + N'WA',N'98034',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10578,N'BSBEV',4,'6/24/1997','7/22/1997','7/25/1997',3,29.60, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10579,N'LETSS',1,'6/25/1997','7/23/1997','7/4/1997',2,13.73, + N'Let''s Stop N Shop',N'87 Polk St. Suite 5',N'San Francisco', + N'CA',N'94117',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10580,N'OTTIK',4,'6/26/1997','7/24/1997','7/1/1997',3,75.89, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10581,N'FAMIA',3,'6/26/1997','7/24/1997','7/2/1997',1,3.01, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10582,N'BLAUS',3,'6/27/1997','7/25/1997','7/14/1997',2,27.71, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10583,N'WARTH',2,'6/30/1997','7/28/1997','7/4/1997',2,7.28, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10584,N'BLONP',4,'6/30/1997','7/28/1997','7/4/1997',1,59.14, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10585,N'WELLI',7,'7/1/1997','7/29/1997','7/10/1997',1,13.41, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10586,N'REGGC',9,'7/2/1997','7/30/1997','7/9/1997',1,0.48, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10587,N'QUEDE',1,'7/2/1997','7/30/1997','7/9/1997',1,62.52, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10588,N'QUICK',2,'7/3/1997','7/31/1997','7/10/1997',3,194.67, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10589,N'GREAL',8,'7/4/1997','8/1/1997','7/14/1997',2,4.42, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10590,N'MEREP',4,'7/7/1997','8/4/1997','7/14/1997',3,44.77, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10591,N'VAFFE',1,'7/7/1997','7/21/1997','7/16/1997',1,55.92, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10592,N'LEHMS',3,'7/8/1997','8/5/1997','7/16/1997',1,32.10, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10593,N'LEHMS',7,'7/9/1997','8/6/1997','8/13/1997',2,174.20, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10594,N'OLDWO',3,'7/9/1997','8/6/1997','7/16/1997',2,5.24, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10595,N'ERNSH',2,'7/10/1997','8/7/1997','7/14/1997',1,96.78, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10596,N'WHITC',8,'7/11/1997','8/8/1997','8/12/1997',1,16.34, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10597,N'PICCO',7,'7/11/1997','8/8/1997','7/18/1997',3,35.12, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10598,N'RATTC',1,'7/14/1997','8/11/1997','7/18/1997',3,44.42, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10599,N'BSBEV',6,'7/15/1997','8/26/1997','7/21/1997',3,29.98, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10600,N'HUNGC',4,'7/16/1997','8/13/1997','7/21/1997',1,45.13, + N'Hungry Coyote Import Store',N'City Center Plaza 516 Main St.',N'Elgin', + N'OR',N'97827',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10601,N'HILAA',7,'7/16/1997','8/27/1997','7/22/1997',1,58.30, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10602,N'VAFFE',8,'7/17/1997','8/14/1997','7/22/1997',2,2.92, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10603,N'SAVEA',8,'7/18/1997','8/15/1997','8/8/1997',2,48.77, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10604,N'FURIB',1,'7/18/1997','8/15/1997','7/29/1997',1,7.46, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10605,N'MEREP',1,'7/21/1997','8/18/1997','7/29/1997',2,379.13, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10606,N'TRADH',4,'7/22/1997','8/19/1997','7/31/1997',3,79.40, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10607,N'SAVEA',5,'7/22/1997','8/19/1997','7/25/1997',1,200.24, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10608,N'TOMSP',4,'7/23/1997','8/20/1997','8/1/1997',2,27.79, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10609,N'DUMON',7,'7/24/1997','8/21/1997','7/30/1997',2,1.85, + N'Du monde entier',N'67, rue des Cinquante Otages',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10610,N'LAMAI',8,'7/25/1997','8/22/1997','8/6/1997',1,26.78, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10611,N'WOLZA',6,'7/25/1997','8/22/1997','8/1/1997',2,80.65, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10612,N'SAVEA',1,'7/28/1997','8/25/1997','8/1/1997',2,544.08, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10613,N'HILAA',4,'7/29/1997','8/26/1997','8/1/1997',2,8.11, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10614,N'BLAUS',8,'7/29/1997','8/26/1997','8/1/1997',3,1.93, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10615,N'WILMK',2,'7/30/1997','8/27/1997','8/6/1997',3,0.75, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10616,N'GREAL',1,'7/31/1997','8/28/1997','8/5/1997',2,116.53, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10617,N'GREAL',4,'7/31/1997','8/28/1997','8/4/1997',2,18.53, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10618,N'MEREP',1,'8/1/1997','9/12/1997','8/8/1997',1,154.68, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10619,N'MEREP',3,'8/4/1997','9/1/1997','8/7/1997',3,91.05, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10620,N'LAUGB',2,'8/5/1997','9/2/1997','8/14/1997',3,0.94, + N'Laughing Bacchus Wine Cellars',N'2319 Elm St.',N'Vancouver', + N'BC',N'V3F 2K1',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10621,N'ISLAT',4,'8/5/1997','9/2/1997','8/11/1997',2,23.73, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10622,N'RICAR',4,'8/6/1997','9/3/1997','8/11/1997',3,50.97, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10623,N'FRANK',8,'8/7/1997','9/4/1997','8/12/1997',2,97.18, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10624,N'THECR',4,'8/7/1997','9/4/1997','8/19/1997',2,94.80, + N'The Cracker Box',N'55 Grizzly Peak Rd.',N'Butte', + N'MT',N'59801',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10625,N'ANATR',3,'8/8/1997','9/5/1997','8/14/1997',1,43.90, + N'Ana Trujillo Emparedados y helados',N'Avda. de la Constitución 2222',N'México D.F.', + NULL,N'05021',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10626,N'BERGS',1,'8/11/1997','9/8/1997','8/20/1997',2,138.69, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10627,N'SAVEA',8,'8/11/1997','9/22/1997','8/21/1997',3,107.46, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10628,N'BLONP',4,'8/12/1997','9/9/1997','8/20/1997',3,30.36, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10629,N'GODOS',4,'8/12/1997','9/9/1997','8/20/1997',3,85.46, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10630,N'KOENE',1,'8/13/1997','9/10/1997','8/19/1997',2,32.35, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10631,N'LAMAI',8,'8/14/1997','9/11/1997','8/15/1997',1,0.87, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10632,N'WANDK',8,'8/14/1997','9/11/1997','8/19/1997',1,41.38, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10633,N'ERNSH',7,'8/15/1997','9/12/1997','8/18/1997',3,477.90, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10634,N'FOLIG',4,'8/15/1997','9/12/1997','8/21/1997',3,487.38, + N'Folies gourmandes',N'184, chaussée de Tournai',N'Lille', + NULL,N'59000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10635,N'MAGAA',8,'8/18/1997','9/15/1997','8/21/1997',3,47.46, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10636,N'WARTH',4,'8/19/1997','9/16/1997','8/26/1997',1,1.15, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10637,N'QUEEN',6,'8/19/1997','9/16/1997','8/26/1997',1,201.29, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10638,N'LINOD',3,'8/20/1997','9/17/1997','9/1/1997',1,158.44, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10639,N'SANTG',7,'8/20/1997','9/17/1997','8/27/1997',3,38.64, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10640,N'WANDK',4,'8/21/1997','9/18/1997','8/28/1997',1,23.55, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10641,N'HILAA',4,'8/22/1997','9/19/1997','8/26/1997',2,179.61, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10642,N'SIMOB',7,'8/22/1997','9/19/1997','9/5/1997',3,41.89, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10643,N'ALFKI',6,'8/25/1997','9/22/1997','9/2/1997',1,29.46, + N'Alfreds Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10644,N'WELLI',3,'8/25/1997','9/22/1997','9/1/1997',2,0.14, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10645,N'HANAR',4,'8/26/1997','9/23/1997','9/2/1997',1,12.41, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10646,N'HUNGO',9,'8/27/1997','10/8/1997','9/3/1997',3,142.33, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10647,N'QUEDE',4,'8/27/1997','9/10/1997','9/3/1997',2,45.54, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10648,N'RICAR',5,'8/28/1997','10/9/1997','9/9/1997',2,14.25, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10649,N'MAISD',5,'8/28/1997','9/25/1997','8/29/1997',3,6.20, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10650,N'FAMIA',5,'8/29/1997','9/26/1997','9/3/1997',3,176.81, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10651,N'WANDK',8,'9/1/1997','9/29/1997','9/11/1997',2,20.60, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10652,N'GOURL',4,'9/1/1997','9/29/1997','9/8/1997',2,7.14, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10653,N'FRANK',1,'9/2/1997','9/30/1997','9/19/1997',1,93.25, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10654,N'BERGS',5,'9/2/1997','9/30/1997','9/11/1997',1,55.26, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10655,N'REGGC',1,'9/3/1997','10/1/1997','9/11/1997',2,4.41, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10656,N'GREAL',6,'9/4/1997','10/2/1997','9/10/1997',1,57.15, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10657,N'SAVEA',2,'9/4/1997','10/2/1997','9/15/1997',2,352.69, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10658,N'QUICK',4,'9/5/1997','10/3/1997','9/8/1997',1,364.15, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10659,N'QUEEN',7,'9/5/1997','10/3/1997','9/10/1997',2,105.81, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10660,N'HUNGC',8,'9/8/1997','10/6/1997','10/15/1997',1,111.29, + N'Hungry Coyote Import Store',N'City Center Plaza 516 Main St.',N'Elgin', + N'OR',N'97827',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10661,N'HUNGO',7,'9/9/1997','10/7/1997','9/15/1997',3,17.55, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10662,N'LONEP',3,'9/9/1997','10/7/1997','9/18/1997',2,1.28, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10663,N'BONAP',2,'9/10/1997','9/24/1997','10/3/1997',2,113.15, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10664,N'FURIB',1,'9/10/1997','10/8/1997','9/19/1997',3,1.27, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10665,N'LONEP',1,'9/11/1997','10/9/1997','9/17/1997',2,26.31, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10666,N'RICSU',7,'9/12/1997','10/10/1997','9/22/1997',2,232.42, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10667,N'ERNSH',7,'9/12/1997','10/10/1997','9/19/1997',1,78.09, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10668,N'WANDK',1,'9/15/1997','10/13/1997','9/23/1997',2,47.22, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10669,N'SIMOB',2,'9/15/1997','10/13/1997','9/22/1997',1,24.39, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10670,N'FRANK',4,'9/16/1997','10/14/1997','9/18/1997',1,203.48, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10671,N'FRANR',1,'9/17/1997','10/15/1997','9/24/1997',1,30.34, + N'France restauration',N'54, rue Royale',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10672,N'BERGS',9,'9/17/1997','10/1/1997','9/26/1997',2,95.75, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10673,N'WILMK',2,'9/18/1997','10/16/1997','9/19/1997',1,22.76, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10674,N'ISLAT',4,'9/18/1997','10/16/1997','9/30/1997',2,0.90, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10675,N'FRANK',5,'9/19/1997','10/17/1997','9/23/1997',2,31.85, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10676,N'TORTU',2,'9/22/1997','10/20/1997','9/29/1997',2,2.01, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10677,N'ANTON',1,'9/22/1997','10/20/1997','9/26/1997',3,4.03, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10678,N'SAVEA',7,'9/23/1997','10/21/1997','10/16/1997',3,388.98, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10679,N'BLONP',8,'9/23/1997','10/21/1997','9/30/1997',3,27.94, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10680,N'OLDWO',1,'9/24/1997','10/22/1997','9/26/1997',1,26.61, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10681,N'GREAL',3,'9/25/1997','10/23/1997','9/30/1997',3,76.13, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10682,N'ANTON',3,'9/25/1997','10/23/1997','10/1/1997',2,36.13, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10683,N'DUMON',2,'9/26/1997','10/24/1997','10/1/1997',1,4.40, + N'Du monde entier',N'67, rue des Cinquante Otages',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10684,N'OTTIK',3,'9/26/1997','10/24/1997','9/30/1997',1,145.63, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10685,N'GOURL',4,'9/29/1997','10/13/1997','10/3/1997',2,33.75, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10686,N'PICCO',2,'9/30/1997','10/28/1997','10/8/1997',1,96.50, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10687,N'HUNGO',9,'9/30/1997','10/28/1997','10/30/1997',2,296.43, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10688,N'VAFFE',4,'10/1/1997','10/15/1997','10/7/1997',2,299.09, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10689,N'BERGS',1,'10/1/1997','10/29/1997','10/7/1997',2,13.42, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10690,N'HANAR',1,'10/2/1997','10/30/1997','10/3/1997',1,15.80, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10691,N'QUICK',2,'10/3/1997','11/14/1997','10/22/1997',2,810.05, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10692,N'ALFKI',4,'10/3/1997','10/31/1997','10/13/1997',2,61.02, + N'Alfred''s Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10693,N'WHITC',3,'10/6/1997','10/20/1997','10/10/1997',3,139.34, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10694,N'QUICK',8,'10/6/1997','11/3/1997','10/9/1997',3,398.36, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10695,N'WILMK',7,'10/7/1997','11/18/1997','10/14/1997',1,16.72, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10696,N'WHITC',8,'10/8/1997','11/19/1997','10/14/1997',3,102.55, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10697,N'LINOD',3,'10/8/1997','11/5/1997','10/14/1997',1,45.52, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10698,N'ERNSH',4,'10/9/1997','11/6/1997','10/17/1997',1,272.47, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10699,N'MORGK',3,'10/9/1997','11/6/1997','10/13/1997',3,0.58, + N'Morgenstern Gesundkost',N'Heerstr. 22',N'Leipzig', + NULL,N'04179',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10700,N'SAVEA',3,'10/10/1997','11/7/1997','10/16/1997',1,65.10, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10701,N'HUNGO',6,'10/13/1997','10/27/1997','10/15/1997',3,220.31, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10702,N'ALFKI',4,'10/13/1997','11/24/1997','10/21/1997',1,23.94, + N'Alfred''s Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10703,N'FOLKO',6,'10/14/1997','11/11/1997','10/20/1997',2,152.30, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10704,N'QUEEN',6,'10/14/1997','11/11/1997','11/7/1997',1,4.78, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10705,N'HILAA',9,'10/15/1997','11/12/1997','11/18/1997',2,3.52, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10706,N'OLDWO',8,'10/16/1997','11/13/1997','10/21/1997',3,135.63, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10707,N'AROUT',4,'10/16/1997','10/30/1997','10/23/1997',3,21.74, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10708,N'THEBI',6,'10/17/1997','11/28/1997','11/5/1997',2,2.96, + N'The Big Cheese',N'89 Jefferson Way Suite 2',N'Portland', + N'OR',N'97201',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10709,N'GOURL',1,'10/17/1997','11/14/1997','11/20/1997',3,210.80, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10710,N'FRANS',1,'10/20/1997','11/17/1997','10/23/1997',1,4.98, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10711,N'SAVEA',5,'10/21/1997','12/2/1997','10/29/1997',2,52.41, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10712,N'HUNGO',3,'10/21/1997','11/18/1997','10/31/1997',1,89.93, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10713,N'SAVEA',1,'10/22/1997','11/19/1997','10/24/1997',1,167.05, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10714,N'SAVEA',5,'10/22/1997','11/19/1997','10/27/1997',3,24.49, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10715,N'BONAP',3,'10/23/1997','11/6/1997','10/29/1997',1,63.20, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10716,N'RANCH',4,'10/24/1997','11/21/1997','10/27/1997',2,22.57, + N'Rancho grande',N'Av. del Libertador 900',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10717,N'FRANK',1,'10/24/1997','11/21/1997','10/29/1997',2,59.25, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10718,N'KOENE',1,'10/27/1997','11/24/1997','10/29/1997',3,170.88, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10719,N'LETSS',8,'10/27/1997','11/24/1997','11/5/1997',2,51.44, + N'Let''s Stop N Shop',N'87 Polk St. Suite 5',N'San Francisco', + N'CA',N'94117',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10720,N'QUEDE',8,'10/28/1997','11/11/1997','11/5/1997',2,9.53, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10721,N'QUICK',5,'10/29/1997','11/26/1997','10/31/1997',3,48.92, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10722,N'SAVEA',8,'10/29/1997','12/10/1997','11/4/1997',1,74.58, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10723,N'WHITC',3,'10/30/1997','11/27/1997','11/25/1997',1,21.72, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10724,N'MEREP',8,'10/30/1997','12/11/1997','11/5/1997',2,57.75, + N'Mère Paillarde',N'43 rue St. Laurent',N'Montréal', + N'Québec',N'H1J 1C3',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10725,N'FAMIA',4,'10/31/1997','11/28/1997','11/5/1997',3,10.83, + N'Familia Arquibaldo',N'Rua Orós, 92',N'Sao Paulo', + N'SP',N'05442-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10726,N'EASTC',4,'11/3/1997','11/17/1997','12/5/1997',1,16.56, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10727,N'REGGC',2,'11/3/1997','12/1/1997','12/5/1997',1,89.90, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10728,N'QUEEN',4,'11/4/1997','12/2/1997','11/11/1997',2,58.33, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10729,N'LINOD',8,'11/4/1997','12/16/1997','11/14/1997',3,141.06, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10730,N'BONAP',5,'11/5/1997','12/3/1997','11/14/1997',1,20.12, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10731,N'CHOPS',7,'11/6/1997','12/4/1997','11/14/1997',1,96.65, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10732,N'BONAP',3,'11/6/1997','12/4/1997','11/7/1997',1,16.97, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10733,N'BERGS',1,'11/7/1997','12/5/1997','11/10/1997',3,110.11, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10734,N'GOURL',2,'11/7/1997','12/5/1997','11/12/1997',3,1.63, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10735,N'LETSS',6,'11/10/1997','12/8/1997','11/21/1997',2,45.97, + N'Let''s Stop N Shop',N'87 Polk St. Suite 5',N'San Francisco', + N'CA',N'94117',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10736,N'HUNGO',9,'11/11/1997','12/9/1997','11/21/1997',2,44.10, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10737,N'VINET',2,'11/11/1997','12/9/1997','11/18/1997',2,7.79, + N'Vins et alcools Chevalier',N'59 rue de l''Abbaye',N'Reims', + NULL,N'51100',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10738,N'SPECD',2,'11/12/1997','12/10/1997','11/18/1997',1,2.91, + N'Spécialités du monde',N'25, rue Lauriston',N'Paris', + NULL,N'75016',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10739,N'VINET',3,'11/12/1997','12/10/1997','11/17/1997',3,11.08, + N'Vins et alcools Chevalier',N'59 rue de l''Abbaye',N'Reims', + NULL,N'51100',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10740,N'WHITC',4,'11/13/1997','12/11/1997','11/25/1997',2,81.88, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10741,N'AROUT',4,'11/14/1997','11/28/1997','11/18/1997',3,10.96, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10742,N'BOTTM',3,'11/14/1997','12/12/1997','11/18/1997',3,243.73, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10743,N'AROUT',1,'11/17/1997','12/15/1997','11/21/1997',2,23.72, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10744,N'VAFFE',6,'11/17/1997','12/15/1997','11/24/1997',1,69.19, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10745,N'QUICK',9,'11/18/1997','12/16/1997','11/27/1997',1,3.52, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10746,N'CHOPS',1,'11/19/1997','12/17/1997','11/21/1997',3,31.43, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10747,N'PICCO',6,'11/19/1997','12/17/1997','11/26/1997',1,117.33, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10748,N'SAVEA',3,'11/20/1997','12/18/1997','11/28/1997',1,232.55, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10749,N'ISLAT',4,'11/20/1997','12/18/1997','12/19/1997',2,61.53, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10750,N'WARTH',9,'11/21/1997','12/19/1997','11/24/1997',1,79.30, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10751,N'RICSU',3,'11/24/1997','12/22/1997','12/3/1997',3,130.79, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10752,N'NORTS',2,'11/24/1997','12/22/1997','11/28/1997',3,1.39, + N'North/South',N'South House 300 Queensbridge',N'London', + NULL,N'SW7 1RZ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10753,N'FRANS',3,'11/25/1997','12/23/1997','11/27/1997',1,7.70, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10754,N'MAGAA',6,'11/25/1997','12/23/1997','11/27/1997',3,2.38, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10755,N'BONAP',4,'11/26/1997','12/24/1997','11/28/1997',2,16.71, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10756,N'SPLIR',8,'11/27/1997','12/25/1997','12/2/1997',2,73.21, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10757,N'SAVEA',6,'11/27/1997','12/25/1997','12/15/1997',1,8.19, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10758,N'RICSU',3,'11/28/1997','12/26/1997','12/4/1997',3,138.17, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10759,N'ANATR',3,'11/28/1997','12/26/1997','12/12/1997',3,11.99, + N'Ana Trujillo Emparedados y helados',N'Avda. de la Constitución 2222',N'México D.F.', + NULL,N'05021',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10760,N'MAISD',4,'12/1/1997','12/29/1997','12/10/1997',1,155.64, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10761,N'RATTC',5,'12/2/1997','12/30/1997','12/8/1997',2,18.66, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10762,N'FOLKO',3,'12/2/1997','12/30/1997','12/9/1997',1,328.74, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10763,N'FOLIG',3,'12/3/1997','12/31/1997','12/8/1997',3,37.35, + N'Folies gourmandes',N'184, chaussée de Tournai',N'Lille', + NULL,N'59000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10764,N'ERNSH',6,'12/3/1997','12/31/1997','12/8/1997',3,145.45, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10765,N'QUICK',3,'12/4/1997','1/1/1998','12/9/1997',3,42.74, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10766,N'OTTIK',4,'12/5/1997','1/2/1998','12/9/1997',1,157.55, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10767,N'SUPRD',4,'12/5/1997','1/2/1998','12/15/1997',3,1.59, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10768,N'AROUT',3,'12/8/1997','1/5/1998','12/15/1997',2,146.32, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10769,N'VAFFE',3,'12/8/1997','1/5/1998','12/12/1997',1,65.06, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10770,N'HANAR',8,'12/9/1997','1/6/1998','12/17/1997',3,5.32, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10771,N'ERNSH',9,'12/10/1997','1/7/1998','1/2/1998',2,11.19, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10772,N'LEHMS',3,'12/10/1997','1/7/1998','12/19/1997',2,91.28, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10773,N'ERNSH',1,'12/11/1997','1/8/1998','12/16/1997',3,96.43, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10774,N'FOLKO',4,'12/11/1997','12/25/1997','12/12/1997',1,48.20, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10775,N'THECR',7,'12/12/1997','1/9/1998','12/26/1997',1,20.25, + N'The Cracker Box',N'55 Grizzly Peak Rd.',N'Butte', + N'MT',N'59801',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10776,N'ERNSH',1,'12/15/1997','1/12/1998','12/18/1997',3,351.53, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10777,N'GOURL',7,'12/15/1997','12/29/1997','1/21/1998',2,3.01, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10778,N'BERGS',3,'12/16/1997','1/13/1998','12/24/1997',1,6.79, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10779,N'MORGK',3,'12/16/1997','1/13/1998','1/14/1998',2,58.13, + N'Morgenstern Gesundkost',N'Heerstr. 22',N'Leipzig', + NULL,N'04179',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10780,N'LILAS',2,'12/16/1997','12/30/1997','12/25/1997',1,42.13, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10781,N'WARTH',2,'12/17/1997','1/14/1998','12/19/1997',3,73.16, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10782,N'CACTU',9,'12/17/1997','1/14/1998','12/22/1997',3,1.10, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10783,N'HANAR',4,'12/18/1997','1/15/1998','12/19/1997',2,124.98, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10784,N'MAGAA',4,'12/18/1997','1/15/1998','12/22/1997',3,70.09, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10785,N'GROSR',1,'12/18/1997','1/15/1998','12/24/1997',3,1.51, + N'GROSELLA-Restaurante',N'5ª Ave. Los Palos Grandes',N'Caracas', + N'DF',N'1081',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10786,N'QUEEN',8,'12/19/1997','1/16/1998','12/23/1997',1,110.87, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10787,N'LAMAI',2,'12/19/1997','1/2/1998','12/26/1997',1,249.93, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10788,N'QUICK',1,'12/22/1997','1/19/1998','1/19/1998',2,42.70, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10789,N'FOLIG',1,'12/22/1997','1/19/1998','12/31/1997',2,100.60, + N'Folies gourmandes',N'184, chaussée de Tournai',N'Lille', + NULL,N'59000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10790,N'GOURL',6,'12/22/1997','1/19/1998','12/26/1997',1,28.23, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10791,N'FRANK',6,'12/23/1997','1/20/1998','1/1/1998',2,16.85, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10792,N'WOLZA',1,'12/23/1997','1/20/1998','12/31/1997',3,23.79, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10793,N'AROUT',3,'12/24/1997','1/21/1998','1/8/1998',3,4.52, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10794,N'QUEDE',6,'12/24/1997','1/21/1998','1/2/1998',1,21.49, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10795,N'ERNSH',8,'12/24/1997','1/21/1998','1/20/1998',2,126.66, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10796,N'HILAA',3,'12/25/1997','1/22/1998','1/14/1998',1,26.52, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10797,N'DRACD',7,'12/25/1997','1/22/1998','1/5/1998',2,33.35, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10798,N'ISLAT',2,'12/26/1997','1/23/1998','1/5/1998',1,2.33, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10799,N'KOENE',9,'12/26/1997','2/6/1998','1/5/1998',3,30.76, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10800,N'SEVES',1,'12/26/1997','1/23/1998','1/5/1998',3,137.44, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10801,N'BOLID',4,'12/29/1997','1/26/1998','12/31/1997',2,97.09, + N'Bólido Comidas preparadas',N'C/ Araquil, 67',N'Madrid', + NULL,N'28023',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10802,N'SIMOB',4,'12/29/1997','1/26/1998','1/2/1998',2,257.26, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10803,N'WELLI',4,'12/30/1997','1/27/1998','1/6/1998',1,55.23, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10804,N'SEVES',6,'12/30/1997','1/27/1998','1/7/1998',2,27.33, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10805,N'THEBI',2,'12/30/1997','1/27/1998','1/9/1998',3,237.34, + N'The Big Cheese',N'89 Jefferson Way Suite 2',N'Portland', + N'OR',N'97201',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10806,N'VICTE',3,'12/31/1997','1/28/1998','1/5/1998',2,22.11, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10807,N'FRANS',4,'12/31/1997','1/28/1998','1/30/1998',1,1.36, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10808,N'OLDWO',2,'1/1/1998','1/29/1998','1/9/1998',3,45.53, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10809,N'WELLI',7,'1/1/1998','1/29/1998','1/7/1998',1,4.87, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10810,N'LAUGB',2,'1/1/1998','1/29/1998','1/7/1998',3,4.33, + N'Laughing Bacchus Wine Cellars',N'2319 Elm St.',N'Vancouver', + N'BC',N'V3F 2K1',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10811,N'LINOD',8,'1/2/1998','1/30/1998','1/8/1998',1,31.22, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10812,N'REGGC',5,'1/2/1998','1/30/1998','1/12/1998',1,59.78, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10813,N'RICAR',1,'1/5/1998','2/2/1998','1/9/1998',1,47.38, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10814,N'VICTE',3,'1/5/1998','2/2/1998','1/14/1998',3,130.94, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10815,N'SAVEA',2,'1/5/1998','2/2/1998','1/14/1998',3,14.62, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10816,N'GREAL',4,'1/6/1998','2/3/1998','2/4/1998',2,719.78, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10817,N'KOENE',3,'1/6/1998','1/20/1998','1/13/1998',2,306.07, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10818,N'MAGAA',7,'1/7/1998','2/4/1998','1/12/1998',3,65.48, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10819,N'CACTU',2,'1/7/1998','2/4/1998','1/16/1998',3,19.76, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10820,N'RATTC',3,'1/7/1998','2/4/1998','1/13/1998',2,37.52, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10821,N'SPLIR',1,'1/8/1998','2/5/1998','1/15/1998',1,36.68, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10822,N'TRAIH',6,'1/8/1998','2/5/1998','1/16/1998',3,7.00, + N'Trail''s Head Gourmet Provisioners',N'722 DaVinci Blvd.',N'Kirkland', + N'WA',N'98034',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10823,N'LILAS',5,'1/9/1998','2/6/1998','1/13/1998',2,163.97, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10824,N'FOLKO',8,'1/9/1998','2/6/1998','1/30/1998',1,1.23, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10825,N'DRACD',1,'1/9/1998','2/6/1998','1/14/1998',1,79.25, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10826,N'BLONP',6,'1/12/1998','2/9/1998','2/6/1998',1,7.09, + N'Blondel père et fils',N'24, place Kléber',N'Strasbourg', + NULL,N'67000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10827,N'BONAP',1,'1/12/1998','1/26/1998','2/6/1998',2,63.54, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10828,N'RANCH',9,'1/13/1998','1/27/1998','2/4/1998',1,90.85, + N'Rancho grande',N'Av. del Libertador 900',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10829,N'ISLAT',9,'1/13/1998','2/10/1998','1/23/1998',1,154.72, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10830,N'TRADH',4,'1/13/1998','2/24/1998','1/21/1998',2,81.83, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10831,N'SANTG',3,'1/14/1998','2/11/1998','1/23/1998',2,72.19, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10832,N'LAMAI',2,'1/14/1998','2/11/1998','1/19/1998',2,43.26, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10833,N'OTTIK',6,'1/15/1998','2/12/1998','1/23/1998',2,71.49, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10834,N'TRADH',1,'1/15/1998','2/12/1998','1/19/1998',3,29.78, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10835,N'ALFKI',1,'1/15/1998','2/12/1998','1/21/1998',3,69.53, + N'Alfred''s Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10836,N'ERNSH',7,'1/16/1998','2/13/1998','1/21/1998',1,411.88, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10837,N'BERGS',9,'1/16/1998','2/13/1998','1/23/1998',3,13.32, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10838,N'LINOD',3,'1/19/1998','2/16/1998','1/23/1998',3,59.28, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10839,N'TRADH',3,'1/19/1998','2/16/1998','1/22/1998',3,35.43, + N'Tradiçao Hipermercados',N'Av. Inês de Castro, 414',N'Sao Paulo', + N'SP',N'05634-030',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10840,N'LINOD',4,'1/19/1998','3/2/1998','2/16/1998',2,2.71, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10841,N'SUPRD',5,'1/20/1998','2/17/1998','1/29/1998',2,424.30, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10842,N'TORTU',1,'1/20/1998','2/17/1998','1/29/1998',3,54.42, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10843,N'VICTE',4,'1/21/1998','2/18/1998','1/26/1998',2,9.26, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10844,N'PICCO',8,'1/21/1998','2/18/1998','1/26/1998',2,25.22, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10845,N'QUICK',8,'1/21/1998','2/4/1998','1/30/1998',1,212.98, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10846,N'SUPRD',2,'1/22/1998','3/5/1998','1/23/1998',3,56.46, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10847,N'SAVEA',4,'1/22/1998','2/5/1998','2/10/1998',3,487.57, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10848,N'CONSH',7,'1/23/1998','2/20/1998','1/29/1998',2,38.24, + N'Consolidated Holdings',N'Berkeley Gardens 12 Brewery',N'London', + NULL,N'WX1 6LT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10849,N'KOENE',9,'1/23/1998','2/20/1998','1/30/1998',2,0.56, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10850,N'VICTE',1,'1/23/1998','3/6/1998','1/30/1998',1,49.19, + N'Victuailles en stock',N'2, rue du Commerce',N'Lyon', + NULL,N'69004',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10851,N'RICAR',5,'1/26/1998','2/23/1998','2/2/1998',1,160.55, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10852,N'RATTC',8,'1/26/1998','2/9/1998','1/30/1998',1,174.05, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10853,N'BLAUS',9,'1/27/1998','2/24/1998','2/3/1998',2,53.83, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10854,N'ERNSH',3,'1/27/1998','2/24/1998','2/5/1998',2,100.22, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10855,N'OLDWO',3,'1/27/1998','2/24/1998','2/4/1998',1,170.97, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10856,N'ANTON',3,'1/28/1998','2/25/1998','2/10/1998',2,58.43, + N'Antonio Moreno Taquería',N'Mataderos 2312',N'México D.F.', + NULL,N'05023',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10857,N'BERGS',8,'1/28/1998','2/25/1998','2/6/1998',2,188.85, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10858,N'LACOR',2,'1/29/1998','2/26/1998','2/3/1998',1,52.51, + N'La corne d''abondance',N'67, avenue de l''Europe',N'Versailles', + NULL,N'78000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10859,N'FRANK',1,'1/29/1998','2/26/1998','2/2/1998',2,76.10, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10860,N'FRANR',3,'1/29/1998','2/26/1998','2/4/1998',3,19.26, + N'France restauration',N'54, rue Royale',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10861,N'WHITC',4,'1/30/1998','2/27/1998','2/17/1998',2,14.93, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10862,N'LEHMS',8,'1/30/1998','3/13/1998','2/2/1998',2,53.23, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10863,N'HILAA',4,'2/2/1998','3/2/1998','2/17/1998',2,30.26, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10864,N'AROUT',4,'2/2/1998','3/2/1998','2/9/1998',2,3.04, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10865,N'QUICK',2,'2/2/1998','2/16/1998','2/12/1998',1,348.14, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10866,N'BERGS',5,'2/3/1998','3/3/1998','2/12/1998',1,109.11, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10867,N'LONEP',6,'2/3/1998','3/17/1998','2/11/1998',1,1.93, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10868,N'QUEEN',7,'2/4/1998','3/4/1998','2/23/1998',2,191.27, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10869,N'SEVES',5,'2/4/1998','3/4/1998','2/9/1998',1,143.28, + N'Seven Seas Imports',N'90 Wadhurst Rd.',N'London', + NULL,N'OX15 4NB',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10870,N'WOLZA',5,'2/4/1998','3/4/1998','2/13/1998',3,12.04, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10871,N'BONAP',9,'2/5/1998','3/5/1998','2/10/1998',2,112.27, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10872,N'GODOS',5,'2/5/1998','3/5/1998','2/9/1998',2,175.32, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10873,N'WILMK',4,'2/6/1998','3/6/1998','2/9/1998',1,0.82, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10874,N'GODOS',5,'2/6/1998','3/6/1998','2/11/1998',2,19.58, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10875,N'BERGS',4,'2/6/1998','3/6/1998','3/3/1998',2,32.37, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10876,N'BONAP',7,'2/9/1998','3/9/1998','2/12/1998',3,60.42, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10877,N'RICAR',1,'2/9/1998','3/9/1998','2/19/1998',1,38.06, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10878,N'QUICK',4,'2/10/1998','3/10/1998','2/12/1998',1,46.69, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10879,N'WILMK',3,'2/10/1998','3/10/1998','2/12/1998',3,8.50, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10880,N'FOLKO',7,'2/10/1998','3/24/1998','2/18/1998',1,88.01, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10881,N'CACTU',4,'2/11/1998','3/11/1998','2/18/1998',1,2.84, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10882,N'SAVEA',4,'2/11/1998','3/11/1998','2/20/1998',3,23.10, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10883,N'LONEP',8,'2/12/1998','3/12/1998','2/20/1998',3,0.53, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10884,N'LETSS',4,'2/12/1998','3/12/1998','2/13/1998',2,90.97, + N'Let''s Stop N Shop',N'87 Polk St. Suite 5',N'San Francisco', + N'CA',N'94117',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10885,N'SUPRD',6,'2/12/1998','3/12/1998','2/18/1998',3,5.64, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10886,N'HANAR',1,'2/13/1998','3/13/1998','3/2/1998',1,4.99, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10887,N'GALED',8,'2/13/1998','3/13/1998','2/16/1998',3,1.25, + N'Galería del gastronómo',N'Rambla de Cataluña, 23',N'Barcelona', + NULL,N'8022',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10888,N'GODOS',1,'2/16/1998','3/16/1998','2/23/1998',2,51.87, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10889,N'RATTC',9,'2/16/1998','3/16/1998','2/23/1998',3,280.61, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10890,N'DUMON',7,'2/16/1998','3/16/1998','2/18/1998',1,32.76, + N'Du monde entier',N'67, rue des Cinquante Otages',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10891,N'LEHMS',7,'2/17/1998','3/17/1998','2/19/1998',2,20.37, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10892,N'MAISD',4,'2/17/1998','3/17/1998','2/19/1998',2,120.27, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10893,N'KOENE',9,'2/18/1998','3/18/1998','2/20/1998',2,77.78, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10894,N'SAVEA',1,'2/18/1998','3/18/1998','2/20/1998',1,116.13, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10895,N'ERNSH',3,'2/18/1998','3/18/1998','2/23/1998',1,162.75, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10896,N'MAISD',7,'2/19/1998','3/19/1998','2/27/1998',3,32.45, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10897,N'HUNGO',3,'2/19/1998','3/19/1998','2/25/1998',2,603.54, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10898,N'OCEAN',4,'2/20/1998','3/20/1998','3/6/1998',2,1.27, + N'Océano Atlántico Ltda.',N'Ing. Gustavo Moncada 8585 Piso 20-A',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10899,N'LILAS',5,'2/20/1998','3/20/1998','2/26/1998',3,1.21, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10900,N'WELLI',1,'2/20/1998','3/20/1998','3/4/1998',2,1.66, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10901,N'HILAA',4,'2/23/1998','3/23/1998','2/26/1998',1,62.09, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10902,N'FOLKO',1,'2/23/1998','3/23/1998','3/3/1998',1,44.15, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10903,N'HANAR',3,'2/24/1998','3/24/1998','3/4/1998',3,36.71, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10904,N'WHITC',3,'2/24/1998','3/24/1998','2/27/1998',3,162.95, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10905,N'WELLI',9,'2/24/1998','3/24/1998','3/6/1998',2,13.72, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10906,N'WOLZA',4,'2/25/1998','3/11/1998','3/3/1998',3,26.29, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10907,N'SPECD',6,'2/25/1998','3/25/1998','2/27/1998',3,9.19, + N'Spécialités du monde',N'25, rue Lauriston',N'Paris', + NULL,N'75016',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10908,N'REGGC',4,'2/26/1998','3/26/1998','3/6/1998',2,32.96, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10909,N'SANTG',1,'2/26/1998','3/26/1998','3/10/1998',2,53.05, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10910,N'WILMK',1,'2/26/1998','3/26/1998','3/4/1998',3,38.11, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10911,N'GODOS',3,'2/26/1998','3/26/1998','3/5/1998',1,38.19, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10912,N'HUNGO',2,'2/26/1998','3/26/1998','3/18/1998',2,580.91, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10913,N'QUEEN',4,'2/26/1998','3/26/1998','3/4/1998',1,33.05, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10914,N'QUEEN',6,'2/27/1998','3/27/1998','3/2/1998',1,21.19, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10915,N'TORTU',2,'2/27/1998','3/27/1998','3/2/1998',2,3.51, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10916,N'RANCH',1,'2/27/1998','3/27/1998','3/9/1998',2,63.77, + N'Rancho grande',N'Av. del Libertador 900',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10917,N'ROMEY',4,'3/2/1998','3/30/1998','3/11/1998',2,8.29, + N'Romero y tomillo',N'Gran Vía, 1',N'Madrid', + NULL,N'28001',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10918,N'BOTTM',3,'3/2/1998','3/30/1998','3/11/1998',3,48.83, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10919,N'LINOD',2,'3/2/1998','3/30/1998','3/4/1998',2,19.80, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10920,N'AROUT',4,'3/3/1998','3/31/1998','3/9/1998',2,29.61, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10921,N'VAFFE',1,'3/3/1998','4/14/1998','3/9/1998',1,176.48, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10922,N'HANAR',5,'3/3/1998','3/31/1998','3/5/1998',3,62.74, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10923,N'LAMAI',7,'3/3/1998','4/14/1998','3/13/1998',3,68.26, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10924,N'BERGS',3,'3/4/1998','4/1/1998','4/8/1998',2,151.52, + N'Berglunds snabbköp',N'Berguvsvägen 8',N'Luleå', + NULL,N'S-958 22',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10925,N'HANAR',3,'3/4/1998','4/1/1998','3/13/1998',1,2.27, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10926,N'ANATR',4,'3/4/1998','4/1/1998','3/11/1998',3,39.92, + N'Ana Trujillo Emparedados y helados',N'Avda. de la Constitución 2222',N'México D.F.', + NULL,N'05021',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10927,N'LACOR',4,'3/5/1998','4/2/1998','4/8/1998',1,19.79, + N'La corne d''abondance',N'67, avenue de l''Europe',N'Versailles', + NULL,N'78000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10928,N'GALED',1,'3/5/1998','4/2/1998','3/18/1998',1,1.36, + N'Galería del gastronómo',N'Rambla de Cataluña, 23',N'Barcelona', + NULL,N'8022',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10929,N'FRANK',6,'3/5/1998','4/2/1998','3/12/1998',1,33.93, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10930,N'SUPRD',4,'3/6/1998','4/17/1998','3/18/1998',3,15.55, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10931,N'RICSU',4,'3/6/1998','3/20/1998','3/19/1998',2,13.60, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10932,N'BONAP',8,'3/6/1998','4/3/1998','3/24/1998',1,134.64, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10933,N'ISLAT',6,'3/6/1998','4/3/1998','3/16/1998',3,54.15, + N'Island Trading',N'Garden House Crowther Way',N'Cowes', + N'Isle of Wight',N'PO31 7PJ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10934,N'LEHMS',3,'3/9/1998','4/6/1998','3/12/1998',3,32.01, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10935,N'WELLI',4,'3/9/1998','4/6/1998','3/18/1998',3,47.59, + N'Wellington Importadora',N'Rua do Mercado, 12',N'Resende', + N'SP',N'08737-363',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10936,N'GREAL',3,'3/9/1998','4/6/1998','3/18/1998',2,33.68, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10937,N'CACTU',7,'3/10/1998','3/24/1998','3/13/1998',3,31.51, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10938,N'QUICK',3,'3/10/1998','4/7/1998','3/16/1998',2,31.89, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10939,N'MAGAA',2,'3/10/1998','4/7/1998','3/13/1998',2,76.33, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10940,N'BONAP',8,'3/11/1998','4/8/1998','3/23/1998',3,19.77, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10941,N'SAVEA',7,'3/11/1998','4/8/1998','3/20/1998',2,400.81, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10942,N'REGGC',9,'3/11/1998','4/8/1998','3/18/1998',3,17.95, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10943,N'BSBEV',4,'3/11/1998','4/8/1998','3/19/1998',2,2.17, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10944,N'BOTTM',6,'3/12/1998','3/26/1998','3/13/1998',3,52.92, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10945,N'MORGK',4,'3/12/1998','4/9/1998','3/18/1998',1,10.22, + N'Morgenstern Gesundkost',N'Heerstr. 22',N'Leipzig', + NULL,N'04179',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10946,N'VAFFE',1,'3/12/1998','4/9/1998','3/19/1998',2,27.20, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10947,N'BSBEV',3,'3/13/1998','4/10/1998','3/16/1998',2,3.26, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10948,N'GODOS',3,'3/13/1998','4/10/1998','3/19/1998',3,23.39, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10949,N'BOTTM',2,'3/13/1998','4/10/1998','3/17/1998',3,74.44, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10950,N'MAGAA',1,'3/16/1998','4/13/1998','3/23/1998',2,2.50, + N'Magazzini Alimentari Riuniti',N'Via Ludovico il Moro 22',N'Bergamo', + NULL,N'24100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10951,N'RICSU',9,'3/16/1998','4/27/1998','4/7/1998',2,30.85, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10952,N'ALFKI',1,'3/16/1998','4/27/1998','3/24/1998',1,40.42, + N'Alfred''s Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10953,N'AROUT',9,'3/16/1998','3/30/1998','3/25/1998',2,23.72, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10954,N'LINOD',5,'3/17/1998','4/28/1998','3/20/1998',1,27.91, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10955,N'FOLKO',8,'3/17/1998','4/14/1998','3/20/1998',2,3.26, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10956,N'BLAUS',6,'3/17/1998','4/28/1998','3/20/1998',2,44.65, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10957,N'HILAA',8,'3/18/1998','4/15/1998','3/27/1998',3,105.36, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10958,N'OCEAN',7,'3/18/1998','4/15/1998','3/27/1998',2,49.56, + N'Océano Atlántico Ltda.',N'Ing. Gustavo Moncada 8585 Piso 20-A',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10959,N'GOURL',6,'3/18/1998','4/29/1998','3/23/1998',2,4.98, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10960,N'HILAA',3,'3/19/1998','4/2/1998','4/8/1998',1,2.08, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10961,N'QUEEN',8,'3/19/1998','4/16/1998','3/30/1998',1,104.47, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10962,N'QUICK',8,'3/19/1998','4/16/1998','3/23/1998',2,275.79, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10963,N'FURIB',9,'3/19/1998','4/16/1998','3/26/1998',3,2.70, + N'Furia Bacalhau e Frutos do Mar',N'Jardim das rosas n. 32',N'Lisboa', + NULL,N'1675',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10964,N'SPECD',3,'3/20/1998','4/17/1998','3/24/1998',2,87.38, + N'Spécialités du monde',N'25, rue Lauriston',N'Paris', + NULL,N'75016',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10965,N'OLDWO',6,'3/20/1998','4/17/1998','3/30/1998',3,144.38, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10966,N'CHOPS',4,'3/20/1998','4/17/1998','4/8/1998',1,27.19, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10967,N'TOMSP',2,'3/23/1998','4/20/1998','4/2/1998',2,62.22, + N'Toms Spezialitäten',N'Luisenstr. 48',N'Münster', + NULL,N'44087',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10968,N'ERNSH',1,'3/23/1998','4/20/1998','4/1/1998',3,74.60, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10969,N'COMMI',1,'3/23/1998','4/20/1998','3/30/1998',2,0.21, + N'Comércio Mineiro',N'Av. dos Lusíadas, 23',N'Sao Paulo', + N'SP',N'05432-043',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10970,N'BOLID',9,'3/24/1998','4/7/1998','4/24/1998',1,16.16, + N'Bólido Comidas preparadas',N'C/ Araquil, 67',N'Madrid', + NULL,N'28023',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10971,N'FRANR',2,'3/24/1998','4/21/1998','4/2/1998',2,121.82, + N'France restauration',N'54, rue Royale',N'Nantes', + NULL,N'44000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10972,N'LACOR',4,'3/24/1998','4/21/1998','3/26/1998',2,0.02, + N'La corne d''abondance',N'67, avenue de l''Europe',N'Versailles', + NULL,N'78000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10973,N'LACOR',6,'3/24/1998','4/21/1998','3/27/1998',2,15.17, + N'La corne d''abondance',N'67, avenue de l''Europe',N'Versailles', + NULL,N'78000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10974,N'SPLIR',3,'3/25/1998','4/8/1998','4/3/1998',3,12.96, + N'Split Rail Beer & Ale',N'P.O. Box 555',N'Lander', + N'WY',N'82520',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10975,N'BOTTM',1,'3/25/1998','4/22/1998','3/27/1998',3,32.27, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10976,N'HILAA',1,'3/25/1998','5/6/1998','4/3/1998',1,37.97, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10977,N'FOLKO',8,'3/26/1998','4/23/1998','4/10/1998',3,208.50, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10978,N'MAISD',9,'3/26/1998','4/23/1998','4/23/1998',2,32.82, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10979,N'ERNSH',8,'3/26/1998','4/23/1998','3/31/1998',2,353.07, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10980,N'FOLKO',4,'3/27/1998','5/8/1998','4/17/1998',1,1.26, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10981,N'HANAR',1,'3/27/1998','4/24/1998','4/2/1998',2,193.37, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10982,N'BOTTM',2,'3/27/1998','4/24/1998','4/8/1998',1,14.01, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10983,N'SAVEA',2,'3/27/1998','4/24/1998','4/6/1998',2,657.54, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10984,N'SAVEA',1,'3/30/1998','4/27/1998','4/3/1998',3,211.22, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10985,N'HUNGO',2,'3/30/1998','4/27/1998','4/2/1998',1,91.51, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10986,N'OCEAN',8,'3/30/1998','4/27/1998','4/21/1998',2,217.86, + N'Océano Atlántico Ltda.',N'Ing. Gustavo Moncada 8585 Piso 20-A',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10987,N'EASTC',8,'3/31/1998','4/28/1998','4/6/1998',1,185.48, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10988,N'RATTC',3,'3/31/1998','4/28/1998','4/10/1998',2,61.14, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10989,N'QUEDE',2,'3/31/1998','4/28/1998','4/2/1998',1,34.76, + N'Que Delícia',N'Rua da Panificadora, 12',N'Rio de Janeiro', + N'RJ',N'02389-673',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10990,N'ERNSH',2,'4/1/1998','5/13/1998','4/7/1998',3,117.61, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10991,N'QUICK',1,'4/1/1998','4/29/1998','4/7/1998',1,38.51, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10992,N'THEBI',1,'4/1/1998','4/29/1998','4/3/1998',3,4.27, + N'The Big Cheese',N'89 Jefferson Way Suite 2',N'Portland', + N'OR',N'97201',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10993,N'FOLKO',7,'4/1/1998','4/29/1998','4/10/1998',3,8.81, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10994,N'VAFFE',2,'4/2/1998','4/16/1998','4/9/1998',3,65.53, + N'Vaffeljernet',N'Smagsloget 45',N'Århus', + NULL,N'8200',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10995,N'PERIC',1,'4/2/1998','4/30/1998','4/6/1998',3,46.00, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10996,N'QUICK',4,'4/2/1998','4/30/1998','4/10/1998',2,1.12, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10997,N'LILAS',8,'4/3/1998','5/15/1998','4/13/1998',2,73.91, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10998,N'WOLZA',8,'4/3/1998','4/17/1998','4/17/1998',2,20.31, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (10999,N'OTTIK',6,'4/3/1998','5/1/1998','4/10/1998',2,96.35, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11000,N'RATTC',2,'4/6/1998','5/4/1998','4/14/1998',3,55.12, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11001,N'FOLKO',2,'4/6/1998','5/4/1998','4/14/1998',2,197.30, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11002,N'SAVEA',4,'4/6/1998','5/4/1998','4/16/1998',1,141.16, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11003,N'THECR',3,'4/6/1998','5/4/1998','4/8/1998',3,14.91, + N'The Cracker Box',N'55 Grizzly Peak Rd.',N'Butte', + N'MT',N'59801',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11004,N'MAISD',3,'4/7/1998','5/5/1998','4/20/1998',1,44.84, + N'Maison Dewey',N'Rue Joseph-Bens 532',N'Bruxelles', + NULL,N'B-1180',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11005,N'WILMK',2,'4/7/1998','5/5/1998','4/10/1998',1,0.75, + N'Wilman Kala',N'Keskuskatu 45',N'Helsinki', + NULL,N'21240',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11006,N'GREAL',3,'4/7/1998','5/5/1998','4/15/1998',2,25.19, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11007,N'PRINI',8,'4/8/1998','5/6/1998','4/13/1998',2,202.24, + N'Princesa Isabel Vinhos',N'Estrada da saúde n. 58',N'Lisboa', + NULL,N'1756',N'Portugal') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11008,N'ERNSH',7,'4/8/1998','5/6/1998',NULL,3,79.46, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11009,N'GODOS',2,'4/8/1998','5/6/1998','4/10/1998',1,59.11, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11010,N'REGGC',2,'4/9/1998','5/7/1998','4/21/1998',2,28.71, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11011,N'ALFKI',3,'4/9/1998','5/7/1998','4/13/1998',1,1.21, + N'Alfred''s Futterkiste',N'Obere Str. 57',N'Berlin', + NULL,N'12209',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11012,N'FRANK',1,'4/9/1998','4/23/1998','4/17/1998',3,242.95, + N'Frankenversand',N'Berliner Platz 43',N'München', + NULL,N'80805',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11013,N'ROMEY',2,'4/9/1998','5/7/1998','4/10/1998',1,32.99, + N'Romero y tomillo',N'Gran Vía, 1',N'Madrid', + NULL,N'28001',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11014,N'LINOD',2,'4/10/1998','5/8/1998','4/15/1998',3,23.60, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11015,N'SANTG',2,'4/10/1998','4/24/1998','4/20/1998',2,4.62, + N'Santé Gourmet',N'Erling Skakkes gate 78',N'Stavern', + NULL,N'4110',N'Norway') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11016,N'AROUT',9,'4/10/1998','5/8/1998','4/13/1998',2,33.80, + N'Around the Horn',N'Brook Farm Stratford St. Mary',N'Colchester', + N'Essex',N'CO7 6JX',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11017,N'ERNSH',9,'4/13/1998','5/11/1998','4/20/1998',2,754.26, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11018,N'LONEP',4,'4/13/1998','5/11/1998','4/16/1998',2,11.65, + N'Lonesome Pine Restaurant',N'89 Chiaroscuro Rd.',N'Portland', + N'OR',N'97219',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11019,N'RANCH',6,'4/13/1998','5/11/1998',NULL,3,3.17, + N'Rancho grande',N'Av. del Libertador 900',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11020,N'OTTIK',2,'4/14/1998','5/12/1998','4/16/1998',2,43.30, + N'Ottilies Käseladen',N'Mehrheimerstr. 369',N'Köln', + NULL,N'50739',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11021,N'QUICK',3,'4/14/1998','5/12/1998','4/21/1998',1,297.18, + N'QUICK-Stop',N'Taucherstraße 10',N'Cunewalde', + NULL,N'01307',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11022,N'HANAR',9,'4/14/1998','5/12/1998','5/4/1998',2,6.27, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11023,N'BSBEV',1,'4/14/1998','4/28/1998','4/24/1998',2,123.83, + N'B''s Beverages',N'Fauntleroy Circus',N'London', + NULL,N'EC2 5NT',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11024,N'EASTC',4,'4/15/1998','5/13/1998','4/20/1998',1,74.36, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11025,N'WARTH',6,'4/15/1998','5/13/1998','4/24/1998',3,29.17, + N'Wartian Herkku',N'Torikatu 38',N'Oulu', + NULL,N'90110',N'Finland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11026,N'FRANS',4,'4/15/1998','5/13/1998','4/28/1998',1,47.09, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11027,N'BOTTM',1,'4/16/1998','5/14/1998','4/20/1998',1,52.52, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11028,N'KOENE',2,'4/16/1998','5/14/1998','4/22/1998',1,29.59, + N'Königlich Essen',N'Maubelstr. 90',N'Brandenburg', + NULL,N'14776',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11029,N'CHOPS',4,'4/16/1998','5/14/1998','4/27/1998',1,47.84, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11030,N'SAVEA',7,'4/17/1998','5/15/1998','4/27/1998',2,830.75, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11031,N'SAVEA',6,'4/17/1998','5/15/1998','4/24/1998',2,227.22, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11032,N'WHITC',2,'4/17/1998','5/15/1998','4/23/1998',3,606.19, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11033,N'RICSU',7,'4/17/1998','5/15/1998','4/23/1998',3,84.74, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11034,N'OLDWO',8,'4/20/1998','6/1/1998','4/27/1998',1,40.32, + N'Old World Delicatessen',N'2743 Bering St.',N'Anchorage', + N'AK',N'99508',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11035,N'SUPRD',2,'4/20/1998','5/18/1998','4/24/1998',2,0.17, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11036,N'DRACD',8,'4/20/1998','5/18/1998','4/22/1998',3,149.47, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11037,N'GODOS',7,'4/21/1998','5/19/1998','4/27/1998',1,3.20, + N'Godos Cocina Típica',N'C/ Romero, 33',N'Sevilla', + NULL,N'41101',N'Spain') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11038,N'SUPRD',1,'4/21/1998','5/19/1998','4/30/1998',2,29.59, + N'Suprêmes délices',N'Boulevard Tirou, 255',N'Charleroi', + NULL,N'B-6000',N'Belgium') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11039,N'LINOD',1,'4/21/1998','5/19/1998',NULL,2,65.00, + N'LINO-Delicateses',N'Ave. 5 de Mayo Porlamar',N'I. de Margarita', + N'Nueva Esparta',N'4980',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11040,N'GREAL',4,'4/22/1998','5/20/1998',NULL,3,18.84, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11041,N'CHOPS',3,'4/22/1998','5/20/1998','4/28/1998',2,48.22, + N'Chop-suey Chinese',N'Hauptstr. 31',N'Bern', + NULL,N'3012',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11042,N'COMMI',2,'4/22/1998','5/6/1998','5/1/1998',1,29.99, + N'Comércio Mineiro',N'Av. dos Lusíadas, 23',N'Sao Paulo', + N'SP',N'05432-043',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11043,N'SPECD',5,'4/22/1998','5/20/1998','4/29/1998',2,8.80, + N'Spécialités du monde',N'25, rue Lauriston',N'Paris', + NULL,N'75016',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11044,N'WOLZA',4,'4/23/1998','5/21/1998','5/1/1998',1,8.72, + N'Wolski Zajazd',N'ul. Filtrowa 68',N'Warszawa', + NULL,N'01-012',N'Poland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11045,N'BOTTM',6,'4/23/1998','5/21/1998',NULL,2,70.58, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11046,N'WANDK',8,'4/23/1998','5/21/1998','4/24/1998',2,71.64, + N'Die Wandernde Kuh',N'Adenauerallee 900',N'Stuttgart', + NULL,N'70563',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11047,N'EASTC',7,'4/24/1998','5/22/1998','5/1/1998',3,46.62, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11048,N'BOTTM',7,'4/24/1998','5/22/1998','4/30/1998',3,24.12, + N'Bottom-Dollar Markets',N'23 Tsawassen Blvd.',N'Tsawassen', + N'BC',N'T2F 8M4',N'Canada') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11049,N'GOURL',3,'4/24/1998','5/22/1998','5/4/1998',1,8.34, + N'Gourmet Lanchonetes',N'Av. Brasil, 442',N'Campinas', + N'SP',N'04876-786',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11050,N'FOLKO',8,'4/27/1998','5/25/1998','5/5/1998',2,59.41, + N'Folk och fä HB',N'Åkergatan 24',N'Bräcke', + NULL,N'S-844 67',N'Sweden') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11051,N'LAMAI',7,'4/27/1998','5/25/1998',NULL,3,2.79, + N'La maison d''Asie',N'1 rue Alsace-Lorraine',N'Toulouse', + NULL,N'31000',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11052,N'HANAR',3,'4/27/1998','5/25/1998','5/1/1998',1,67.26, + N'Hanari Carnes',N'Rua do Paço, 67',N'Rio de Janeiro', + N'RJ',N'05454-876',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11053,N'PICCO',2,'4/27/1998','5/25/1998','4/29/1998',2,53.05, + N'Piccolo und mehr',N'Geislweg 14',N'Salzburg', + NULL,N'5020',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11054,N'CACTU',8,'4/28/1998','5/26/1998',NULL,1,0.33, + N'Cactus Comidas para llevar',N'Cerrito 333',N'Buenos Aires', + NULL,N'1010',N'Argentina') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11055,N'HILAA',7,'4/28/1998','5/26/1998','5/5/1998',2,120.92, + N'HILARION-Abastos',N'Carrera 22 con Ave. Carlos Soublette #8-35',N'San Cristóbal', + N'Táchira',N'5022',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11056,N'EASTC',8,'4/28/1998','5/12/1998','5/1/1998',2,278.96, + N'Eastern Connection',N'35 King George',N'London', + NULL,N'WX3 6FW',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11057,N'NORTS',3,'4/29/1998','5/27/1998','5/1/1998',3,4.13, + N'North/South',N'South House 300 Queensbridge',N'London', + NULL,N'SW7 1RZ',N'UK') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11058,N'BLAUS',9,'4/29/1998','5/27/1998',NULL,3,31.14, + N'Blauer See Delikatessen',N'Forsterstr. 57',N'Mannheim', + NULL,N'68306',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11059,N'RICAR',2,'4/29/1998','6/10/1998',NULL,2,85.80, + N'Ricardo Adocicados',N'Av. Copacabana, 267',N'Rio de Janeiro', + N'RJ',N'02389-890',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11060,N'FRANS',2,'4/30/1998','5/28/1998','5/4/1998',2,10.98, + N'Franchi S.p.A.',N'Via Monte Bianco 34',N'Torino', + NULL,N'10100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11061,N'GREAL',4,'4/30/1998','6/11/1998',NULL,3,14.01, + N'Great Lakes Food Market',N'2732 Baker Blvd.',N'Eugene', + N'OR',N'97403',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11062,N'REGGC',4,'4/30/1998','5/28/1998',NULL,2,29.93, + N'Reggiani Caseifici',N'Strada Provinciale 124',N'Reggio Emilia', + NULL,N'42100',N'Italy') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11063,N'HUNGO',3,'4/30/1998','5/28/1998','5/6/1998',2,81.73, + N'Hungry Owl All-Night Grocers',N'8 Johnstown Road',N'Cork', + N'Co. Cork',NULL,N'Ireland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11064,N'SAVEA',1,'5/1/1998','5/29/1998','5/4/1998',1,30.09, + N'Save-a-lot Markets',N'187 Suffolk Ln.',N'Boise', + N'ID',N'83720',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11065,N'LILAS',8,'5/1/1998','5/29/1998',NULL,1,12.91, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11066,N'WHITC',7,'5/1/1998','5/29/1998','5/4/1998',2,44.72, + N'White Clover Markets',N'1029 - 12th Ave. S.',N'Seattle', + N'WA',N'98124',N'USA') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11067,N'DRACD',1,'5/4/1998','5/18/1998','5/6/1998',2,7.98, + N'Drachenblut Delikatessen',N'Walserweg 21',N'Aachen', + NULL,N'52066',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11068,N'QUEEN',8,'5/4/1998','6/1/1998',NULL,2,81.75, + N'Queen Cozinha',N'Alameda dos Canàrios, 891',N'Sao Paulo', + N'SP',N'05487-020',N'Brazil') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11069,N'TORTU',1,'5/4/1998','6/1/1998','5/6/1998',2,15.67, + N'Tortuga Restaurante',N'Avda. Azteca 123',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11070,N'LEHMS',2,'5/5/1998','6/2/1998',NULL,1,136.00, + N'Lehmanns Marktstand',N'Magazinweg 7',N'Frankfurt a.M.', + NULL,N'60528',N'Germany') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11071,N'LILAS',1,'5/5/1998','6/2/1998',NULL,1,0.93, + N'LILA-Supermercado',N'Carrera 52 con Ave. Bolívar #65-98 Llano Largo',N'Barquisimeto', + N'Lara',N'3508',N'Venezuela') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11072,N'ERNSH',4,'5/5/1998','6/2/1998',NULL,2,258.64, + N'Ernst Handel',N'Kirchgasse 6',N'Graz', + NULL,N'8010',N'Austria') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11073,N'PERIC',2,'5/5/1998','6/2/1998',NULL,2,24.95, + N'Pericles Comidas clásicas',N'Calle Dr. Jorge Cash 321',N'México D.F.', + NULL,N'05033',N'Mexico') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11074,N'SIMOB',7,'5/6/1998','6/3/1998',NULL,2,18.44, + N'Simons bistro',N'Vinbæltet 34',N'Kobenhavn', + NULL,N'1734',N'Denmark') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11075,N'RICSU',8,'5/6/1998','6/3/1998',NULL,2,6.19, + N'Richter Supermarkt',N'Starenweg 5',N'Genève', + NULL,N'1204',N'Switzerland') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11076,N'BONAP',4,'5/6/1998','6/3/1998',NULL,2,38.28, + N'Bon app''',N'12, rue des Bouchers',N'Marseille', + NULL,N'13008',N'France') +INSERT INTO "Orders" +("OrderID","CustomerID","EmployeeID","OrderDate","RequiredDate", + "ShippedDate","ShipVia","Freight","ShipName","ShipAddress", + "ShipCity","ShipRegion","ShipPostalCode","ShipCountry") +VALUES (11077,N'RATTC',1,'5/6/1998','6/3/1998',NULL,2,8.53, + N'Rattlesnake Canyon Grocery',N'2817 Milton Dr.',N'Albuquerque', + N'NM',N'87110',N'USA') +go +set identity_insert "Orders" off +go +ALTER TABLE "Orders" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +set identity_insert "Products" on +go +ALTER TABLE "Products" NOCHECK CONSTRAINT ALL +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(1,'Chai',1,1,'10 boxes x 20 bags',18,39,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(2,'Chang',1,1,'24 - 12 oz bottles',19,17,40,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(3,'Aniseed Syrup',1,2,'12 - 550 ml bottles',10,13,70,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(4,'Chef Anton''s Cajun Seasoning',2,2,'48 - 6 oz jars',22,53,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(5,'Chef Anton''s Gumbo Mix',2,2,'36 boxes',21.35,0,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(6,'Grandma''s Boysenberry Spread',3,2,'12 - 8 oz jars',25,120,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(7,'Uncle Bob''s Organic Dried Pears',3,7,'12 - 1 lb pkgs.',30,15,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(8,'Northwoods Cranberry Sauce',3,2,'12 - 12 oz jars',40,6,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(9,'Mishi Kobe Niku',4,6,'18 - 500 g pkgs.',97,29,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(10,'Ikura',4,8,'12 - 200 ml jars',31,31,0,0,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(11,'Queso Cabrales',5,4,'1 kg pkg.',21,22,30,30,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(12,'Queso Manchego La Pastora',5,4,'10 - 500 g pkgs.',38,86,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(13,'Konbu',6,8,'2 kg box',6,24,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(14,'Tofu',6,7,'40 - 100 g pkgs.',23.25,35,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(15,'Genen Shouyu',6,2,'24 - 250 ml bottles',15.5,39,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(16,'Pavlova',7,3,'32 - 500 g boxes',17.45,29,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(17,'Alice Mutton',7,6,'20 - 1 kg tins',39,0,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(18,'Carnarvon Tigers',7,8,'16 kg pkg.',62.5,42,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(19,'Teatime Chocolate Biscuits',8,3,'10 boxes x 12 pieces',9.2,25,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(20,'Sir Rodney''s Marmalade',8,3,'30 gift boxes',81,40,0,0,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(21,'Sir Rodney''s Scones',8,3,'24 pkgs. x 4 pieces',10,3,40,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(22,'Gustaf''s Knäckebröd',9,5,'24 - 500 g pkgs.',21,104,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(23,'Tunnbröd',9,5,'12 - 250 g pkgs.',9,61,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(24,'Guaraná Fantástica',10,1,'12 - 355 ml cans',4.5,20,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(25,'NuNuCa Nuß-Nougat-Creme',11,3,'20 - 450 g glasses',14,76,0,30,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(26,'Gumbär Gummibärchen',11,3,'100 - 250 g bags',31.23,15,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(27,'Schoggi Schokolade',11,3,'100 - 100 g pieces',43.9,49,0,30,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(28,'Rössle Sauerkraut',12,7,'25 - 825 g cans',45.6,26,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(29,'Thüringer Rostbratwurst',12,6,'50 bags x 30 sausgs.',123.79,0,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(30,'Nord-Ost Matjeshering',13,8,'10 - 200 g glasses',25.89,10,0,15,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(31,'Gorgonzola Telino',14,4,'12 - 100 g pkgs',12.5,0,70,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(32,'Mascarpone Fabioli',14,4,'24 - 200 g pkgs.',32,9,40,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(33,'Geitost',15,4,'500 g',2.5,112,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(34,'Sasquatch Ale',16,1,'24 - 12 oz bottles',14,111,0,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(35,'Steeleye Stout',16,1,'24 - 12 oz bottles',18,20,0,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(36,'Inlagd Sill',17,8,'24 - 250 g jars',19,112,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(37,'Gravad lax',17,8,'12 - 500 g pkgs.',26,11,50,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(38,'Côte de Blaye',18,1,'12 - 75 cl bottles',263.5,17,0,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(39,'Chartreuse verte',18,1,'750 cc per bottle',18,69,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(40,'Boston Crab Meat',19,8,'24 - 4 oz tins',18.4,123,0,30,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(41,'Jack''s New England Clam Chowder',19,8,'12 - 12 oz cans',9.65,85,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(42,'Singaporean Hokkien Fried Mee',20,5,'32 - 1 kg pkgs.',14,26,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(43,'Ipoh Coffee',20,1,'16 - 500 g tins',46,17,10,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(44,'Gula Malacca',20,2,'20 - 2 kg bags',19.45,27,0,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(45,'Rogede sild',21,8,'1k pkg.',9.5,5,70,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(46,'Spegesild',21,8,'4 - 450 g glasses',12,95,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(47,'Zaanse koeken',22,3,'10 - 4 oz boxes',9.5,36,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(48,'Chocolade',22,3,'10 pkgs.',12.75,15,70,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(49,'Maxilaku',23,3,'24 - 50 g pkgs.',20,10,60,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(50,'Valkoinen suklaa',23,3,'12 - 100 g bars',16.25,65,0,30,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(51,'Manjimup Dried Apples',24,7,'50 - 300 g pkgs.',53,20,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(52,'Filo Mix',24,5,'16 - 2 kg boxes',7,38,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(53,'Perth Pasties',24,6,'48 pieces',32.8,0,0,0,1) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(54,'Tourtière',25,6,'16 pies',7.45,21,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(55,'Pâté chinois',25,6,'24 boxes x 2 pies',24,115,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(56,'Gnocchi di nonna Alice',26,5,'24 - 250 g pkgs.',38,21,10,30,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(57,'Ravioli Angelo',26,5,'24 - 250 g pkgs.',19.5,36,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(58,'Escargots de Bourgogne',27,8,'24 pieces',13.25,62,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(59,'Raclette Courdavault',28,4,'5 kg pkg.',55,79,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(60,'Camembert Pierrot',28,4,'15 - 300 g rounds',34,19,0,0,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(61,'Sirop d''érable',29,2,'24 - 500 ml bottles',28.5,113,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(62,'Tarte au sucre',29,3,'48 pies',49.3,17,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(63,'Vegie-spread',7,2,'15 - 625 g jars',43.9,24,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(64,'Wimmers gute Semmelknödel',12,5,'20 bags x 4 pieces',33.25,22,80,30,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(65,'Louisiana Fiery Hot Pepper Sauce',2,2,'32 - 8 oz bottles',21.05,76,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(66,'Louisiana Hot Spiced Okra',2,2,'24 - 8 oz jars',17,4,100,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(67,'Laughing Lumberjack Lager',16,1,'24 - 12 oz bottles',14,52,0,10,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(68,'Scottish Longbreads',8,3,'10 boxes x 8 pieces',12.5,6,10,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(69,'Gudbrandsdalsost',15,4,'10 kg pkg.',36,26,0,15,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(70,'Outback Lager',7,1,'24 - 355 ml bottles',15,15,10,30,0) +go +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(71,'Flotemysost',15,4,'10 - 500 g pkgs.',21.5,26,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(72,'Mozzarella di Giovanni',14,4,'24 - 200 g pkgs.',34.8,14,0,0,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(73,'Röd Kaviar',17,8,'24 - 150 g jars',15,101,0,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(74,'Longlife Tofu',4,7,'5 kg pkg.',10,4,20,5,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(75,'Rhönbräu Klosterbier',12,1,'24 - 0.5 l bottles',7.75,125,0,25,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(76,'Lakkalikööri',23,1,'500 ml',18,57,0,20,0) +INSERT "Products"("ProductID","ProductName","SupplierID","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","ReorderLevel","Discontinued") VALUES(77,'Original Frankfurter grüne Soße',12,2,'12 boxes',13,32,0,15,0) +go +set identity_insert "Products" off +go +ALTER TABLE "Products" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +set identity_insert "Shippers" on +go +ALTER TABLE "Shippers" NOCHECK CONSTRAINT ALL +go +INSERT "Shippers"("ShipperID","CompanyName","Phone") VALUES(1,'Speedy Express','(503) 555-9831') +INSERT "Shippers"("ShipperID","CompanyName","Phone") VALUES(2,'United Package','(503) 555-3199') +INSERT "Shippers"("ShipperID","CompanyName","Phone") VALUES(3,'Federal Shipping','(503) 555-9931') +go +set identity_insert "Shippers" off +go +ALTER TABLE "Shippers" CHECK CONSTRAINT ALL +go +set quoted_identifier on +go +set identity_insert "Suppliers" on +go +ALTER TABLE "Suppliers" NOCHECK CONSTRAINT ALL +go +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(1,'Exotic Liquids','Charlotte Cooper','Purchasing Manager','49 Gilbert St.','London',NULL,'EC1 4SD','UK','(171) 555-2222',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(2,'New Orleans Cajun Delights','Shelley Burke','Order Administrator','P.O. Box 78934','New Orleans','LA','70117','USA','(100) 555-4822',NULL,'#CAJUN.HTM#') +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(3,'Grandma Kelly''s Homestead','Regina Murphy','Sales Representative','707 Oxford Rd.','Ann Arbor','MI','48104','USA','(313) 555-5735','(313) 555-3349',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(4,'Tokyo Traders','Yoshi Nagase','Marketing Manager','9-8 Sekimai Musashino-shi','Tokyo',NULL,'100','Japan','(03) 3555-5011',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(5,'Cooperativa de Quesos ''Las Cabras''','Antonio del Valle Saavedra','Export Administrator','Calle del Rosal 4','Oviedo','Asturias','33007','Spain','(98) 598 76 54',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(6,'Mayumi''s','Mayumi Ohno','Marketing Representative','92 Setsuko Chuo-ku','Osaka',NULL,'545','Japan','(06) 431-7877',NULL,'Mayumi''s (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/mayumi.htm#') +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(7,'Pavlova, Ltd.','Ian Devling','Marketing Manager','74 Rose St. Moonie Ponds','Melbourne','Victoria','3058','Australia','(03) 444-2343','(03) 444-6588',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(8,'Specialty Biscuits, Ltd.','Peter Wilson','Sales Representative','29 King''s Way','Manchester',NULL,'M14 GSD','UK','(161) 555-4448',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(9,'PB Knäckebröd AB','Lars Peterson','Sales Agent','Kaloadagatan 13','Göteborg',NULL,'S-345 67','Sweden','031-987 65 43','031-987 65 91',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(10,'Refrescos Americanas LTDA','Carlos Diaz','Marketing Manager','Av. das Americanas 12.890','Sao Paulo',NULL,'5442','Brazil','(11) 555 4640',NULL,NULL) +go +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(11,'Heli Süßwaren GmbH & Co. KG','Petra Winkler','Sales Manager','Tiergartenstraße 5','Berlin',NULL,'10785','Germany','(010) 9984510',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(12,'Plutzer Lebensmittelgroßmärkte AG','Martin Bein','International Marketing Mgr.','Bogenallee 51','Frankfurt',NULL,'60439','Germany','(069) 992755',NULL,'Plutzer (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/plutzer.htm#') +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(13,'Nord-Ost-Fisch Handelsgesellschaft mbH','Sven Petersen','Coordinator Foreign Markets','Frahmredder 112a','Cuxhaven',NULL,'27478','Germany','(04721) 8713','(04721) 8714',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(14,'Formaggi Fortini s.r.l.','Elio Rossi','Sales Representative','Viale Dante, 75','Ravenna',NULL,'48100','Italy','(0544) 60323','(0544) 60603','#FORMAGGI.HTM#') +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(15,'Norske Meierier','Beate Vileid','Marketing Manager','Hatlevegen 5','Sandvika',NULL,'1320','Norway','(0)2-953010',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(16,'Bigfoot Breweries','Cheryl Saylor','Regional Account Rep.','3400 - 8th Avenue Suite 210','Bend','OR','97101','USA','(503) 555-9931',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(17,'Svensk Sjöföda AB','Michael Björn','Sales Representative','Brovallavägen 231','Stockholm',NULL,'S-123 45','Sweden','08-123 45 67',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(18,'Aux joyeux ecclésiastiques','Guylène Nodier','Sales Manager','203, Rue des Francs-Bourgeois','Paris',NULL,'75004','France','(1) 03.83.00.68','(1) 03.83.00.62',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(19,'New England Seafood Cannery','Robb Merchant','Wholesale Account Agent','Order Processing Dept. 2100 Paul Revere Blvd.','Boston','MA','02134','USA','(617) 555-3267','(617) 555-3389',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(20,'Leka Trading','Chandra Leka','Owner','471 Serangoon Loop, Suite #402','Singapore',NULL,'0512','Singapore','555-8787',NULL,NULL) +go +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(21,'Lyngbysild','Niels Petersen','Sales Manager','Lyngbysild Fiskebakken 10','Lyngby',NULL,'2800','Denmark','43844108','43844115',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(22,'Zaanse Snoepfabriek','Dirk Luchte','Accounting Manager','Verkoop Rijnweg 22','Zaandam',NULL,'9999 ZZ','Netherlands','(12345) 1212','(12345) 1210',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(23,'Karkki Oy','Anne Heikkonen','Product Manager','Valtakatu 12','Lappeenranta',NULL,'53120','Finland','(953) 10956',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(24,'G''day, Mate','Wendy Mackenzie','Sales Representative','170 Prince Edward Parade Hunter''s Hill','Sydney','NSW','2042','Australia','(02) 555-5914','(02) 555-4873','G''day Mate (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/gdaymate.htm#') +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(25,'Ma Maison','Jean-Guy Lauzon','Marketing Manager','2960 Rue St. Laurent','Montréal','Québec','H1J 1C3','Canada','(514) 555-9022',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(26,'Pasta Buttini s.r.l.','Giovanni Giudici','Order Administrator','Via dei Gelsomini, 153','Salerno',NULL,'84100','Italy','(089) 6547665','(089) 6547667',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(27,'Escargots Nouveaux','Marie Delamare','Sales Manager','22, rue H. Voiron','Montceau',NULL,'71300','France','85.57.00.07',NULL,NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(28,'Gai pâturage','Eliane Noz','Sales Representative','Bat. B 3, rue des Alpes','Annecy',NULL,'74000','France','38.76.98.06','38.76.98.58',NULL) +INSERT "Suppliers"("SupplierID","CompanyName","ContactName","ContactTitle","Address","City","Region","PostalCode","Country","Phone","Fax","HomePage") VALUES(29,'Forêts d''érables','Chantal Goulet','Accounting Manager','148 rue Chasseur','Ste-Hyacinthe','Québec','J2S 7S8','Canada','(514) 555-2955','(514) 555-2921',NULL) +go +set identity_insert "Suppliers" off +go +ALTER TABLE "Suppliers" CHECK CONSTRAINT ALL +go + + +/* The following adds stored procedures */ + +if exists (select * from sysobjects where id = object_id('dbo.CustOrdersDetail')) + drop procedure dbo.CustOrdersDetail +GO + +CREATE PROCEDURE CustOrdersDetail @OrderID int +AS +SELECT ProductName, + UnitPrice=ROUND(Od.UnitPrice, 2), + Quantity, + Discount=CONVERT(int, Discount * 100), + ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2) +FROM Products P, [Order Details] Od +WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID +go + + +if exists (select * from sysobjects where id = object_id('dbo.CustOrdersOrders')) + drop procedure dbo.CustOrdersOrders +GO + +CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5) +AS +SELECT OrderID, + OrderDate, + RequiredDate, + ShippedDate +FROM Orders +WHERE CustomerID = @CustomerID +ORDER BY OrderID +GO + + +if exists (select * from sysobjects where id = object_id('dbo.CustOrderHist') and sysstat & 0xf = 4) + drop procedure dbo.CustOrderHist +GO +CREATE PROCEDURE CustOrderHist @CustomerID nchar(5) +AS +SELECT ProductName, Total=SUM(Quantity) +FROM Products P, [Order Details] OD, Orders O, Customers C +WHERE C.CustomerID = @CustomerID +AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID +GROUP BY ProductName +GO + +if exists (select * from sysobjects where id = object_id('dbo.SalesByCategory') and sysstat & 0xf = 4) + drop procedure dbo.SalesByCategory +GO +CREATE PROCEDURE SalesByCategory + @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998' +AS +IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998' +BEGIN + SELECT @OrdYear = '1998' +END + +SELECT ProductName, + TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0) +FROM [Order Details] OD, Orders O, Products P, Categories C +WHERE OD.OrderID = O.OrderID + AND OD.ProductID = P.ProductID + AND P.CategoryID = C.CategoryID + AND C.CategoryName = @CategoryName + AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear +GROUP BY ProductName +ORDER BY ProductName +GO + + +/* The follwing adds tables to the Northwind database */ + + +CREATE TABLE [dbo].[CustomerCustomerDemo] + ([CustomerID] nchar (5) NOT NULL, + [CustomerTypeID] [nchar] (10) NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[CustomerDemographics] + ([CustomerTypeID] [nchar] (10) NOT NULL , + [CustomerDesc] [ntext] NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[Region] + ( [RegionID] [int] NOT NULL , + [RegionDescription] [nchar] (50) NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[Territories] + ([TerritoryID] [nvarchar] (20) NOT NULL , + [TerritoryDescription] [nchar] (50) NOT NULL , + [RegionID] [int] NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[EmployeeTerritories] + ([EmployeeID] [int] NOT NULL, + [TerritoryID] [nvarchar] (20) NOT NULL +) ON [PRIMARY] + +-- The following adds data to the tables just created. + +Insert Into Region Values (1,'Eastern') +Insert Into Region Values (2,'Western') +Insert Into Region Values (3,'Northern') +Insert Into Region Values (4,'Southern') +Go + +Insert Into Territories Values ('01581','Westboro',1) +Insert Into Territories Values ('01730','Bedford',1) +Insert Into Territories Values ('01833','Georgetow',1) +Insert Into Territories Values ('02116','Boston',1) +Insert Into Territories Values ('02139','Cambridge',1) +Insert Into Territories Values ('02184','Braintree',1) +Insert Into Territories Values ('02903','Providence',1) +Insert Into Territories Values ('03049','Hollis',3) +Insert Into Territories Values ('03801','Portsmouth',3) +Insert Into Territories Values ('06897','Wilton',1) +Insert Into Territories Values ('07960','Morristown',1) +Insert Into Territories Values ('08837','Edison',1) +Insert Into Territories Values ('10019','New York',1) +Insert Into Territories Values ('10038','New York',1) +Insert Into Territories Values ('11747','Mellvile',1) +Insert Into Territories Values ('14450','Fairport',1) +Insert Into Territories Values ('19428','Philadelphia',3) +Insert Into Territories Values ('19713','Neward',1) +Insert Into Territories Values ('20852','Rockville',1) +Insert Into Territories Values ('27403','Greensboro',1) +Insert Into Territories Values ('27511','Cary',1) +Insert Into Territories Values ('29202','Columbia',4) +Insert Into Territories Values ('30346','Atlanta',4) +Insert Into Territories Values ('31406','Savannah',4) +Insert Into Territories Values ('32859','Orlando',4) +Insert Into Territories Values ('33607','Tampa',4) +Insert Into Territories Values ('40222','Louisville',1) +Insert Into Territories Values ('44122','Beachwood',3) +Insert Into Territories Values ('45839','Findlay',3) +Insert Into Territories Values ('48075','Southfield',3) +Insert Into Territories Values ('48084','Troy',3) +Insert Into Territories Values ('48304','Bloomfield Hills',3) +Insert Into Territories Values ('53404','Racine',3) +Insert Into Territories Values ('55113','Roseville',3) +Insert Into Territories Values ('55439','Minneapolis',3) +Insert Into Territories Values ('60179','Hoffman Estates',2) +Insert Into Territories Values ('60601','Chicago',2) +Insert Into Territories Values ('72716','Bentonville',4) +Insert Into Territories Values ('75234','Dallas',4) +Insert Into Territories Values ('78759','Austin',4) +Insert Into Territories Values ('80202','Denver',2) +Insert Into Territories Values ('80909','Colorado Springs',2) +Insert Into Territories Values ('85014','Phoenix',2) +Insert Into Territories Values ('85251','Scottsdale',2) +Insert Into Territories Values ('90405','Santa Monica',2) +Insert Into Territories Values ('94025','Menlo Park',2) +Insert Into Territories Values ('94105','San Francisco',2) +Insert Into Territories Values ('95008','Campbell',2) +Insert Into Territories Values ('95054','Santa Clara',2) +Insert Into Territories Values ('95060','Santa Cruz',2) +Insert Into Territories Values ('98004','Bellevue',2) +Insert Into Territories Values ('98052','Redmond',2) +Insert Into Territories Values ('98104','Seattle',2) +Go + +Insert Into EmployeeTerritories Values (1,'06897') +Insert Into EmployeeTerritories Values (1,'19713') +Insert Into EmployeeTerritories Values (2,'01581') +Insert Into EmployeeTerritories Values (2,'01730') +Insert Into EmployeeTerritories Values (2,'01833') +Insert Into EmployeeTerritories Values (2,'02116') +Insert Into EmployeeTerritories Values (2,'02139') +Insert Into EmployeeTerritories Values (2,'02184') +Insert Into EmployeeTerritories Values (2,'40222') +Insert Into EmployeeTerritories Values (3,'30346') +Insert Into EmployeeTerritories Values (3,'31406') +Insert Into EmployeeTerritories Values (3,'32859') +Insert Into EmployeeTerritories Values (3,'33607') +Insert Into EmployeeTerritories Values (4,'20852') +Insert Into EmployeeTerritories Values (4,'27403') +Insert Into EmployeeTerritories Values (4,'27511') +Insert Into EmployeeTerritories Values (5,'02903') +Insert Into EmployeeTerritories Values (5,'07960') +Insert Into EmployeeTerritories Values (5,'08837') +Insert Into EmployeeTerritories Values (5,'10019') +Insert Into EmployeeTerritories Values (5,'10038') +Insert Into EmployeeTerritories Values (5,'11747') +Insert Into EmployeeTerritories Values (5,'14450') +Insert Into EmployeeTerritories Values (6,'85014') +Insert Into EmployeeTerritories Values (6,'85251') +Insert Into EmployeeTerritories Values (6,'98004') +Insert Into EmployeeTerritories Values (6,'98052') +Insert Into EmployeeTerritories Values (6,'98104') +Insert Into EmployeeTerritories Values (7,'60179') +Insert Into EmployeeTerritories Values (7,'60601') +Insert Into EmployeeTerritories Values (7,'80202') +Insert Into EmployeeTerritories Values (7,'80909') +Insert Into EmployeeTerritories Values (7,'90405') +Insert Into EmployeeTerritories Values (7,'94025') +Insert Into EmployeeTerritories Values (7,'94105') +Insert Into EmployeeTerritories Values (7,'95008') +Insert Into EmployeeTerritories Values (7,'95054') +Insert Into EmployeeTerritories Values (7,'95060') +Insert Into EmployeeTerritories Values (8,'19428') +Insert Into EmployeeTerritories Values (8,'44122') +Insert Into EmployeeTerritories Values (8,'45839') +Insert Into EmployeeTerritories Values (8,'53404') +Insert Into EmployeeTerritories Values (9,'03049') +Insert Into EmployeeTerritories Values (9,'03801') +Insert Into EmployeeTerritories Values (9,'48075') +Insert Into EmployeeTerritories Values (9,'48084') +Insert Into EmployeeTerritories Values (9,'48304') +Insert Into EmployeeTerritories Values (9,'55113') +Insert Into EmployeeTerritories Values (9,'55439') +GO + + + +-- The following adds constraints to the Northwind database + +ALTER TABLE CustomerCustomerDemo + ADD CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED + ( + [CustomerID], + [CustomerTypeID] + ) ON [PRIMARY] +GO + +ALTER TABLE CustomerDemographics + ADD CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED + ( + [CustomerTypeID] + ) ON [PRIMARY] +GO + +ALTER TABLE CustomerCustomerDemo + ADD CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY + ( + [CustomerTypeID] + ) REFERENCES [dbo].[CustomerDemographics] ( + [CustomerTypeID] + ) +GO + +ALTER TABLE CustomerCustomerDemo + ADD CONSTRAINT [FK_CustomerCustomerDemo_Customers] FOREIGN KEY + ( + [CustomerID] + ) REFERENCES [dbo].[Customers] ( + [CustomerID] + ) +GO + +ALTER TABLE Region + ADD CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED + ( + [RegionID] + ) ON [PRIMARY] +GO + +ALTER TABLE Territories + ADD CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED + ( + [TerritoryID] + ) ON [PRIMARY] +GO + +ALTER TABLE Territories + ADD CONSTRAINT [FK_Territories_Region] FOREIGN KEY + ( + [RegionID] + ) REFERENCES [dbo].[Region] ( + [RegionID] + ) +GO + +ALTER TABLE EmployeeTerritories + ADD CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED + ( + [EmployeeID], + [TerritoryID] + ) ON [PRIMARY] +GO + +ALTER TABLE EmployeeTerritories + ADD CONSTRAINT [FK_EmployeeTerritories_Employees] FOREIGN KEY + ( + [EmployeeID] + ) REFERENCES [dbo].[Employees] ( + [EmployeeID] + ) +GO + + +ALTER TABLE EmployeeTerritories + ADD CONSTRAINT [FK_EmployeeTerritories_Territories] FOREIGN KEY + ( + [TerritoryID] + ) REFERENCES [dbo].[Territories] ( + [TerritoryID] + ) +GO diff --git a/src/Simple.OData.NorthwindModel/NorthwindInitializer.cs b/src/Simple.OData.NorthwindModel/NorthwindInitializer.cs new file mode 100644 index 000000000..b204fb395 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/NorthwindInitializer.cs @@ -0,0 +1,130 @@ +using System; +using System.Data.Entity; +using NorthwindModel; +using Simple.OData.NorthwindModel.Entities; + +namespace Simple.OData.NorthwindModel; + +public class NorthwindInitializer : DropCreateDatabaseAlways<NorthwindContext> +{ + protected override void Seed(NorthwindContext ctx) + { + ctx.Categories.AddRange(new[] + { + new Category { CategoryID = 1, CategoryName = "Beverages", Description = "Beverages Soft drinks, coffees, teas, beer, and ale", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 2, CategoryName = "Condiments", Description = "Sweet and savory sauces, relishes, spreads, and seasonings", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 3, CategoryName = "Confections", Description = "Desserts, candies, sweetbreads", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 4, CategoryName = "Dairy Products", Description = "Cheeses", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 5, CategoryName = "Grains/Cereals", Description = "Breads, crackers, pasta, and cereal", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 6, CategoryName = "Meat/Poultry", Description = "Prepared meats", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 7, CategoryName = "Produce", Description = "Dried fruit and bean curd", Picture = new byte[] {1,2,3} }, + new Category { CategoryID = 8, CategoryName = "Seafood", Description = "Seaweed and fish", Picture = new byte[] {1,2,3} }, + }); + + ctx.Suppliers.AddRange(new[] + { + new Supplier { SupplierID = 1, CompanyName = "Exotic Liquids", ContactName = "Charlotte Cooper", ContactTitle = "Purchasing Manager", Address = "49 Gilbert St.", City = "London", Region = null, PostalCode = "EC1 4SD", Country = "UK", Phone = "(71) 555-2222", Fax = null }, + new Supplier { SupplierID = 2, CompanyName = "New Orleans Cajun Delights", ContactName = "Shelley Burke", ContactTitle = "Order Administrator", Address = "P.O. Box 78934", City = "New Orleans", Region = "LA", PostalCode = "70117", Country = "USA", Phone = "(100) 555-4822", Fax = null }, + new Supplier { SupplierID = 3, CompanyName = "Grandma Kelly's Homestead", ContactName = "Regina Murphy", ContactTitle = "Sales Representative", Address = "707 Oxford Rd.", City = "Ann Arbor", Region = "MI", PostalCode = "48104", Country = "USA", Phone = "(313) 555-5735", Fax = "(313) 555-3349" }, + new Supplier { SupplierID = 4, CompanyName = "Tokyo Traders", ContactName = "Yoshi Nagase", ContactTitle = "Marketing Manager", Address = "9-8 Sekimai Musashino-shi", City = "Tokyo", Region = null, PostalCode = "100", Country = "Japan", Phone = "(03) 3555-5011", Fax = null }, + new Supplier { SupplierID = 5, CompanyName = "Cooperativa de Quesos 'Las Cabras'", ContactName = "Antonio del Valle Saavedra ", ContactTitle = "Export Administrator", Address = "Calle del Rosal 4", City = "Oviedo", Region = "Asturias", PostalCode = "33007", Country = "Spain", Phone = "(98) 598 76 54", Fax = null }, + new Supplier { SupplierID = 6, CompanyName = "Mayumi's", ContactName = "Mayumi Ohno", ContactTitle = "Marketing Representative", Address = "92 Setsuko Chuo-ku", City = "Osaka", Region = null, PostalCode = "545", Country = "Japan", Phone = "(06) 431-7877", Fax = null }, + new Supplier { SupplierID = 7, CompanyName = "Pavlova, Ltd.", ContactName = "Ian Devling", ContactTitle = "Marketing Manager", Address = "74 Rose St. Moonie Ponds", City = "Melbourne", Region = "Victoria", PostalCode = "3058", Country = "Australia", Phone = "(03) 444-2343", Fax = "(03) 444-6588" }, + new Supplier { SupplierID = 12, CompanyName = "Plusspar Lebensmittelgroßmärkte AG", ContactName = "Martin Bein", ContactTitle = "International Marketing Mgr.", Address = "Bogenallee 51", City = "Frankfurt", Region = null, PostalCode = "60439", Country = "Germany", Phone = "(069) 992755", Fax = null }, + new Supplier { SupplierID = 14, CompanyName = "Formaggi Fortini s.r.l.", ContactName = "Elio Rossi", ContactTitle = "Sales Representative", Address = "Viale Dante, 75", City = "Ravenna", Region = null, PostalCode = "48100", Country = "Italy", Phone = "(0544) 60323", Fax = "(0544) 60603" }, + new Supplier { SupplierID = 19, CompanyName = "New England Seafood Cannery", ContactName = "Robb Merchant", ContactTitle = "Wholesale Account Agent", Address = "Order Processing Dept. 2100 Paul Revere Blvd.", City = "Boston", Region = "MA", PostalCode = "02134", Country = "USA", Phone = "(503) 555-9931", Fax = null }, + new Supplier { SupplierID = 20, CompanyName = "Leka Trading", ContactName = "Chandra Leka", ContactTitle = "Owner", Address = "471 Serangoon Loop, Suite #402", City = "Singapore", Region = null, PostalCode = "0512", Country = "Singapore", Phone = "555-8787", Fax = null }, + new Supplier { SupplierID = 22, CompanyName = "Zaanse Snoepfabriek", ContactName = "Dirk Luchte", ContactTitle = "Accounting Manager", Address = "Verkoop Rijnweg 22", City = "Zaandam", Region = null, PostalCode = "9999 ZZ", Country = "Netherlands", Phone = "(12345) 1212", Fax = "(12345) 1210" }, + //new Supplier { SupplierID = 0, CompanyName = "", ContactName = "", ContactTitle = "", Address = "", City = "", Region = null, PostalCode = "", Country = "", Phone = "", Fax = null }, + }); + + ctx.Products.AddRange(new[] + { + new Product { ProductID = 1, ProductName = "Chai", SupplierID = 1, CategoryID = 1, QuantityPerUnit = "10 boxes x 20 bags", UnitPrice = 18, UnitsInStock = 39, UnitsOnOrder = 0, ReorderLevel = 10, Discontinued = false }, + new Product { ProductID = 2, ProductName = "Chang", SupplierID = 1, CategoryID = 1, QuantityPerUnit = "24 - 12 oz bottles", UnitPrice = 19, UnitsInStock = 17, UnitsOnOrder = 40, ReorderLevel = 25, Discontinued = false }, + new Product { ProductID = 3, ProductName = "Aniseed Syrup", SupplierID = 1, CategoryID = 2, QuantityPerUnit = "12 - 550 ml bottles", UnitPrice = 10, UnitsInStock = 13, UnitsOnOrder = 70, ReorderLevel = 25, Discontinued = false }, + new Product { ProductID = 4, ProductName = "Chef Anton's Cajun Seasoning", SupplierID = 2, CategoryID = 2, QuantityPerUnit = "48 - 6 oz jars", UnitPrice = 22, UnitsInStock = 53, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 5, ProductName = "Chef Anton's Gumbo Mix", SupplierID = 2, CategoryID = 2, QuantityPerUnit = "36 boxes", UnitPrice = 21.35m, UnitsInStock = 0, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = true }, + new Product { ProductID = 6, ProductName = "Grandma's Boysenberry Spread", SupplierID = 3, CategoryID = 2, QuantityPerUnit = "12 - 8 oz jars", UnitPrice = 25, UnitsInStock = 120, UnitsOnOrder = 0, ReorderLevel = 25, Discontinued = false }, + new Product { ProductID = 7, ProductName = "Uncle Bob's Organic Dried Pears", SupplierID = 3, CategoryID = 7, QuantityPerUnit = "12 - 1 lb pkgs.", UnitPrice = 30, UnitsInStock = 15, UnitsOnOrder = 0, ReorderLevel = 10, Discontinued = false }, + new Product { ProductID = 8, ProductName = "Northwoods Cranberry Sauce", SupplierID = 3, CategoryID = 2, QuantityPerUnit = "12 - 12 oz jars", UnitPrice = 40, UnitsInStock = 6, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 9, ProductName = "Mishi Kobe Niku", SupplierID = 4, CategoryID = 6, QuantityPerUnit = "18 - 500 g pkgs.", UnitPrice = 97, UnitsInStock = 29, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = true }, + new Product { ProductID = 10, ProductName = "Ikura", SupplierID = 4, CategoryID = 8, QuantityPerUnit = "12 - 200 ml jars", UnitPrice = 31, UnitsInStock = 31, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 11, ProductName = "Queso Cabrales", SupplierID = 5, CategoryID = 4, QuantityPerUnit = "1 kg pkg.", UnitPrice = 21, UnitsInStock = 22, UnitsOnOrder = 30, ReorderLevel = 30, Discontinued = false }, + new Product { ProductID = 12, ProductName = "Queso Manchego La Pastora", SupplierID = 5, CategoryID = 4, QuantityPerUnit = "10 - 500 g pkgs.", UnitPrice = 38, UnitsInStock = 86, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 13, ProductName = "Konbu", SupplierID = 6, CategoryID = 8, QuantityPerUnit = "2 kg box", UnitPrice = 6, UnitsInStock = 0, UnitsOnOrder = 24, ReorderLevel = 5, Discontinued = false }, + new Product { ProductID = 14, ProductName = "Tofu", SupplierID = 6, CategoryID = 7, QuantityPerUnit = "40 - 100 g pkgs.", UnitPrice = 23.25m, UnitsInStock = 35, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 15, ProductName = "Genen Shouyu", SupplierID = 6, CategoryID = 2, QuantityPerUnit = "24 - 250 ml bottles", UnitPrice = 15.5m, UnitsInStock = 39, UnitsOnOrder = 0, ReorderLevel = 5, Discontinued = false }, + new Product { ProductID = 16, ProductName = "Pavlova", SupplierID = 7, CategoryID = 3, QuantityPerUnit = "32 - 500 g boxes", UnitPrice = 17.45m, UnitsInStock = 29, UnitsOnOrder = 0, ReorderLevel = 10, Discontinued = false }, + new Product { ProductID = 17, ProductName = "Alice Mutton", SupplierID = 7, CategoryID = 6, QuantityPerUnit = "20 - 1 kg tins", UnitPrice = 39, UnitsInStock = 0, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = true }, + new Product { ProductID = 40, ProductName = "Boston Crab Meat", SupplierID = 19, CategoryID = 8, QuantityPerUnit = "24 - 4 oz tins", UnitPrice = 18.4m, UnitsInStock = 123, UnitsOnOrder = 0, ReorderLevel = 30, Discontinued = false }, + new Product { ProductID = 42, ProductName = "Singaporean Hokkien Fried Mee", SupplierID = 20, CategoryID = 5, QuantityPerUnit = "32 - 1 kg pkgs.", UnitPrice = 14, UnitsInStock = 26, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = true }, + new Product { ProductID = 47, ProductName = "Zaanse koeken", SupplierID = 22, CategoryID = 3, QuantityPerUnit = "10 - 4 oz boxes", UnitPrice = 9.5m, UnitsInStock = 36, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 72, ProductName = "Mozzarella di Giovanni", SupplierID = 14, CategoryID = 4, QuantityPerUnit = "24 - 200 g pkgs.", UnitPrice = 34.8m, UnitsInStock = 14, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + new Product { ProductID = 77, ProductName = "Original Frankfurter grüne Soße", SupplierID = 12, CategoryID = 2, QuantityPerUnit = "12 boxes", UnitPrice = 13, UnitsInStock = 32, UnitsOnOrder = 0, ReorderLevel = 15, Discontinued = false }, + //new Product { ProductID = 0, ProductName = "", SupplierID = 0, CategoryID = 0, QuantityPerUnit = "", UnitPrice = 0, UnitsInStock = 0, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false }, + }); + + ctx.Customers.AddRange(new[] + { + new Customer { CustomerID = "BOTTM", CompanyName = "Bottom-Dollar Markets", ContactName = "Elizabeth Lincoln", ContactTitle = "Accounting Manager", Address = "23 Tsawassen Blvd.", City = "Tsawassen", Region = "BC", PostalCode = "T2F 8M4", Country = "Canada", Phone = "(604) 555-4729", Fax = "(604) 555-3745" }, + new Customer { CustomerID = "ERNSH", CompanyName = "Ernst Handel", ContactName = "Roland Mendel", ContactTitle = "Sales Manager", Address = "Kirchgasse 6", City = "Graz", Region = null, PostalCode = "8010", Country = "Austria", Phone = "7675-3425", Fax = "7675-3426" }, + new Customer { CustomerID = "FRANS", CompanyName = "Franchi S.p.A.", ContactName = "Paolo Accorti", ContactTitle = "Sales Representative", Address = "Via Monte Bianco 34", City = "Torino", Region = null, PostalCode = "10100", Country = "Italy", Phone = "011-4988260", Fax = "011-4988261" }, + new Customer { CustomerID = "SAVEA", CompanyName = "Save-a-lot Markets", ContactName = "Jose Pavarotti", ContactTitle = "Sales Representative", Address = "187 Suffolk Ln.", City = "Boise", Region = "ID", PostalCode = "83720", Country = "USA", Phone = "(208) 555-8097", Fax = "" }, + new Customer { CustomerID = "VINET", CompanyName = "Vins et alcools Chevalier", ContactName = "Paul Henriot", ContactTitle = "Accounting Manager", Address = "59 rue de l'Abbaye", City = "Reims", Region = null, PostalCode = "51100", Country = "France", Phone = "26.47.15.10", Fax = "26.47.15.11" }, + // new Customer { CustomerID = "", CompanyName = "", ContactName = "", ContactTitle = "", Address = "", City = "", Region = null, PostalCode = "", Country = "", Phone = "", Fax = "" }, + }); + + ctx.Employees.AddRange(new[] + { + new Employee { EmployeeID = 1, LastName = "Davolio", FirstName = "Nancy", Title = "Sales Representative", BirthDate = new DateTime(1948,12,8), HireDate = new DateTime(1991,3,29), Address = "507 - 20th Ave. E. Apt. 2A", City = "Seattle", Region = "WA", PostalCode = "98122", Country = "USA", HomePhone = "(206) 555-9857", Extension = "5467", Photo = new byte[] {1,2,3}, Notes = "Notes", ReportsTo = 2 }, + new Employee { EmployeeID = 2, LastName = "Fuller", FirstName = "Andrew", Title = "Vice President, Sales", BirthDate = new DateTime(1942,2,19), HireDate = new DateTime(1991,7,12), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = null }, + new Employee { EmployeeID = 3, LastName = "Leverling", FirstName = "Janet", Title = "Sales Representative", BirthDate = new DateTime(1963,8,30), HireDate = new DateTime(1991,2,27), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 2 }, + new Employee { EmployeeID = 4, LastName = "Peacock", FirstName = "Margaret", Title = "Sales Representative", BirthDate = new DateTime(1937,9,19), HireDate = new DateTime(1992,3,30), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 2 }, + new Employee { EmployeeID = 5, LastName = "Buchanan", FirstName = "Steven", Title = "Sales Manager", BirthDate = new DateTime(1955,3,4), HireDate = new DateTime(1992,9,13), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 2 }, + new Employee { EmployeeID = 6, LastName = "Suyama", FirstName = "Michael", Title = "Sales Representative", BirthDate = new DateTime(1963,7,2), HireDate = new DateTime(1992,9,13), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 5 }, + new Employee { EmployeeID = 7, LastName = "King", FirstName = "Robert", Title = "Sales Representative", BirthDate = new DateTime(1960,5,29), HireDate = new DateTime(1992,11,29), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 5 }, + new Employee { EmployeeID = 13, LastName = "Brid", FirstName = "Justin", Title = "Marketing Director", BirthDate = new DateTime(1962,10,8), HireDate = new DateTime(1994,1,1), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 2 }, + new Employee { EmployeeID = 14, LastName = "Martin", FirstName = "Xavier", Title = "Marketing Associate", BirthDate = new DateTime(1960,11,30), HireDate = new DateTime(1994,1,15), Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 13 }, + //new Employee { EmployeeID = 0, LastName = "", FirstName = "", Title = "", BirthDate = DateTime.MinValue, HireDate = DateTime.MinValue, Address = "", City = "", Region = null, PostalCode = "", Country = "", HomePhone = "", Extension = "", Photo = new byte[] {1,2,3}, Notes = null, ReportsTo = 0 }, + }); + + ctx.Shippers.AddRange(new[] + { + new Shipper { ShipperID = 1, CompanyName = "Speedy Express" }, + new Shipper { ShipperID = 2, CompanyName = "United Package" }, + new Shipper { ShipperID = 3, CompanyName = "Federal Shipping" }, + }); + + ctx.Orders.AddRange(new[] + { + new Order { OrderID = 10000, CustomerID = "FRANS", EmployeeID = 6, ShipName = "Franchi S.p.A.", ShipAddress = "Via Monte Bianco 34", ShipCity = "Torino", ShipRegion = null, ShipPostalCode = "10100", ShipCountry = "Italy", ShipVia = 3, OrderDate = new DateTime(1991,10,5), RequiredDate = new DateTime(1991,6,7), ShippedDate = new DateTime(1991,5,15), Freight = 4.45m }, + new Order { OrderID = 10021, CustomerID = "ERNSH", EmployeeID = 7, ShipName = "Ernst Handel", ShipAddress = "Kirchgasse 6", ShipCity = "Graz", ShipRegion = null, ShipPostalCode = "8010", ShipCountry = "Austria", ShipVia = 3, OrderDate = new DateTime(1991,6,14), RequiredDate = new DateTime(1991,7,12), ShippedDate = new DateTime(1991,7,2), Freight = 75.17m }, + new Order { OrderID = 10065, CustomerID = "SAVEA", EmployeeID = 1, ShipName = "Save-a-lot Markets", ShipAddress = "187 Suffolk Ln.", ShipCity = "Boise", ShipRegion = "ID", ShipPostalCode = "83720", ShipCountry = "USA", ShipVia = 3, OrderDate = new DateTime(1991,8,28), RequiredDate = new DateTime(1991,9,25), ShippedDate = new DateTime(1991,9,3), Freight = 45.03m }, + new Order { OrderID = 10199, CustomerID = "SAVEA", EmployeeID = 1, ShipName = "Save-a-lot Markets", ShipAddress = "187 Suffolk Ln.", ShipCity = "Boise", ShipRegion = "ID", ShipPostalCode = "83720", ShipCountry = "USA", ShipVia = 3, OrderDate = new DateTime(1992,3,27), RequiredDate = new DateTime(1992,4,10), ShippedDate = new DateTime(1992,3,30), Freight = 50.19m }, + new Order { OrderID = 10248, CustomerID = "VINET", EmployeeID = 5, ShipName = "Vins et alcools Chevalier", ShipAddress = "59 rue de l'Abbaye", ShipCity = "Reims", ShipRegion = null, ShipPostalCode = "51100", ShipCountry = "France", ShipVia = 3, OrderDate = new DateTime(1992,5,28), RequiredDate = new DateTime(1992,6,25), ShippedDate = new DateTime(1992,6,9), Freight = 32.38m }, + new Order { OrderID = 10847, CustomerID = "SAVEA", EmployeeID = 4, ShipName = "Save-a-lot Markets", ShipAddress = "187 Suffolk Ln.", ShipCity = "Boise", ShipRegion = "ID", ShipPostalCode = "83720", ShipCountry = "USA", ShipVia = 3, OrderDate = new DateTime(1993,12,16), RequiredDate = new DateTime(1993,12,30), ShippedDate = new DateTime(1994,1,4), Freight = 487.57m }, + new Order { OrderID = 10918, CustomerID = "BOTTM", EmployeeID = 3, ShipName = "Bottom-Dollar Markets", ShipAddress = "23 Tsawassen Blvd.", ShipCity = "Tsawassen", ShipRegion = "BC", ShipPostalCode = "T2F 8M4", ShipCountry = "Canada", ShipVia = 3, OrderDate = new DateTime(1994,1,24), RequiredDate = new DateTime(1994,2,21), ShippedDate = new DateTime(1994,2,2), Freight = 48.83m }, + // new Order { OrderID = 0, CustomerID = "", EmployeeID = , ShipName = "", ShipAddress = "", ShipCity = "", ShipRegion = null, ShipPostalCode = "", ShipCountry = "", ShipVia = 0, OrderDate = new DateTime(0,0,0), RequiredDate = new DateTime(0,0,0), ShippedDate = new DateTime(0,0,0), Freight = 0m }, + }); + + ctx.Order_Details.AddRange(new[] + { + new OrderDetail { OrderID = 10021, ProductID = 1, UnitPrice = 12m, Quantity = 60, Discount = 0.2f }, + new OrderDetail { OrderID = 10065, ProductID = 1, UnitPrice = 12.6m, Quantity = 55, Discount = 0.25f }, + new OrderDetail { OrderID = 10199, ProductID = 1, UnitPrice = 12m, Quantity = 66, Discount = 0 }, + new OrderDetail { OrderID = 10248, ProductID = 11, UnitPrice = 14, Quantity = 12, Discount = 0 }, + new OrderDetail { OrderID = 10248, ProductID = 42, UnitPrice = 9.8m, Quantity = 10, Discount = 0 }, + new OrderDetail { OrderID = 10248, ProductID = 72, UnitPrice = 24.3m, Quantity = 5, Discount = 0 }, + new OrderDetail { OrderID = 10847, ProductID = 1, UnitPrice = 18m, Quantity = 80, Discount = 0.2f }, + new OrderDetail { OrderID = 10918, ProductID = 1, UnitPrice = 18m, Quantity = 60, Discount = 0.25f }, + // new OrderDetail { OrderID = 0, ProductID = 0, UnitPrice = 0m, Quantity = 0, Discount = 0 }, + }); + + ctx.Transport.AddRange(new Transport[] + { + new Ship { TransportID = 1, TransportType = 1, ShipName = "Titanic" }, + new Truck { TransportID = 2, TransportType = 2, TruckNumber = "123456" }, + }); + } +} diff --git a/src/Simple.OData.NorthwindModel/NorthwindSchema.sql b/src/Simple.OData.NorthwindModel/NorthwindSchema.sql new file mode 100644 index 000000000..cbd1a4155 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/NorthwindSchema.sql @@ -0,0 +1,397 @@ + +-- -------------------------------------------------- +-- Entity Designer DDL Script for SQL Server Compact Edition +-- -------------------------------------------------- +-- Date Created: 05/15/2014 22:06:38 +-- Generated from EDMX file: D:\Projects\Git\Simple.OData.Client\Simple.OData.NorthwindModel\Northwind.edmx +-- -------------------------------------------------- + + +-- -------------------------------------------------- +-- Dropping existing FOREIGN KEY constraints +-- NOTE: if the constraint does not exist, an ignorable error will be reported. +-- -------------------------------------------------- + + ALTER TABLE [Order Details] DROP CONSTRAINT [FK_Order_Details_FK00]; +GO + ALTER TABLE [Order Details] DROP CONSTRAINT [FK_Order_Details_FK01]; +GO + ALTER TABLE [Orders] DROP CONSTRAINT [FK_Orders_FK00]; +GO + ALTER TABLE [Orders] DROP CONSTRAINT [FK_Orders_FK01]; +GO + ALTER TABLE [Orders] DROP CONSTRAINT [FK_Orders_FK02]; +GO + ALTER TABLE [Products] DROP CONSTRAINT [FK_Products_FK00]; +GO + ALTER TABLE [Products] DROP CONSTRAINT [FK_Products_FK01]; +GO + +-- -------------------------------------------------- +-- Dropping existing tables +-- NOTE: if the table does not exist, an ignorable error will be reported. +-- -------------------------------------------------- + + DROP TABLE [Categories]; +GO + DROP TABLE [Customers]; +GO + DROP TABLE [Employees]; +GO + DROP TABLE [Order Details]; +GO + DROP TABLE [Orders]; +GO + DROP TABLE [Products]; +GO + DROP TABLE [Shippers]; +GO + DROP TABLE [Suppliers]; +GO + DROP TABLE [Transport_Ships]; +GO + DROP TABLE [Transport_Trucks]; +GO + DROP TABLE [Transport]; +GO + +-- -------------------------------------------------- +-- Creating all tables +-- -------------------------------------------------- + +-- Creating table 'Categories' +CREATE TABLE [Categories] ( + [CategoryID] int IDENTITY(1,1) NOT NULL, + [CategoryName] nvarchar(15) NOT NULL, + [Description] ntext NULL, + [Picture] image NULL +); +GO + +-- Creating table 'Customers' +CREATE TABLE [Customers] ( + [CustomerID] nvarchar(5) NOT NULL, + [CompanyName] nvarchar(40) NOT NULL, + [ContactName] nvarchar(30) NULL, + [ContactTitle] nvarchar(30) NULL, + [Address] nvarchar(60) NULL, + [City] nvarchar(15) NULL, + [Region] nvarchar(15) NULL, + [PostalCode] nvarchar(10) NULL, + [Country] nvarchar(15) NULL, + [Phone] nvarchar(24) NULL, + [Fax] nvarchar(24) NULL +); +GO + +-- Creating table 'Employees' +CREATE TABLE [Employees] ( + [EmployeeID] int IDENTITY(1,1) NOT NULL, + [LastName] nvarchar(20) NOT NULL, + [FirstName] nvarchar(10) NOT NULL, + [Title] nvarchar(30) NULL, + [BirthDate] datetime NULL, + [HireDate] datetime NULL, + [Address] nvarchar(60) NULL, + [City] nvarchar(15) NULL, + [Region] nvarchar(15) NULL, + [PostalCode] nvarchar(10) NULL, + [Country] nvarchar(15) NULL, + [HomePhone] nvarchar(24) NULL, + [Extension] nvarchar(4) NULL, + [Photo] image NULL, + [Notes] ntext NULL, + [ReportsTo] int NULL +); +GO + +-- Creating table 'Order_Details' +CREATE TABLE [Order Details] ( + [OrderID] int NOT NULL, + [ProductID] int NOT NULL, + [UnitPrice] decimal(19,4) NOT NULL, + [Quantity] smallint NOT NULL, + [Discount] real NOT NULL +); +GO + +-- Creating table 'Orders' +CREATE TABLE [Orders] ( + [OrderID] int NOT NULL, + [CustomerID] nvarchar(5) NOT NULL, + [EmployeeID] int NULL, + [ShipName] nvarchar(40) NULL, + [ShipAddress] nvarchar(60) NULL, + [ShipCity] nvarchar(15) NULL, + [ShipRegion] nvarchar(15) NULL, + [ShipPostalCode] nvarchar(10) NULL, + [ShipCountry] nvarchar(15) NULL, + [ShipVia] int NULL, + [OrderDate] datetime NULL, + [RequiredDate] datetime NULL, + [ShippedDate] datetime NULL, + [Freight] decimal(19,4) NULL +); +GO + +-- Creating table 'Products' +CREATE TABLE [Products] ( + [ProductID] int IDENTITY(1,1) NOT NULL, + [SupplierID] int NULL, + [CategoryID] int NULL, + [ProductName] nvarchar(40) NOT NULL, + [EnglishName] nvarchar(40) NULL, + [QuantityPerUnit] nvarchar(20) NULL, + [UnitPrice] decimal(19,4) NULL, + [UnitsInStock] smallint NULL, + [UnitsOnOrder] smallint NULL, + [ReorderLevel] smallint NULL, + [Discontinued] bit NOT NULL +); +GO + +-- Creating table 'Shippers' +CREATE TABLE [Shippers] ( + [ShipperID] int IDENTITY(1,1) NOT NULL, + [CompanyName] nvarchar(40) NOT NULL +); +GO + +-- Creating table 'Suppliers' +CREATE TABLE [Suppliers] ( + [SupplierID] int IDENTITY(1,1) NOT NULL, + [CompanyName] nvarchar(40) NOT NULL, + [ContactName] nvarchar(30) NULL, + [ContactTitle] nvarchar(30) NULL, + [Address] nvarchar(60) NULL, + [City] nvarchar(15) NULL, + [Region] nvarchar(15) NULL, + [PostalCode] nvarchar(10) NULL, + [Country] nvarchar(15) NULL, + [Phone] nvarchar(24) NULL, + [Fax] nvarchar(24) NULL +); +GO + +-- Creating table 'Transport' +CREATE TABLE [Transport] ( + [TransportID] int IDENTITY(1,1) NOT NULL +); +GO + +-- Creating table 'Transport_Ships' +CREATE TABLE [Transport_Ships] ( + [ShipName] nvarchar(100) NULL, + [TransportID] int NOT NULL +); +GO + +-- Creating table 'Transport_Trucks' +CREATE TABLE [Transport_Trucks] ( + [TruckNumber] nvarchar(100) NULL, + [TransportID] int NOT NULL +); +GO + +-- -------------------------------------------------- +-- Creating all PRIMARY KEY constraints +-- -------------------------------------------------- + +-- Creating primary key on [CategoryID] in table 'Categories' +ALTER TABLE [Categories] +ADD CONSTRAINT [PK_Categories] + PRIMARY KEY ([CategoryID] ); +GO + +-- Creating primary key on [CustomerID] in table 'Customers' +ALTER TABLE [Customers] +ADD CONSTRAINT [PK_Customers] + PRIMARY KEY ([CustomerID] ); +GO + +-- Creating primary key on [EmployeeID] in table 'Employees' +ALTER TABLE [Employees] +ADD CONSTRAINT [PK_Employees] + PRIMARY KEY ([EmployeeID] ); +GO + +-- Creating primary key on [OrderID], [ProductID] in table 'Order_Details' +ALTER TABLE [Order Details] +ADD CONSTRAINT [PK_Order_Details] + PRIMARY KEY ([OrderID], [ProductID] ); +GO + +-- Creating primary key on [OrderID] in table 'Orders' +ALTER TABLE [Orders] +ADD CONSTRAINT [PK_Orders] + PRIMARY KEY ([OrderID] ); +GO + +-- Creating primary key on [ProductID] in table 'Products' +ALTER TABLE [Products] +ADD CONSTRAINT [PK_Products] + PRIMARY KEY ([ProductID] ); +GO + +-- Creating primary key on [ShipperID] in table 'Shippers' +ALTER TABLE [Shippers] +ADD CONSTRAINT [PK_Shippers] + PRIMARY KEY ([ShipperID] ); +GO + +-- Creating primary key on [SupplierID] in table 'Suppliers' +ALTER TABLE [Suppliers] +ADD CONSTRAINT [PK_Suppliers] + PRIMARY KEY ([SupplierID] ); +GO + +-- Creating primary key on [TransportID] in table 'Transport' +ALTER TABLE [Transport] +ADD CONSTRAINT [PK_Transport] + PRIMARY KEY ([TransportID] ); +GO + +-- Creating primary key on [TransportID] in table 'Transport_Ships' +ALTER TABLE [Transport_Ships] +ADD CONSTRAINT [PK_Transport_Ships] + PRIMARY KEY ([TransportID] ); +GO + +-- Creating primary key on [TransportID] in table 'Transport_Trucks' +ALTER TABLE [Transport_Trucks] +ADD CONSTRAINT [PK_Transport_Trucks] + PRIMARY KEY ([TransportID] ); +GO + +-- -------------------------------------------------- +-- Creating all FOREIGN KEY constraints +-- -------------------------------------------------- + +-- Creating foreign key on [CategoryID] in table 'Products' +ALTER TABLE [Products] +ADD CONSTRAINT [FK_Products_FK01] + FOREIGN KEY ([CategoryID]) + REFERENCES [Categories] + ([CategoryID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Products_FK01' +CREATE INDEX [IX_FK_Products_FK01] +ON [Products] + ([CategoryID]); +GO + +-- Creating foreign key on [CustomerID] in table 'Orders' +ALTER TABLE [Orders] +ADD CONSTRAINT [FK_Orders_FK00] + FOREIGN KEY ([CustomerID]) + REFERENCES [Customers] + ([CustomerID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Orders_FK00' +CREATE INDEX [IX_FK_Orders_FK00] +ON [Orders] + ([CustomerID]); +GO + +-- Creating foreign key on [EmployeeID] in table 'Orders' +ALTER TABLE [Orders] +ADD CONSTRAINT [FK_Orders_FK02] + FOREIGN KEY ([EmployeeID]) + REFERENCES [Employees] + ([EmployeeID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Orders_FK02' +CREATE INDEX [IX_FK_Orders_FK02] +ON [Orders] + ([EmployeeID]); +GO + +-- Creating foreign key on [ProductID] in table 'Order_Details' +ALTER TABLE [Order Details] +ADD CONSTRAINT [FK_Order_Details_FK00] + FOREIGN KEY ([ProductID]) + REFERENCES [Products] + ([ProductID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Order_Details_FK00' +CREATE INDEX [IX_FK_Order_Details_FK00] +ON [Order Details] + ([ProductID]); +GO + +-- Creating foreign key on [OrderID] in table 'Order_Details' +ALTER TABLE [Order Details] +ADD CONSTRAINT [FK_Order_Details_FK01] + FOREIGN KEY ([OrderID]) + REFERENCES [Orders] + ([OrderID]) + ON DELETE CASCADE ON UPDATE NO ACTION; +GO + +-- Creating foreign key on [ShipVia] in table 'Orders' +ALTER TABLE [Orders] +ADD CONSTRAINT [FK_Orders_FK01] + FOREIGN KEY ([ShipVia]) + REFERENCES [Shippers] + ([ShipperID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Orders_FK01' +CREATE INDEX [IX_FK_Orders_FK01] +ON [Orders] + ([ShipVia]); +GO + +-- Creating foreign key on [SupplierID] in table 'Products' +ALTER TABLE [Products] +ADD CONSTRAINT [FK_Products_FK00] + FOREIGN KEY ([SupplierID]) + REFERENCES [Suppliers] + ([SupplierID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Products_FK00' +CREATE INDEX [IX_FK_Products_FK00] +ON [Products] + ([SupplierID]); +GO + +-- Creating foreign key on [ReportsTo] in table 'Employees' +ALTER TABLE [Employees] +ADD CONSTRAINT [FK_Employees_FK00] + FOREIGN KEY ([ReportsTo]) + REFERENCES [Employees] + ([EmployeeID]) + ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- Creating non-clustered index for FOREIGN KEY 'FK_Employees_FK00' +CREATE INDEX [IX_FK_Employees_FK00] +ON [Employees] + ([ReportsTo]); +GO + +-- Creating foreign key on [TransportID] in table 'Transport_Ships' +ALTER TABLE [Transport_Ships] +ADD CONSTRAINT [FK_Ships_inherits_Transport] + FOREIGN KEY ([TransportID]) + REFERENCES [Transport] + ([TransportID]) + ON DELETE CASCADE ON UPDATE NO ACTION; +GO + +-- Creating foreign key on [TransportID] in table 'Transport_Trucks' +ALTER TABLE [Transport_Trucks] +ADD CONSTRAINT [FK_Trucks_inherits_Transport] + FOREIGN KEY ([TransportID]) + REFERENCES [Transport] + ([TransportID]) + ON DELETE CASCADE ON UPDATE NO ACTION; +GO + +-- -------------------------------------------------- +-- Script has ended +-- -------------------------------------------------- \ No newline at end of file diff --git a/src/Simple.OData.NorthwindModel/NorthwindService.cs b/src/Simple.OData.NorthwindModel/NorthwindService.cs new file mode 100644 index 000000000..59955b37b --- /dev/null +++ b/src/Simple.OData.NorthwindModel/NorthwindService.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Data.Services; +using System.Data.Services.Common; +using System.Data.Services.Providers; +using System.Linq; +using System.ServiceModel.Web; +using ActionProviderImplementation; +using NorthwindModel; +using Simple.OData.NorthwindModel.Entities; + +namespace Simple.OData.NorthwindModel; + +public class NorthwindService : EntityFrameworkDataService<NorthwindContext>, IServiceProvider +{ + public static void InitializeService(DataServiceConfiguration config) + { + config.SetEntitySetAccessRule("*", EntitySetRights.All); + config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); + config.SetServiceActionAccessRule("*", ServiceActionRights.Invoke); + config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3; + config.UseVerboseErrors = true; + } + + public object GetService(Type serviceType) + { + if (typeof(IDataServiceActionProvider) == serviceType) + { + return new EntityFrameworkActionProvider(CurrentDataSource); + } + + return null; + } + + protected override void HandleException(HandleExceptionArgs args) + { + base.HandleException(args); + } + + [WebGet] + public int ParseInt(string number) + { + return int.Parse(number); + } + + [WebGet] + public string ReturnString(string text) + { + return text; + } + + [WebGet] + public IQueryable<int> ReturnIntCollection(int count) + { + var numbers = new List<int>(); + for (var index = 1; index <= count; index++) + { + numbers.Add(index); + } + + return numbers.AsQueryable(); + } + + [WebGet] + public long PassThroughLong(long number) + { + return number; + } + + [WebGet] + public DateTime PassThroughDateTime(DateTime dateTime) + { + return dateTime; + } + + [WebGet] + public Guid PassThroughGuid(Guid guid) + { + return guid; + } + + [WebGet] + public IQueryable<Address> ReturnAddressCollection(int count) + { + var address = new Address { City = "Oslo", Country = "Norway", Region = "Oslo", PostalCode = "1234" }; + var addresses = new List<Address>(); + for (var index = 1; index <= count; index++) + { + addresses.Add(address); + } + + return addresses.AsQueryable(); + } +} + diff --git a/src/Simple.OData.NorthwindModel/Simple.OData.NorthwindModel.csproj b/src/Simple.OData.NorthwindModel/Simple.OData.NorthwindModel.csproj new file mode 100644 index 000000000..db6230a97 --- /dev/null +++ b/src/Simple.OData.NorthwindModel/Simple.OData.NorthwindModel.csproj @@ -0,0 +1,23 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.OData.EntityFrameworkProvider" Version="1.0.0-beta2" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\ActionProviderImplementation\ActionProviderImplementation.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Reference Include="System.ServiceModel" /> + <Reference Include="System.ServiceModel.Web" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/Simple.OData.NorthwindService/Northwind.svc b/src/Simple.OData.NorthwindService/Northwind.svc new file mode 100644 index 000000000..d6984ad15 --- /dev/null +++ b/src/Simple.OData.NorthwindService/Northwind.svc @@ -0,0 +1,3 @@ + + +<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, Version=5.8.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Service="Simple.OData.NorthwindModel.NorthwindService" %> diff --git a/src/Simple.OData.NorthwindService/Simple.OData.NorthwindService.csproj b/src/Simple.OData.NorthwindService/Simple.OData.NorthwindService.csproj new file mode 100644 index 000000000..2506f140b --- /dev/null +++ b/src/Simple.OData.NorthwindService/Simple.OData.NorthwindService.csproj @@ -0,0 +1,19 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net6.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>Simple.OData.NorthwindService</RootNamespace> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/Simple.OData.NorthwindService/Web.Debug.config b/src/Simple.OData.NorthwindService/Web.Debug.config new file mode 100644 index 000000000..2e302f9f9 --- /dev/null +++ b/src/Simple.OData.NorthwindService/Web.Debug.config @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> + +<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <!-- + In the example below, the "SetAttributes" transform will change the value of + "connectionString" to use "ReleaseSQLServer" only when the "Match" locator + finds an attribute "name" that has a value of "MyDB". + + <connectionStrings> + <add name="MyDB" + connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" + xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> + </connectionStrings> + --> + <system.web> + <!-- + In the example below, the "Replace" transform will replace the entire + <customErrors> section of your web.config file. + Note that because there is only one customErrors section under the + <system.web> node, there is no need to use the "xdt:Locator" attribute. + + <customErrors defaultRedirect="GenericError.htm" + mode="RemoteOnly" xdt:Transform="Replace"> + <error statusCode="500" redirect="InternalError.htm"/> + </customErrors> + --> + </system.web> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.NorthwindService/Web.Release.config b/src/Simple.OData.NorthwindService/Web.Release.config new file mode 100644 index 000000000..c35844462 --- /dev/null +++ b/src/Simple.OData.NorthwindService/Web.Release.config @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> + +<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <!-- + In the example below, the "SetAttributes" transform will change the value of + "connectionString" to use "ReleaseSQLServer" only when the "Match" locator + finds an attribute "name" that has a value of "MyDB". + + <connectionStrings> + <add name="MyDB" + connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" + xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> + </connectionStrings> + --> + <system.web> + <compilation xdt:Transform="RemoveAttributes(debug)" /> + <!-- + In the example below, the "Replace" transform will replace the entire + <customErrors> section of your web.config file. + Note that because there is only one customErrors section under the + <system.web> node, there is no need to use the "xdt:Locator" attribute. + + <customErrors defaultRedirect="GenericError.htm" + mode="RemoteOnly" xdt:Transform="Replace"> + <error statusCode="500" redirect="InternalError.htm"/> + </customErrors> + --> + </system.web> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.NorthwindService/Web.config b/src/Simple.OData.NorthwindService/Web.config new file mode 100644 index 000000000..da05e2335 --- /dev/null +++ b/src/Simple.OData.NorthwindService/Web.config @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> + <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> + </configSections> + <entityFramework> + <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> + <parameters> + <parameter value="MSSQLLocalDB" /> + </parameters> + </defaultConnectionFactory> + <providers> + <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> + </providers> + </entityFramework> + <appSettings> + <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> + </appSettings> + <!-- + For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367. + + The following attributes can be set on the <httpRuntime> tag. + <system.Web> + <httpRuntime targetFramework="4.5.2" /> + </system.Web> + --> + <system.web> + <compilation debug="true" targetFramework="4.5.2"> + <assemblies> + </assemblies> + </compilation> + <httpRuntime targetFramework="4.5" /> + </system.web> + <system.serviceModel> + <behaviors> + <serviceBehaviors> + <behavior> + <!-- To avoid disclosing metadata information, set the values below to false before deployment --> + <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> + <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> + <serviceDebug includeExceptionDetailInFaults="true" /> + </behavior> + </serviceBehaviors> + </behaviors> + <protocolMapping> + <add binding="basicHttpsBinding" scheme="https" /> + </protocolMapping> + <!--serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /--> + </system.serviceModel> + <system.webServer> + <modules runAllManagedModulesForAllRequests="true" /> + <!-- + To browse web app root directory during debugging, set the value below to true. + Set to false before deployment to avoid disclosing web app folder information. + --> + <directoryBrowse enabled="true" /> + </system.webServer> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Services" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.NorthwindService/packages.config b/src/Simple.OData.NorthwindService/packages.config new file mode 100644 index 000000000..d3ed75880 --- /dev/null +++ b/src/Simple.OData.NorthwindService/packages.config @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="EntityFramework" version="6.2.0" targetFramework="net461" /> + <package id="Microsoft.Data.Edm" version="5.8.4" targetFramework="net461" /> + <package id="Microsoft.Data.OData" version="5.8.4" targetFramework="net461" /> + <package id="Microsoft.Data.Services" version="5.8.4" targetFramework="net461" /> + <package id="Microsoft.Data.Services.Client" version="5.8.4" targetFramework="net461" /> + <package id="System.Spatial" version="5.8.4" targetFramework="net461" /> +</packages> \ No newline at end of file diff --git a/src/Simple.OData.NuGetPackages.Tests/Properties/AssemblyInfo.cs b/src/Simple.OData.NuGetPackages.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..e750981b5 --- /dev/null +++ b/src/Simple.OData.NuGetPackages.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,14 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Xunit; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Simple.OData.Any.Client.Tests")] +[assembly: AssemblyDescription("")] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ea467bb1-0a00-426e-8d34-c3810df7a2e2")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Simple.OData.NuGetPackages.Tests/Simple.OData.NuGetPackages.Tests.csproj b/src/Simple.OData.NuGetPackages.Tests/Simple.OData.NuGetPackages.Tests.csproj new file mode 100644 index 000000000..799ec4479 --- /dev/null +++ b/src/Simple.OData.NuGetPackages.Tests/Simple.OData.NuGetPackages.Tests.csproj @@ -0,0 +1,86 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net452;netstandard2.0</TargetFrameworks> + <GenerateAssemblyInfo>false</GenerateAssemblyInfo> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net452|AnyCPU'"> + <DocumentationFile>Simple.OData.Client.Core.xml</DocumentationFile> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|AnyCPU'"> + <DocumentationFile>Simple.OData.Client.Core.xml</DocumentationFile> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net452|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.CSharp" Version="4.4.1" /> + <PackageReference Include="Microsoft.Net.Test.Sdk" Version="15.7.0" /> + <PackageReference Include="Simple.OData.Client" Version="5.5.0-beta2" /> + <PackageReference Include="xunit" Version="2.3.1" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" /> + <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" /> + </ItemGroup> + <ItemGroup Condition="'$(TargetFramework)' == 'net452'"> + <PackageReference Include="Microsoft.Net.Http" Version="2.2.29" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\CommonAssemblyInfo.cs"> + <Link>Properties\CommonAssemblyInfo.cs</Link> + </Compile> + <Compile Include="..\CommonAssemblyVersion.cs"> + <Link>Properties\CommonAssemblyVersion.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\BatchODataTests.cs"> + <Link>BatchODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\DeleteODataTests.cs"> + <Link>DeleteODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\ErrorODataTests.cs"> + <Link>ErrorODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\FindNorthwindTests.cs"> + <Link>FindNorthwindTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\FindODataTests.cs"> + <Link>FindODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\InsertODataTests.cs"> + <Link>InsertODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\LinkODataTests.cs"> + <Link>LinkODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\MetadataODataTests.cs"> + <Link>MetadataODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\ODataTestBase.cs"> + <Link>ODataTestBase.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\TestBase.cs"> + <Link>TestBase.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\TripPinEntities.cs"> + <Link>TripPinEntities.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\TripPinTestBase.cs"> + <Link>TripPinTestBase.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\TripPinTests.cs"> + <Link>TripPinTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\UpdateODataTests.cs"> + <Link>UpdateODataTests.cs</Link> + </Compile> + <Compile Include="..\Simple.OData.Client.IntegrationTests\WebApiTests.cs"> + <Link>WebApiTests.cs</Link> + </Compile> + </ItemGroup> +</Project> diff --git a/src/Simple.OData.NuGetPackages.Tests/Utils.cs b/src/Simple.OData.NuGetPackages.Tests/Utils.cs new file mode 100644 index 000000000..11befa79b --- /dev/null +++ b/src/Simple.OData.NuGetPackages.Tests/Utils.cs @@ -0,0 +1,48 @@ +using System; +using System.IO; +using System.Text; + +namespace Simple.OData.Client +{ + static class Utils + { + public static string StreamToString(Stream stream, bool disposeStream = false) + { + if (!disposeStream && stream.CanSeek) + stream.Seek(0, SeekOrigin.Begin); + var result = new StreamReader(stream).ReadToEnd(); + if (disposeStream) + stream.Dispose(); + return result; + } + + public static byte[] StreamToByteArray(Stream stream, bool disposeStream = false) + { + if (!disposeStream && stream.CanSeek) + stream.Seek(0, SeekOrigin.Begin); + var bytes = new byte[stream.Length]; + var result = new BinaryReader(stream).ReadBytes(bytes.Length); + if (disposeStream) + stream.Dispose(); + return result; + } + + public static Stream StringToStream(string text) + { + return new MemoryStream(Encoding.UTF8.GetBytes(text)); + } + + public static Stream ByteArrayToStream(byte[] bytes) + { + return new MemoryStream(bytes); + } + + public static Stream CloneStream(Stream stream) + { + stream.Position = 0; + var clonedStream = new MemoryStream(); + stream.CopyTo(clonedStream); + return clonedStream; + } + } +} diff --git a/src/Simple.OData.ProductService/App_Data/ProductServiceContext-20140116193513.mdf b/src/Simple.OData.ProductService/App_Data/ProductServiceContext-20140116193513.mdf new file mode 100644 index 000000000..331ddb498 Binary files /dev/null and b/src/Simple.OData.ProductService/App_Data/ProductServiceContext-20140116193513.mdf differ diff --git a/src/Simple.OData.ProductService/App_Start/WebApiConfig.cs b/src/Simple.OData.ProductService/App_Start/WebApiConfig.cs new file mode 100644 index 000000000..986adbf52 --- /dev/null +++ b/src/Simple.OData.ProductService/App_Start/WebApiConfig.cs @@ -0,0 +1,22 @@ +using System.Web.Http; +using System.Web.Http.OData.Builder; +using Simple.OData.ProductService.Models; +using System.Web.Http.OData.Extensions; + +namespace Simple.OData.ProductService.App_Start; + +public static class WebApiConfig +{ + public static void Register(HttpConfiguration config) + { + var builder = new ODataConventionModelBuilder(); + builder.EntitySet<Product>("Products"); + builder.EntitySet<WorkTaskModel>("WorkTaskModels"); + builder.EntitySet<WorkTaskAttachmentModel>("WorkTaskAttachmentModels"); + builder.EntitySet<WorkActivityReportModel>("WorkActivityReportModels"); + var model = builder.GetEdmModel(); + + config.Routes.MapODataServiceRoute("odata", "odata/open", model); + config.Routes.MapODataServiceRoute("odatas", "odata/secure", model); + } +} diff --git a/src/Simple.OData.ProductService/Authentication/BasicAuthenticationConfigurationSection.cs b/src/Simple.OData.ProductService/Authentication/BasicAuthenticationConfigurationSection.cs new file mode 100644 index 000000000..c51bf44ce --- /dev/null +++ b/src/Simple.OData.ProductService/Authentication/BasicAuthenticationConfigurationSection.cs @@ -0,0 +1,21 @@ +using System.Configuration; + +namespace Devbridge.BasicAuthentication.Configuration; + +public class BasicAuthenticationConfigurationSection : ConfigurationSection +{ + private const string CredentialsNode = "credentials"; + + /// <summary> + /// Gets or sets the credentials. + /// </summary> + /// <value> + /// The credentials. + /// </value> + [ConfigurationProperty(CredentialsNode, IsRequired = false)] + public CredentialElementCollection Credentials + { + get => (CredentialElementCollection)this[CredentialsNode]; + set => this[CredentialsNode] = value; + } +} diff --git a/src/Simple.OData.ProductService/Authentication/BasicAuthenticationModule.cs b/src/Simple.OData.ProductService/Authentication/BasicAuthenticationModule.cs new file mode 100644 index 000000000..bc3e7fc4b --- /dev/null +++ b/src/Simple.OData.ProductService/Authentication/BasicAuthenticationModule.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web; + +namespace Devbridge.BasicAuthentication; + +/// <summary> +/// This module performs basic authentication. +/// For details on basic authentication see RFC 2617. +/// Based on the work by Mike Volodarsky (www.iis.net/learn/develop/runtime-extensibility/developing-a-module-using-net) +/// +/// The basic operational flow is: +/// +/// On AuthenticateRequest: +/// extract the basic authentication credentials +/// verify the credentials +/// if succesfull, create and send authentication cookie +/// +/// On SendResponseHeaders: +/// if there is no authentication cookie in request, clear response, add unauthorized status code (401) and +/// add the basic authentication challenge to trigger basic authentication. +/// </summary> +public class BasicAuthenticationModule : IHttpModule +{ + /// <summary> + /// HTTP1.1 Authorization header + /// </summary> + public const string HttpAuthorizationHeader = "Authorization"; + + /// <summary> + /// HTTP1.1 Basic Challenge Scheme Name + /// </summary> + public const string HttpBasicSchemeName = "Basic"; // + + /// <summary> + /// HTTP1.1 Credential username and password separator + /// </summary> + public const char HttpCredentialSeparator = ':'; + + /// <summary> + /// HTTP1.1 Not authorized response status code + /// </summary> + public const int HttpNotAuthorizedStatusCode = 401; + + /// <summary> + /// HTTP1.1 Basic Challenge Scheme Name + /// </summary> + public const string HttpWwwAuthenticateHeader = "WWW-Authenticate"; + + /// <summary> + /// The name of cookie that is sent to client + /// </summary> + public const string AuthenticationCookieName = "BasicAuthentication"; + + /// <summary> + /// HTTP.1.1 Basic Challenge Realm + /// </summary> + public const string Realm = "ODataIntegration"; + + private IDictionary<string, string> activeUsers; + + public void AuthenticateUser(object source, EventArgs e) + { + var context = ((HttpApplication)source).Context; + + var authorizationHeader = context.Request.Headers[HttpAuthorizationHeader]; + + // Extract the basic authentication credentials from the request + string userName = null; + string password = null; + if (!ExtractBasicCredentials(authorizationHeader, ref userName, ref password)) + { + return; + } + + // Validate the user credentials + if (!ValidateCredentials(userName, password)) + { + return; + } + + // check whether cookie is set and send it to client if needed + var authCookie = context.Request.Cookies.Get(AuthenticationCookieName); + if (authCookie == null) + { + authCookie = new HttpCookie(AuthenticationCookieName, "1") { Expires = DateTime.Now.AddHours(1) }; + context.Response.Cookies.Add(authCookie); + } + } + + public void IssueAuthenticationChallenge(object source, EventArgs e) + { + var context = ((HttpApplication)source).Context; + if (!context.Request.Path.Contains("/secure")) + { + return; + } + + var authorizationHeader = context.Request.Headers[HttpAuthorizationHeader]; + + string userName = null; + string password = null; + if (ExtractBasicCredentials(authorizationHeader, ref userName, ref password) && + ValidateCredentials(userName, password)) + { + return; + } + + // if authentication cookie is not set issue a basic challenge + var authCookie = context.Request.Cookies.Get(AuthenticationCookieName); + if (authCookie == null) + { + //make sure that user is not authencated yet + if (!context.Response.Cookies.AllKeys.Contains(AuthenticationCookieName)) + { + context.Response.Clear(); + context.Response.StatusCode = HttpNotAuthorizedStatusCode; + context.Response.AddHeader(HttpWwwAuthenticateHeader, "Basic realm =\"" + Realm + "\""); + } + } + } + + protected virtual bool ValidateCredentials(string userName, string password) + { + if (activeUsers.ContainsKey(userName) && activeUsers[userName] == password) + { + return true; + } + + return false; + } + + protected virtual bool ExtractBasicCredentials(string authorizationHeader, ref string username, ref string password) + { + if (string.IsNullOrEmpty(authorizationHeader)) + { + return false; + } + + var verifiedAuthorizationHeader = authorizationHeader.Trim(); + if (verifiedAuthorizationHeader.IndexOf(HttpBasicSchemeName, StringComparison.InvariantCultureIgnoreCase) != 0) + { + return false; + } + + // get the credential payload + verifiedAuthorizationHeader = verifiedAuthorizationHeader.Substring(HttpBasicSchemeName.Length, verifiedAuthorizationHeader.Length - HttpBasicSchemeName.Length).Trim(); + // decode the base 64 encoded credential payload + var credentialBase64DecodedArray = Convert.FromBase64String(verifiedAuthorizationHeader); + var decodedAuthorizationHeader = Encoding.UTF8.GetString(credentialBase64DecodedArray, 0, credentialBase64DecodedArray.Length); + + // get the username, password, and realm + var separatorPosition = decodedAuthorizationHeader.IndexOf(HttpCredentialSeparator); + + if (separatorPosition <= 0) + { + return false; + } + + username = decodedAuthorizationHeader.Substring(0, separatorPosition).Trim(); + password = decodedAuthorizationHeader.Substring(separatorPosition + 1, (decodedAuthorizationHeader.Length - separatorPosition - 1)).Trim(); + + if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) + { + return false; + } + + return true; + } + + public void Init(HttpApplication context) + { + var config = System.Configuration.ConfigurationManager.GetSection("basicAuth"); + var basicAuth = (Configuration.BasicAuthenticationConfigurationSection)config; + activeUsers = new Dictionary<string, string>(); + + for (var i = 0; i < basicAuth.Credentials.Count; i++) + { + var credential = basicAuth.Credentials[i]; + activeUsers.Add(credential.UserName, credential.Password); + } + + // Subscribe to the authenticate event to perform the authentication. + context.AuthenticateRequest += AuthenticateUser; + + // Subscribe to the EndRequest event to issue the authentication challenge if necessary. + context.EndRequest += IssueAuthenticationChallenge; + } + + public void Dispose() + { + // Do nothing here + } +} diff --git a/src/Simple.OData.ProductService/Authentication/CredentialElement.cs b/src/Simple.OData.ProductService/Authentication/CredentialElement.cs new file mode 100644 index 000000000..b345a1c9f --- /dev/null +++ b/src/Simple.OData.ProductService/Authentication/CredentialElement.cs @@ -0,0 +1,36 @@ +using System; +using System.Configuration; + +namespace Devbridge.BasicAuthentication.Configuration; + +public class CredentialElement : ConfigurationElement +{ + private const string UserNameAttribute = "username"; + private const string PasswordAttribute = "password"; + + /// <summary> + /// Gets or sets the username. + /// </summary> + /// <value> + /// The user name. + /// </value> + [ConfigurationProperty(UserNameAttribute, IsRequired = true)] + public string UserName + { + get => Convert.ToString(this[UserNameAttribute]); + set => this[UserNameAttribute] = value; + } + + /// <summary> + /// Gets or sets the password. + /// </summary> + /// <value> + /// The password. + /// </value> + [ConfigurationProperty(PasswordAttribute, IsRequired = true)] + public string Password + { + get => Convert.ToString(this[PasswordAttribute]); + set => this[PasswordAttribute] = value; + } +} diff --git a/src/Simple.OData.ProductService/Authentication/CredentialElementCollection.cs b/src/Simple.OData.ProductService/Authentication/CredentialElementCollection.cs new file mode 100644 index 000000000..45a54bcc3 --- /dev/null +++ b/src/Simple.OData.ProductService/Authentication/CredentialElementCollection.cs @@ -0,0 +1,31 @@ +using System.Configuration; + +namespace Devbridge.BasicAuthentication.Configuration; + +[ConfigurationCollection(typeof(CredentialElement), CollectionType = ConfigurationElementCollectionType.BasicMap)] +public class CredentialElementCollection : ConfigurationElementCollection +{ + public CredentialElement this[int index] + { + get => (CredentialElement)BaseGet(index); + set + { + if (BaseGet(index) != null) + { + BaseRemoveAt(index); + } + + BaseAdd(index, value); + } + } + + protected override ConfigurationElement CreateNewElement() + { + return new CredentialElement(); + } + + protected override object GetElementKey(ConfigurationElement element) + { + return ((CredentialElement)element).UserName; + } +} diff --git a/src/Simple.OData.ProductService/Controllers/ProductsController.cs b/src/Simple.OData.ProductService/Controllers/ProductsController.cs new file mode 100644 index 000000000..b5e0e408a --- /dev/null +++ b/src/Simple.OData.ProductService/Controllers/ProductsController.cs @@ -0,0 +1,152 @@ +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Web.Http; +using System.Web.Http.OData; +using Simple.OData.ProductService.Models; + +namespace Simple.OData.ProductService.Controllers; + +/* +To add a route for this controller, merge these statements into the Register method of the WebApiConfig class. Note that OData URLs are case sensitive. + +using System.Web.Http.OData.Builder; +using ProductService.Models; +ODataConventionModelBuilder builder = new ODataConventionModelBuilder(); +builder.EntitySet<Product>("Products"); +config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel()); +*/ +public class ProductsController : ODataController +{ + private readonly ProductServiceContext db = new(); + + + // GET odata/Products + [EnableQuery] + public IQueryable<Product> GetProducts() + { + return db.Products; + } + + // GET odata/Products(5) + [EnableQuery] + public SingleResult<Product> GetProduct([FromODataUri] int key) + { + return SingleResult.Create(db.Products.Where(product => product.ID == key)); + } + + // PUT odata/Products(5) + public IHttpActionResult Put([FromODataUri] int key, Product product) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (key != product.ID) + { + return BadRequest(); + } + + db.Entry(product).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!ProductExists(key)) + { + return NotFound(); + } + else + { + throw; + } + } + + return Updated(product); + } + + // POST odata/Products + public IHttpActionResult Post(Product product) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.Products.Add(product); + db.SaveChanges(); + + return Created(product); + } + + // PATCH odata/Products(5) + [AcceptVerbs("PATCH", "MERGE")] + public IHttpActionResult Patch([FromODataUri] int key, Delta<Product> patch) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + var product = db.Products.Find(key); + if (product == null) + { + return NotFound(); + } + + patch.Patch(product); + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!ProductExists(key)) + { + return NotFound(); + } + else + { + throw; + } + } + + return Updated(product); + } + + // DELETE odata/Products(5) + public IHttpActionResult Delete([FromODataUri] int key) + { + var product = db.Products.Find(key); + if (product == null) + { + return NotFound(); + } + + db.Products.Remove(product); + db.SaveChanges(); + + return StatusCode(HttpStatusCode.NoContent); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + + base.Dispose(disposing); + } + + private bool ProductExists(int key) + { + return db.Products.Count(e => e.ID == key) > 0; + } +} diff --git a/src/Simple.OData.ProductService/Controllers/WorkTaskModelsController.cs b/src/Simple.OData.ProductService/Controllers/WorkTaskModelsController.cs new file mode 100644 index 000000000..bb466d57c --- /dev/null +++ b/src/Simple.OData.ProductService/Controllers/WorkTaskModelsController.cs @@ -0,0 +1,145 @@ +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Web.Http; +using System.Web.Http.OData; +using Simple.OData.ProductService.Models; + +namespace Simple.OData.ProductService.Controllers; + +public class WorkTaskModelsController : ODataController +{ + private readonly ProductServiceContext db = new(); + + + // GET odata/WorkTaskModels + [EnableQuery] + public IQueryable<WorkTaskModel> GetWorkTaskModels() + { + return db.WorkTaskModels; + } + + // GET odata/WorkTaskModels(5) + [EnableQuery] + public SingleResult<WorkTaskModel> GetWorkTaskModel([FromODataUri] Guid key) + { + return SingleResult.Create(db.WorkTaskModels.Where(workTaskModel => workTaskModel.Id == key)); + } + + // PUT odata/WorkTaskModels(5) + public IHttpActionResult Put([FromODataUri] Guid key, WorkTaskModel workTaskModel) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (key != workTaskModel.Id) + { + return BadRequest(); + } + + db.Entry(workTaskModel).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!WorkTaskModelExists(key)) + { + return NotFound(); + } + else + { + throw; + } + } + + return Updated(workTaskModel); + } + + // POST odata/WorkTaskModels + public IHttpActionResult Post(WorkTaskModel workTaskModel) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.WorkTaskModels.Add(workTaskModel); + db.SaveChanges(); + + return Created(workTaskModel); + } + + // PATCH odata/WorkTaskModels(5) + [AcceptVerbs("PATCH", "MERGE")] + public IHttpActionResult Patch([FromODataUri] Guid key, Delta<WorkTaskModel> patch) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + var workTaskModel = db.WorkTaskModels.Find(key); + if (workTaskModel == null) + { + return NotFound(); + } + + patch.Patch(workTaskModel); + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!WorkTaskModelExists(key)) + { + return NotFound(); + } + else + { + throw; + } + } + + return Updated(workTaskModel); + } + + // DELETE odata/WorkTaskModels(5) + public IHttpActionResult Delete([FromODataUri] Guid key) + { + var workTaskModel = db.WorkTaskModels.Find(key); + if (workTaskModel == null) + { + return NotFound(); + } + + db.WorkTaskModels.Remove(workTaskModel); + db.SaveChanges(); + + return StatusCode(HttpStatusCode.NoContent); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + + base.Dispose(disposing); + } + + private bool WorkTaskModelExists(Guid key) + { + return db.WorkTaskModels.Count(e => e.Id == key) > 0; + } + +} diff --git a/src/Simple.OData.ProductService/Global.asax b/src/Simple.OData.ProductService/Global.asax new file mode 100644 index 000000000..c165ceb9b --- /dev/null +++ b/src/Simple.OData.ProductService/Global.asax @@ -0,0 +1 @@ +<%@ Application Codebehind="Global.asax.cs" Inherits="Simple.OData.ProductService.WebApiApplication" Language="C#" %> diff --git a/src/Simple.OData.ProductService/Global.asax.cs b/src/Simple.OData.ProductService/Global.asax.cs new file mode 100644 index 000000000..4b0cf96a8 --- /dev/null +++ b/src/Simple.OData.ProductService/Global.asax.cs @@ -0,0 +1,12 @@ +using System.Web.Http; +using Simple.OData.ProductService.App_Start; + +namespace Simple.OData.ProductService; + +public class WebApiApplication : System.Web.HttpApplication +{ + protected void Application_Start() + { + GlobalConfiguration.Configure(WebApiConfig.Register); + } +} diff --git a/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.Designer.cs b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.Designer.cs new file mode 100644 index 000000000..b832099df --- /dev/null +++ b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.Designer.cs @@ -0,0 +1,29 @@ +// <auto-generated /> +namespace Simple.OData.ProductService.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.0.0-20911")] + public sealed partial class Initial : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(Initial)); + + string IMigrationMetadata.Id + { + get { return "201401161840343_Initial"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.cs b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.cs new file mode 100644 index 000000000..e9d9126d9 --- /dev/null +++ b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.cs @@ -0,0 +1,83 @@ +namespace Simple.OData.ProductService.Migrations; + +using System.Data.Entity.Migrations; + +public partial class Initial : DbMigration +{ + public override void Up() + { + CreateTable( + "dbo.Products", + c => new + { + ID = c.Int(nullable: false, identity: true), + Name = c.String(), + Price = c.Decimal(nullable: false, precision: 18, scale: 2), + Category = c.String(), + }) + .PrimaryKey(t => t.ID); + + CreateTable( + "dbo.WorkTaskModels", + c => new + { + Id = c.Guid(nullable: false), + Code = c.String(), + StartDate = c.DateTime(nullable: false), + EndDate = c.DateTime(nullable: false), + State = c.Guid(nullable: false), + Location_Latitude = c.Double(nullable: false), + Location_Longitude = c.Double(nullable: false), + WorkerId = c.Guid(nullable: false), + CustomerId = c.Guid(nullable: false), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "dbo.WorkTaskAttachmentModels", + c => new + { + Id = c.Guid(nullable: false), + Type = c.Guid(nullable: false), + FileName = c.String(), + WorkTaskId = c.Guid(nullable: false), + WorkTaskModel_Id = c.Guid(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.WorkTaskModels", t => t.WorkTaskModel_Id) + .Index(t => t.WorkTaskModel_Id); + + CreateTable( + "dbo.WorkActivityReportModels", + c => new + { + Id = c.Guid(nullable: false), + Code = c.String(), + StartDate = c.DateTime(nullable: false), + EndDate = c.DateTime(nullable: false), + Description = c.String(), + Type = c.Guid(nullable: false), + Location_Latitude = c.Double(nullable: false), + Location_Longitude = c.Double(nullable: false), + WorkTaskId = c.Guid(nullable: false), + WorkerId = c.Guid(nullable: false), + WorkTaskModel_Id = c.Guid(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.WorkTaskModels", t => t.WorkTaskModel_Id) + .Index(t => t.WorkTaskModel_Id); + + } + + public override void Down() + { + DropForeignKey("dbo.WorkActivityReportModels", "WorkTaskModel_Id", "dbo.WorkTaskModels"); + DropForeignKey("dbo.WorkTaskAttachmentModels", "WorkTaskModel_Id", "dbo.WorkTaskModels"); + DropIndex("dbo.WorkActivityReportModels", new[] { "WorkTaskModel_Id" }); + DropIndex("dbo.WorkTaskAttachmentModels", new[] { "WorkTaskModel_Id" }); + DropTable("dbo.WorkActivityReportModels"); + DropTable("dbo.WorkTaskAttachmentModels"); + DropTable("dbo.WorkTaskModels"); + DropTable("dbo.Products"); + } +} diff --git a/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.resx b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.resx new file mode 100644 index 000000000..69fdcf96f --- /dev/null +++ b/src/Simple.OData.ProductService/Migrations/201401161840343_Initial.resx @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="Target" xml:space="preserve"> + <value>H4sIAAAAAAAEAO1b3W7bNhS+H7B3EHS1DaiVpDddYbfIkqYI1vwgSrvLgpFoh6gkqhRlOM/Wiz3SXmGH+qUoSqIsu3C23gQyRX48fzwkj7788+3v+dtNGFhrzBJCo4V9PDuyLRx51CfRamGnfPnilf32zc8/zd/54cb6VPZ7KfrByChZ2I+cx68dJ/EecYiSWUg8RhO65DOPhg7yqXNydPS7c3zsYICwAcuy5ndpxEmIsx/w84xGHo55ioIr6uMgKdrhjZuhWtcoxEmMPLywXRLGAZ7dnCOOZreM+qnHXczWxMOzfLRtnQYEgWQuDpa2haKIcsRB7tcfE+xyRqOVG0MDCu6fYgz9lihIcKHP67q7qWpHJ0I1px64lWnsSunMIELJjZAv031hv8f0A/Uy+ExLuTsMAEPEmPGnovcH6MhTH5QSEAv7nKYPAfy6ToMAwVOls9MPA6YajzN3JPHl9nfgdP4kKVW4T9HlT/zUaJDkusPLYujleUt4Rx2oqiPG5HpcRvzliUYNKVZcThl+jyPMEMf+LeIcMwiJSx9nWgyZTvwtZ4OYg+VkW1do8wFHK/64sOHRti7IBvtlSyHBx4jA6oNBnKWD/rllEPWVb7BHQhTY1i2Dp2I9v7It10NCQ526/ehnoPiKsqcdqzF36jjojY6/KPtyj5Ivung3ixF/ixjxS3Xfp8QfbzPq79/tLkeMQ/6rXQ/P9yQcv8DfRf5OcECiGmUrw5XJrTIe5O5ZK+mNRRUhhNlUn6YJp+F4mGu0JqtMeAXwlHPkPYaQSGCvusNB1id5JHGhdiPwPzd6XzAa3tFAXR1yp88uTVmWFuhQz3vEVpibCy6QTj1O1kQss5gyIwW0o7oU0XQeUEg3QqfY6LxTW+o5ZSAxdBLABQnwd9m9SjuPUniUF5th8Zy8+D/dR85x4jESNzaCfWk/eaHsb8savSp2svN1La3TJKEeyVTSncwaG1RTJggLy3i3qm3YPPhZV2nASRwQD2Rb2Eez2XFLeZOJyj1BM5Ga6ZUpf1PtJFlkjKF0G6GZHr274j4M17epKhPqkuyWBszj74xGHBG4eDVvicUlX7zFG/XOmI90MW+OgYNGHdOFzOWls22KJkTDIDogxdqGcEqs9QG3wtJgCo03uqbQOk6ZQnJUh2Wa51Op/+BhVt14x2SLSvW2n5xtcMvY1uC2HaaeBZpGGm1A7fl4yJCDuWTLbLILw/YlDwVfH67GBi63rCpl1JVDJy8dliVGp6PGOL9CcQwHDKnmWLRYbl5wPHvhji/ohTmG4zW8oia4aiZOGVph5W1+CrwgLBGHNPSAxIZ95oetbqMSZDmnkifbvi0zRjlAPBfnxsESbJVkFdjauhegsFhTme5YiorOkVk1GAWIaap6ZzRIw6irMtg3Or/pyOPzFnOEoggnQxRN5hh1qU2GqVvbSHNHMaTqQKflQWVRqRFhFC9KTthx1PRU/IxiZ2B8ZwT5SgS17nu9vsuuag2/ZS3mCNI9TIaRms2xqpuYjFQ1jpJJI08nRlHx770hGYdB/7eOfrnrLx+y6CXc5/q1To1O0Po7iB61fq+1jqOYx9gL9S1OnrduHRGlUhGzEatS+8FlmdbRa0/5prfSl01kmnkGkfaTg/Jahjw+bzFHqKt+Mkrdao4kFzDUqC3bDyrStGfQPUTaYDXSONKMkH7sduY4jbqjjNV4saf1+GPv3NveOT4P7W4n3ndGa16Ke47pzQrN9gfyJs6WO6AoGnQ4qrPa0zatUWJr4uqcJEzsdwTWKEGL6saWgo4WDa74PsnKzJeJKOlX5fwx6qtllYlBpq1iTQg2Ld6Wm+GgL3sqYocZfD0ltv9YELZKfGqXKs9WpT6lpDcvymvD3MJWvS3vIihVdE18UWtznxKOw1kWxu7X4CwgkADqDlcoIkuc8Hv6BUcL++To+EShI25BDXSSxA80dcRDYNIRof0gV27kx0uZfhCtEfMeEfslRJtfZaTRBDl/3wS5EaI+FxJcGpGvKSaZI5cEs0lEhkmubJEVfHjmOyArbI3TIL1NNpTmmJ0jLwOK+AQ4lcO7HZ7KJ5geGC1W3UjI58fnmmwzmbIyGUzleU1anW3WymT52keHYeCJifYg+GI/Um43joYfNknDnS6oZ5DB97BEd7op7HfN75zItnPyVYvxM5msBtNAYsJMWA4FcIlKOINrVKsYBSflyCMxCrR6tu+UJllPeKLCVd+c4xhHwqEDJjCZ2uSyXc2nJOYh63x/tt9Oo0pL8prM4HtWUWX23eVAokpPgWwTgTq+binlgB72Y17agL34gUJA5Km0Zk2O4UYOUyN1c/Wzy0zpk2PYk31SDJL8DLmWY6iWXfIYceIOgJjZTRY04gp2eLL3Y8Jzp15OMFlPsPWWwvdCpmxXVCHlSf/TDXk4IasaQhSLI+w1kl3V5zJa0jL7KhKVXZRj4hXmCO4Q6JTBcRB5HF57OEmy/xP5hIJU3DjCB+xfRjcpj1MOKuPwIWgQ6UTu7ps/Y4w2ZZ7fZDePZBcqgJhEXINuoj9SEviV3BeaQkcHhNgUiqKr8CUXxdfVU4V0TSNDoMJ81V52j8M4ALDkJnLRGnfLNmzDpsXm5wStGAqTAqMeDz8h/Pxw8+Zfbi36zJVAAAA=</value> + </data> + <data name="DefaultSchema" xml:space="preserve"> + <value>dbo</value> + </data> +</root> \ No newline at end of file diff --git a/src/Simple.OData.ProductService/Migrations/Configuration.cs b/src/Simple.OData.ProductService/Migrations/Configuration.cs new file mode 100644 index 000000000..067a6c9ef --- /dev/null +++ b/src/Simple.OData.ProductService/Migrations/Configuration.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Data.Entity.Migrations; +using Simple.OData.ProductService.Models; + +namespace Simple.OData.ProductService.Migrations; + +internal sealed class Configuration : DbMigrationsConfiguration<ProductServiceContext> +{ + public Configuration() + { + AutomaticMigrationsEnabled = false; + } + + protected override void Seed(global::Simple.OData.ProductService.Models.ProductServiceContext context) + { + // New code + context.Products.AddOrUpdate(new Product[] { + new Product() { ID = 1, Name = "Hat", Price = 15, Category = "Apparel" }, + new Product() { ID = 2, Name = "Socks", Price = 5, Category = "Apparel" }, + new Product() { ID = 3, Name = "Scarf", Price = 12, Category = "Apparel" }, + new Product() { ID = 4, Name = "Yo-yo", Price = 4.95M, Category = "Toys" }, + new Product() { ID = 5, Name = "Puzzle", Price = 8, Category = "Toys" }, + }); + + context.WorkTaskModels.AddOrUpdate(new WorkTaskModel[] + { + new WorkTaskModel() + { + Id = Guid.NewGuid(), + Code = "TaskCode", + StartDate = DateTime.Now.AddDays(-1), + EndDate = DateTime.Now.AddDays(-1), + Location = new GeoLocationModel() { Longitude = 1, Latitude = 2 }, + Attachments = new List<WorkTaskAttachmentModel>(), + WorkActivityReports = new List<WorkActivityReportModel>(), + } + }); + } +} diff --git a/src/Simple.OData.ProductService/Models/BaseModel.cs b/src/Simple.OData.ProductService/Models/BaseModel.cs new file mode 100644 index 000000000..9b97c244c --- /dev/null +++ b/src/Simple.OData.ProductService/Models/BaseModel.cs @@ -0,0 +1,9 @@ +using System; + +// ReSharper disable CheckNamespace +namespace Simple.OData.ProductService.Models; + +public abstract class BaseModel +{ + public Guid Id { get; set; } +} diff --git a/src/Simple.OData.ProductService/Models/GeoLocationModel.cs b/src/Simple.OData.ProductService/Models/GeoLocationModel.cs new file mode 100644 index 000000000..1b3a1d9b5 --- /dev/null +++ b/src/Simple.OData.ProductService/Models/GeoLocationModel.cs @@ -0,0 +1,8 @@ +// ReSharper disable CheckNamespace +namespace Simple.OData.ProductService.Models; + +public class GeoLocationModel +{ + public double Latitude { get; set; } + public double Longitude { get; set; } +} diff --git a/src/Simple.OData.ProductService/Models/Product.cs b/src/Simple.OData.ProductService/Models/Product.cs new file mode 100644 index 000000000..003ec48b1 --- /dev/null +++ b/src/Simple.OData.ProductService/Models/Product.cs @@ -0,0 +1,9 @@ +namespace Simple.OData.ProductService.Models; + +public class Product +{ + public int ID { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + public string Category { get; set; } +} diff --git a/src/Simple.OData.ProductService/Models/ProductServiceContext.cs b/src/Simple.OData.ProductService/Models/ProductServiceContext.cs new file mode 100644 index 000000000..7b78eb1c7 --- /dev/null +++ b/src/Simple.OData.ProductService/Models/ProductServiceContext.cs @@ -0,0 +1,24 @@ +using System.Data.Entity; + +namespace Simple.OData.ProductService.Models; + +public class ProductServiceContext : DbContext +{ + // You can add custom code to this file. Changes will not be overwritten. + // + // If you want Entity Framework to drop and regenerate your database + // automatically whenever you change your model schema, please use data migrations. + // For more information refer to the documentation: + // http://msdn.microsoft.com/en-us/data/jj591621.aspx + + public ProductServiceContext() + : base("name=DefaultConnection") + { + } + + public System.Data.Entity.DbSet<Product> Products { get; set; } + public System.Data.Entity.DbSet<WorkTaskModel> WorkTaskModels { get; set; } + public System.Data.Entity.DbSet<WorkTaskAttachmentModel> WorkTaskAttachmentModels { get; set; } + public System.Data.Entity.DbSet<WorkActivityReportModel> WorkActivityReportModels { get; set; } + +} diff --git a/src/Simple.OData.ProductService/Models/WorkActivityReportModel.cs b/src/Simple.OData.ProductService/Models/WorkActivityReportModel.cs new file mode 100644 index 000000000..d4fe2dbee --- /dev/null +++ b/src/Simple.OData.ProductService/Models/WorkActivityReportModel.cs @@ -0,0 +1,16 @@ +using System; + +// ReSharper disable CheckNamespace +namespace Simple.OData.ProductService.Models; + +public class WorkActivityReportModel : BaseModel +{ + public string Code { get; set; } + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + public string Description { get; set; } + public Guid Type { get; set; } + public GeoLocationModel Location { get; set; } + public Guid WorkTaskId { get; set; } + public Guid WorkerId { get; set; } +} diff --git a/src/Simple.OData.ProductService/Models/WorkTaskAttachmentModel.cs b/src/Simple.OData.ProductService/Models/WorkTaskAttachmentModel.cs new file mode 100644 index 000000000..c01a1f890 --- /dev/null +++ b/src/Simple.OData.ProductService/Models/WorkTaskAttachmentModel.cs @@ -0,0 +1,11 @@ +using System; + +// ReSharper disable CheckNamespace +namespace Simple.OData.ProductService.Models; + +public class WorkTaskAttachmentModel : BaseModel +{ + public Guid Type { get; set; } + public string FileName { get; set; } + public Guid WorkTaskId { get; set; } +} diff --git a/src/Simple.OData.ProductService/Models/WorkTaskModel.cs b/src/Simple.OData.ProductService/Models/WorkTaskModel.cs new file mode 100644 index 000000000..9a9cdbbc2 --- /dev/null +++ b/src/Simple.OData.ProductService/Models/WorkTaskModel.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +// ReSharper disable CheckNamespace +namespace Simple.OData.ProductService.Models; + +public class WorkTaskModel : BaseModel +{ + public WorkTaskModel() + { + Attachments = new List<WorkTaskAttachmentModel>(); + WorkActivityReports = new List<WorkActivityReportModel>(); + } + + public string Code { get; set; } + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + public Guid State { get; set; } + public GeoLocationModel Location { get; set; } + public Guid WorkerId { get; set; } + public Guid CustomerId { get; set; } + public List<WorkTaskAttachmentModel> Attachments { get; set; } + public List<WorkActivityReportModel> WorkActivityReports { get; set; } + +} diff --git a/src/Simple.OData.ProductService/Simple.OData.ProductService.csproj b/src/Simple.OData.ProductService/Simple.OData.ProductService.csproj new file mode 100644 index 000000000..8b1cc43fd --- /dev/null +++ b/src/Simple.OData.ProductService/Simple.OData.ProductService.csproj @@ -0,0 +1,29 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>Simple.OData.ProductService</RootNamespace> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="EntityFramework" Version="6.4.4" /> + <PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" /> + <PackageReference Include="Microsoft.AspNet.WebApi.OData" Version="5.7.0" /> + <PackageReference Include="Microsoft.AspNet.WebApi.WebHost" Version="5.2.7" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System.Configuration" /> + <Reference Include="System.Web" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> diff --git a/src/Simple.OData.ProductService/Web.Debug.config b/src/Simple.OData.ProductService/Web.Debug.config new file mode 100644 index 000000000..2e302f9f9 --- /dev/null +++ b/src/Simple.OData.ProductService/Web.Debug.config @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> + +<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <!-- + In the example below, the "SetAttributes" transform will change the value of + "connectionString" to use "ReleaseSQLServer" only when the "Match" locator + finds an attribute "name" that has a value of "MyDB". + + <connectionStrings> + <add name="MyDB" + connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" + xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> + </connectionStrings> + --> + <system.web> + <!-- + In the example below, the "Replace" transform will replace the entire + <customErrors> section of your web.config file. + Note that because there is only one customErrors section under the + <system.web> node, there is no need to use the "xdt:Locator" attribute. + + <customErrors defaultRedirect="GenericError.htm" + mode="RemoteOnly" xdt:Transform="Replace"> + <error statusCode="500" redirect="InternalError.htm"/> + </customErrors> + --> + </system.web> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.ProductService/Web.Release.config b/src/Simple.OData.ProductService/Web.Release.config new file mode 100644 index 000000000..c35844462 --- /dev/null +++ b/src/Simple.OData.ProductService/Web.Release.config @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> + +<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <!-- + In the example below, the "SetAttributes" transform will change the value of + "connectionString" to use "ReleaseSQLServer" only when the "Match" locator + finds an attribute "name" that has a value of "MyDB". + + <connectionStrings> + <add name="MyDB" + connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" + xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> + </connectionStrings> + --> + <system.web> + <compilation xdt:Transform="RemoveAttributes(debug)" /> + <!-- + In the example below, the "Replace" transform will replace the entire + <customErrors> section of your web.config file. + Note that because there is only one customErrors section under the + <system.web> node, there is no need to use the "xdt:Locator" attribute. + + <customErrors defaultRedirect="GenericError.htm" + mode="RemoteOnly" xdt:Transform="Replace"> + <error statusCode="500" redirect="InternalError.htm"/> + </customErrors> + --> + </system.web> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.ProductService/Web.config b/src/Simple.OData.ProductService/Web.config new file mode 100644 index 000000000..1230a47eb --- /dev/null +++ b/src/Simple.OData.ProductService/Web.config @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + For more information on how to configure your ASP.NET application, please visit + http://go.microsoft.com/fwlink/?LinkId=301879 + --> +<configuration> + <configSections> + <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> + <section name="basicAuth" type="Devbridge.BasicAuthentication.Configuration.BasicAuthenticationConfigurationSection" /> + <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> + </configSections> + <connectionStrings> + <add name="DefaultConnection" connectionString="{ODATA_INTEGRATION}" providerName="System.Data.SqlClient" /> + </connectionStrings> + <appSettings /> + <basicAuth configSource="basicAuthentication.config" /> + <!-- + For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367. + + The following attributes can be set on the <httpRuntime> tag. + <system.Web> + <httpRuntime targetFramework="4.5.2" /> + </system.Web> + --> + <system.web> + <compilation debug="true" targetFramework="4.5.2"> + <assemblies> + </assemblies> + </compilation> + <httpRuntime targetFramework="4.5" /> + </system.web> + <system.webServer> + <modules> + <add name="MyBasicAuthenticationModule" type="Devbridge.BasicAuthentication.BasicAuthenticationModule" /> + </modules> + <handlers> + <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> + <remove name="OPTIONSVerbHandler" /> + <remove name="TRACEVerbHandler" /> + <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> + </handlers> + </system.webServer> + <entityFramework> + <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> + <parameters> + <parameter value="MSSQLLocalDB" /> + </parameters> + </defaultConnectionFactory> + <providers> + <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> + </providers> + </entityFramework> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> \ No newline at end of file diff --git a/src/Simple.OData.ProductService/basicAuthentication.config b/src/Simple.OData.ProductService/basicAuthentication.config new file mode 100644 index 000000000..8773ab9a8 --- /dev/null +++ b/src/Simple.OData.ProductService/basicAuthentication.config @@ -0,0 +1,5 @@ +<basicAuth> + <credentials> + <add username="tester" password="tester123"/> + </credentials> +</basicAuth> diff --git a/src/Simple.OData.ProductService/packages.config b/src/Simple.OData.ProductService/packages.config new file mode 100644 index 000000000..6485741bd --- /dev/null +++ b/src/Simple.OData.ProductService/packages.config @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="EntityFramework" version="6.2.0" targetFramework="net461" /> + <package id="Microsoft.AspNet.WebApi" version="5.2.6" targetFramework="net461" /> + <package id="Microsoft.AspNet.WebApi.Client" version="5.2.6" targetFramework="net461" /> + <package id="Microsoft.AspNet.WebApi.Core" version="5.2.6" targetFramework="net461" /> + <package id="Microsoft.AspNet.WebApi.OData" version="5.7.0" targetFramework="net461" /> + <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.6" targetFramework="net461" /> + <package id="Microsoft.Data.Edm" version="5.8.4" targetFramework="net461" /> + <package id="Microsoft.Data.OData" version="5.8.4" targetFramework="net461" /> + <package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" /> + <package id="System.Spatial" version="5.8.4" targetFramework="net461" /> +</packages> \ No newline at end of file diff --git a/src/WebApiOData.V3.Samples.Tests/ActionV3Tests.cs b/src/WebApiOData.V3.Samples.Tests/ActionV3Tests.cs new file mode 100644 index 000000000..a58c778a0 --- /dev/null +++ b/src/WebApiOData.V3.Samples.Tests/ActionV3Tests.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +#if NET461 && !MOCK_HTTP +using Microsoft.Owin.Testing; +#endif +using Xunit; +using Simple.OData.Client; +using Simple.OData.Client.Tests; +using WebApiOData.V3.Samples.Models; + +namespace WebApiOData.V3.Samples.Tests; + +public class ActionV3Tests : IDisposable +{ +#if NET461 && !MOCK_HTTP + private readonly TestServer _server; + + public ActionV3Tests() + { + _server = TestServer.Create<Startup>(); + } + + public void Dispose() + { + _server.Dispose(); + } +#else + public void Dispose() + { + GC.SuppressFinalize(this); + } +#endif + + private static ODataClientSettings CreateDefaultSettings() + { + return new ODataClientSettings() + { + BaseUri = new Uri("http://localhost/actions"), + MetadataDocument = GetMetadataDocument(), + PayloadFormat = ODataPayloadFormat.Json, +#if NET461 && !MOCK_HTTP + OnCreateMessageHandler = () => _server.Handler, +#endif + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + }; + } + + private static string GetMetadataDocument() + { +#if MOCK_HTTP + return MetadataResolver.GetMetadataDocument("Metadata.xml"); +#else + return null; +#endif + + } + + [Fact] + public async Task Check_out_a_movie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var isCheckedOut = false; + Movie result = null; + try + { + result = await client + .For<Movie>() + .Key(1) + .Action("CheckOut") + .ExecuteAsSingleAsync(); + } + catch (WebRequestException) + { + isCheckedOut = true; + } + + if (isCheckedOut) + { + await client + .For<Movie>() + .Key(1) + .Action("Return") + .ExecuteAsSingleAsync(); + + result = await client + .For<Movie>() + .Key(1) + .Action("CheckOut") + .ExecuteAsSingleAsync(); + } + + Assert.Equal(1, result.ID); + } + + [Fact] + public async Task Return_a_movie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Movie>() + .Key(1) + .Action("Return") + .ExecuteAsSingleAsync(); + + Assert.Equal(1, result.ID); + } + + [Fact] + public async Task Check_out_several() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Movie>() + .Action("CheckOutMany") + .Set(new Dictionary<string, object>() { { "MovieIDs", new[] { 1, 2, 3 } } }) + .ExecuteAsEnumerableAsync(); + + Assert.True(result.Count() > 1); + } + + [Fact] + public async Task CreateMovie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var guid = new Guid("6B968CA9-4822-49EE-90BD-0439AAA48E9A"); + var result = await client + .Unbound<Movie>() + .Action("CreateMovie") + .Set(new { Title = guid.ToString() }) + .ExecuteAsSingleAsync(); + + Assert.True(result.ID > 0); + } + + [Fact] + public async Task CreateMovie_batch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var guid = new Guid("2C44053F-6790-4221-934E-BA214DFEB643"); + Movie result = null; + var batch = new ODataBatch(client); + batch += async c => result = await c + .Unbound<Movie>() + .Action("CreateMovie") + .Set(new { Title = guid.ToString() }) + .ExecuteAsSingleAsync(); + await batch.ExecuteAsync(); + + Assert.True(result.ID > 0); + } +} diff --git a/src/WebApiOData.V3.Samples.Tests/Resources/Metadata.xml b/src/WebApiOData.V3.Samples.Tests/Resources/Metadata.xml new file mode 100644 index 000000000..d5a4d0198 --- /dev/null +++ b/src/WebApiOData.V3.Samples.Tests/Resources/Metadata.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"> + <edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> + <Schema Namespace="WebApiOData.V3.Samples.Models" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"> + <EntityType Name="Movie"> + <Key> + <PropertyRef Name="ID" /> + </Key> + <Property Name="ID" Type="Edm.Int32" Nullable="false" /> + <Property Name="Title" Type="Edm.String" /> + <Property Name="Year" Type="Edm.Int32" Nullable="false" /> + <Property Name="DueDate" Type="Edm.DateTime" /> + </EntityType> + </Schema> + <Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"> + <EntityContainer Name="Container" m:IsDefaultEntityContainer="true"> + <EntitySet Name="Movies" EntityType="WebApiOData.V3.Samples.Models.Movie" /> + <FunctionImport Name="CheckOut" ReturnType="WebApiOData.V3.Samples.Models.Movie" IsBindable="true" EntitySet="Movies"> + <Parameter Name="bindingParameter" Type="WebApiOData.V3.Samples.Models.Movie" /> + </FunctionImport> + <FunctionImport Name="Return" ReturnType="WebApiOData.V3.Samples.Models.Movie" IsBindable="true" EntitySet="Movies" m:IsAlwaysBindable="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V3.Samples.Models.Movie" /> + </FunctionImport> + <FunctionImport Name="SetDueDate" ReturnType="WebApiOData.V3.Samples.Models.Movie" IsBindable="true" EntitySet="Movies" m:IsAlwaysBindable="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V3.Samples.Models.Movie" /> + <Parameter Name="DueDate" Type="Edm.DateTime" Nullable="false" /> + </FunctionImport> + <FunctionImport Name="CheckOut" ReturnType="Collection(WebApiOData.V3.Samples.Models.Movie)" IsBindable="true" EntitySet="Movies" m:IsAlwaysBindable="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V3.Samples.Models.Movie)" Nullable="false" /> + </FunctionImport> + <FunctionImport Name="CheckOutMany" ReturnType="Collection(WebApiOData.V3.Samples.Models.Movie)" IsBindable="true" EntitySet="Movies" m:IsAlwaysBindable="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V3.Samples.Models.Movie)" Nullable="false" /> + <Parameter Name="MovieIDs" Type="Collection(Edm.Int32)" Nullable="false" /> + </FunctionImport> + <FunctionImport Name="CreateMovie" ReturnType="WebApiOData.V3.Samples.Models.Movie" EntitySet="Movies"> + <Parameter Name="Title" Type="Edm.String" FixedLength="false" Unicode="false" /> + </FunctionImport> + </EntityContainer> + </Schema> + </edmx:DataServices> +</edmx:Edmx> \ No newline at end of file diff --git a/src/WebApiOData.V3.Samples.Tests/WebApiOData.V3.Samples.Tests.csproj b/src/WebApiOData.V3.Samples.Tests/WebApiOData.V3.Samples.Tests.csproj new file mode 100644 index 000000000..d8d1d5e19 --- /dev/null +++ b/src/WebApiOData.V3.Samples.Tests/WebApiOData.V3.Samples.Tests.csproj @@ -0,0 +1,69 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net6.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>Simple.OData.Client.Tests</RootNamespace> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <None Remove="Resources\Metadata.xml" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> + <PackageReference Include="Microsoft.Net.Test.Sdk" Version="17.0.0" /> + <PackageReference Include="xunit" Version="2.4.1" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" /> + </ItemGroup> + <ItemGroup Condition="'$(TargetFramework)'=='net461'"> + <PackageReference Include="Microsoft.Owin.Hosting" Version="4.0.0" /> + <PackageReference Include="Microsoft.Owin.Testing" Version="4.0.0" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\Simple.OData.Client.UnitTests\MetadataResolver.cs" Link="MetadataResolver.cs" /> + <Compile Include="..\Simple.OData.Client.UnitTests\MockingRequestExecutor.cs" Link="MockingRequestExecutor.cs" /> + <Compile Include="..\WebApiOData.V3.Samples\Models\Movie.cs" Link="Movie.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Resources\Metadata.xml" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Simple.OData.Client.Core\Simple.OData.Client.Core.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <ProjectReference Include="..\WebApiOData.V3.Samples\WebApiOData.V3.Samples.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <ProjectReference Include="..\WebApiOData.V3.Samples\WebApiOData.V3.Samples.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/WebApiOData.V3.Samples/App_Data/ODataActionsSample.Models.MoviesContext.mdf b/src/WebApiOData.V3.Samples/App_Data/ODataActionsSample.Models.MoviesContext.mdf new file mode 100644 index 000000000..903ae0605 Binary files /dev/null and b/src/WebApiOData.V3.Samples/App_Data/ODataActionsSample.Models.MoviesContext.mdf differ diff --git a/src/WebApiOData.V3.Samples/Controllers/MoviesController.cs b/src/WebApiOData.V3.Samples/Controllers/MoviesController.cs new file mode 100644 index 000000000..b6fbf429d --- /dev/null +++ b/src/WebApiOData.V3.Samples/Controllers/MoviesController.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Web.Http; +using System.Web.Http.OData; +using System.Web.Http.OData.Query; +using WebApiOData.V3.Samples.Models; + +namespace WebApiOData.V3.Samples.Controllers; + +public class MoviesController : EntitySetController<Movie, int> +{ + private readonly MoviesContext db = new(); + + private static bool TryCheckoutMovie(Movie movie) + { + if (movie.IsCheckedOut) + { + return false; + } + else + { + // To check out a movie, set the due date. + movie.DueDate = DateTime.Now.AddDays(7); + return true; + } + } + + // + public override IQueryable<Movie> Get() + { + return db.Movies; + } + + protected override Movie GetEntityByKey(int key) + { + return db.Movies.Find(key); + } + + #region Action methods + + [HttpPost] + public Movie CheckOut([FromODataUri] int key) + { + var movie = GetEntityByKey(key); + if (movie == null) + { + throw new HttpResponseException(HttpStatusCode.NotFound); + } + + if (!TryCheckoutMovie(movie)) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + return movie; + } + + [HttpPost] + public Movie Return([FromODataUri] int key) + { + var movie = GetEntityByKey(key); + if (movie == null) + { + throw new HttpResponseException(HttpStatusCode.NotFound); + } + + movie.DueDate = null; + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + return movie; + } + + [HttpPost] + public Movie SetDueDate([FromODataUri] int key, ODataActionParameters parameters) + { + if (!ModelState.IsValid) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + var movie = GetEntityByKey(key); + if (movie == null) + { + throw new HttpResponseException(HttpStatusCode.NotFound); + } + + movie.DueDate = (DateTime)parameters["DueDate"]; + // In a real app you would validate this date (not in the past, etc). + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + return movie; + } + + // Check out a list of movies. + [HttpPost] + public ICollection<Movie> CheckOutMany(ODataActionParameters parameters) + { + if (!ModelState.IsValid) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + // Client passes a list of movie IDs to check out. + var movieIDs = new HashSet<int>(parameters["MovieIDs"] as IEnumerable<int>); + + // Try to check out each movie in the list. + var results = new List<Movie>(); + foreach (var movie in db.Movies.Where(m => movieIDs.Contains(m.ID))) + { + if (TryCheckoutMovie(movie)) + { + results.Add(movie); + } + } + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + // Return a list of the movies that were checked out. + return results; + } + + [HttpPost] + // This action accepts $filter queries. For example: + // ~/odata/Movies/CheckOut?$filter=Year eq 2005 + public ICollection<Movie> CheckOut(ODataQueryOptions opts) + { + // Validate the query options. + var settings = new ODataValidationSettings() + { + AllowedQueryOptions = AllowedQueryOptions.Filter + }; + opts.Validate(settings); + + // Use the query options to get a filtered list of movies. + var movies = opts.ApplyTo(db.Movies) as IQueryable<Movie>; + + // Try to check out each movie in the list. + var results = new List<Movie>(); + foreach (var movie in movies) + { + if (TryCheckoutMovie(movie)) + { + results.Add(movie); + } + } + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + // Return a list of the movies that were checked out. + return results; + } + + #endregion + + protected override void Dispose(bool disposing) + { + db.Dispose(); + base.Dispose(disposing); + } +} diff --git a/src/WebApiOData.V3.Samples/Controllers/NonBindableActionsController.cs b/src/WebApiOData.V3.Samples/Controllers/NonBindableActionsController.cs new file mode 100644 index 000000000..fa2f972a1 --- /dev/null +++ b/src/WebApiOData.V3.Samples/Controllers/NonBindableActionsController.cs @@ -0,0 +1,46 @@ +using System.Data.Entity.Infrastructure; +using System.Net; +using System.Web.Http; +using System.Web.Http.OData; +using WebApiOData.V3.Samples.Models; + +namespace WebApiOData.V3.Samples.Controllers; + +public class NonBindableActionsController : ODataController +{ + private readonly MoviesContext db = new(); + + [HttpPost] + public Movie CreateMovie(ODataActionParameters parameters) + { + if (!ModelState.IsValid) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + var title = parameters["Title"] as string; + + var movie = new Movie() + { + Title = title + }; + + try + { + db.Movies.Add(movie); + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + throw new HttpResponseException(HttpStatusCode.BadRequest); + } + + return movie; + } + + protected override void Dispose(bool disposing) + { + db.Dispose(); + base.Dispose(disposing); + } +} diff --git a/src/WebApiOData.V3.Samples/Models/Movie.cs b/src/WebApiOData.V3.Samples/Models/Movie.cs new file mode 100644 index 000000000..8270e29b6 --- /dev/null +++ b/src/WebApiOData.V3.Samples/Models/Movie.cs @@ -0,0 +1,17 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace WebApiOData.V3.Samples.Models; + +public class Movie +{ + public int ID { get; set; } + public string Title { get; set; } + public int Year { get; set; } + public DateTime? DueDate { get; set; } + + [Timestamp] + public byte[] TimeStamp { get; set; } + + public bool IsCheckedOut => DueDate.HasValue; +} diff --git a/src/WebApiOData.V3.Samples/Models/MoviesContext.cs b/src/WebApiOData.V3.Samples/Models/MoviesContext.cs new file mode 100644 index 000000000..7dbdabf8d --- /dev/null +++ b/src/WebApiOData.V3.Samples/Models/MoviesContext.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Data.Entity; + +namespace WebApiOData.V3.Samples.Models; + +public class MoviesContext : DbContext +{ + static MoviesContext() + { + Database.SetInitializer(new MoviesInitializer()); + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + // Set the TimeStamp property to be an optimistic concurrency token. + // EF will use this to detect concurrency conflicts. + + modelBuilder.Entity<Movie>() + .Property(m => m.TimeStamp) + .IsConcurrencyToken() + .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed); + + base.OnModelCreating(modelBuilder); + } + + public DbSet<Movie> Movies { get; set; } +} + +public class MoviesInitializer : DropCreateDatabaseAlways<MoviesContext> +{ + protected override void Seed(MoviesContext context) + { + var movies = new List<Movie>() + { + new Movie() { Title = "Maximum Payback", Year = 1990 }, + new Movie() { Title = "Inferno of Retribution", Year = 2005 }, + new Movie() { Title = "Fatal Vengeance 2", Year = 2012 }, + new Movie() { Title = "Sudden Danger", Year = 2012 }, + new Movie() { Title = "Deadly Honor IV", Year = 1977 } + }; + movies.ForEach(m => context.Movies.Add(m)); + context.SaveChanges(); + } +} diff --git a/src/WebApiOData.V3.Samples/NonBindableActionRoutingConvention.cs b/src/WebApiOData.V3.Samples/NonBindableActionRoutingConvention.cs new file mode 100644 index 000000000..09cd09ae2 --- /dev/null +++ b/src/WebApiOData.V3.Samples/NonBindableActionRoutingConvention.cs @@ -0,0 +1,49 @@ +using System.Linq; +using System.Net.Http; +using System.Web.Http.Controllers; +using System.Web.Http.OData.Routing; +using System.Web.Http.OData.Routing.Conventions; + +namespace WebApiOData.V3.Samples; + +public class NonBindableActionRoutingConvention : IODataRoutingConvention +{ + private readonly string _controllerName; + + public NonBindableActionRoutingConvention(string controllerName) + { + _controllerName = controllerName; + } + + // Route all non-bindable actions to a single controller. + public string SelectController(ODataPath odataPath, System.Net.Http.HttpRequestMessage request) + { + if (odataPath.PathTemplate == "~/action") + { + return _controllerName; + } + + return null; + } + + // Route the action to a method with the same name as the action. + public string SelectAction(ODataPath odataPath, HttpControllerContext controllerContext, ILookup<string, HttpActionDescriptor> actionMap) + { + // OData actions must be invoked with HTTP POST. + if (controllerContext.Request.Method == HttpMethod.Post) + { + if (odataPath.PathTemplate == "~/action") + { + var actionSegment = odataPath.Segments.First() as ActionPathSegment; + var action = actionSegment.Action; + + if (!action.IsBindable && actionMap.Contains(action.Name)) + { + return action.Name; + } + } + } + + return null; + } +} diff --git a/src/WebApiOData.V3.Samples/Startup.cs b/src/WebApiOData.V3.Samples/Startup.cs new file mode 100644 index 000000000..d19887ee2 --- /dev/null +++ b/src/WebApiOData.V3.Samples/Startup.cs @@ -0,0 +1,133 @@ +using System; +using System.Web.Http; +using System.Web.Http.OData.Batch; +using System.Web.Http.OData.Builder; +using System.Web.Http.OData.Extensions; +using System.Web.Http.OData.Routing; +using System.Web.Http.OData.Routing.Conventions; +using Microsoft.Data.Edm; +using Microsoft.Data.OData; +using Microsoft.Data.OData.Query; +using Owin; +using WebApiOData.V3.Samples.Models; + +namespace WebApiOData.V3.Samples; + +public class Startup +{ + public static void Configuration(IAppBuilder builder) + { + var config = new HttpConfiguration(); + + // Add a custom route convention for non-bindable actions. + // (Web API does not have a built-in routing convention for non-bindable actions.) + var conventions = ODataRoutingConventions.CreateDefault(); + conventions.Insert(0, new NonBindableActionRoutingConvention("NonBindableActions")); + + // Map the OData route. + config.Routes.MapODataServiceRoute( + routeName: "OData actions", + routePrefix: "actions", + model: GetModel(), + pathHandler: new DefaultODataPathHandler(), + routingConventions: conventions, + batchHandler: new DefaultODataBatchHandler(new HttpServer(config))); + + builder.UseWebApi(config); + } + + // Builds the EDM model for the OData service, including the OData action definitions. + private static IEdmModel GetModel() + { + ODataModelBuilder modelBuilder = new ODataConventionModelBuilder(); + var moviesEntitySet = modelBuilder.EntitySet<Movie>("Movies"); + moviesEntitySet.EntityType.Ignore(m => m.TimeStamp); // Don't expose timestamp to clients + + // Now add actions to the EDM. + + // CheckOut + // URI: ~/odata/Movies(1)/CheckOut + // Transient action. It is not available when the item is already checked out. + var checkout = modelBuilder.Entity<Movie>().TransientAction("CheckOut"); + + // Provide a function that returns a link to the action, when the action is available, or + // returns null when the action is not available. + checkout.HasActionLink(ctx => + { + var movie = ctx.EntityInstance as Movie; + + // Note: In some cases, checking whether the action is available may be relatively expensive. + // For example, it might require a DB lookup. + + // Avoid doing expensive checks inside a loop (i.e., when serializing a feed). Instead, simply + // mark the action as available, by returning an action link. + + // The SkipExpensiveAvailabilityChecks flag says whether to skip expensive checks. If this flag + // is true AND your availability check is expensive, skip the check and return a link. + + // In this sample, the check is not really expensive, but we honor the flag to show how it works. + var createLink = true; + if (ctx.SkipExpensiveAvailabilityChecks) + { + // Caller asked us to skip the availability check. + createLink = true; + } + else if (!movie.IsCheckedOut) // Here is the "expensive" check + { + createLink = true; + } + + if (createLink) + { + // Return the URI of the action. + return new Uri(ctx.Url.CreateODataLink( + new EntitySetPathSegment(ctx.EntitySet), + new KeyValuePathSegment(ODataUriUtils.ConvertToUriLiteral(movie.ID, ODataVersion.V3)), + new ActionPathSegment(checkout.Name))); + } + else + { + return null; + } + }, followsConventions: true); // "followsConventions" means the action follows OData conventions. + checkout.ReturnsFromEntitySet<Movie>("Movies"); + + // ReturnMovie + // URI: ~/odata/Movies(1)/Return + // Always bindable. If the movie is not checked out, the action is a no-op. + // Binds to a single entity; no parameters. + var returnAction = modelBuilder.Entity<Movie>().Action("Return"); + returnAction.ReturnsFromEntitySet<Movie>("Movies"); + + // SetDueDate action + // URI: ~/odata/Movies(1)/SetDueDate + // Binds to a single entity; takes an action parameter. + var setDueDate = modelBuilder.Entity<Movie>().Action("SetDueDate"); + setDueDate.Parameter<DateTime>("DueDate"); + setDueDate.ReturnsFromEntitySet<Movie>("Movies"); + + // CheckOut action + // URI: ~/odata/Movies/CheckOut + // Shows how to bind to a collection, instead of a single entity. + // This action also accepts $filter queries. For example: + // ~/odata/Movies/CheckOut?$filter=Year eq 2005 + var checkOutFromCollection = modelBuilder.Entity<Movie>().Collection.Action("CheckOut"); + checkOutFromCollection.ReturnsCollectionFromEntitySet<Movie>("Movies"); + + // CheckOutMany action + // URI: ~/odata/Movies/CheckOutMany + // Shows an action that takes a collection parameter. + var checkoutMany = modelBuilder.Entity<Movie>().Collection.Action("CheckOutMany"); + checkoutMany.CollectionParameter<int>("MovieIDs"); + checkoutMany.ReturnsCollectionFromEntitySet<Movie>("Movies"); + + // CreateMovie action + // URI: ~/odata/CreateMovie + // Non-bindable action. You invoke it from the service root. + var createMovie = modelBuilder.Action("CreateMovie"); + createMovie.Parameter<string>("Title"); + createMovie.ReturnsFromEntitySet<Movie>("Movies"); + + return modelBuilder.GetEdmModel(); + } +} diff --git a/src/WebApiOData.V3.Samples/WebApiOData.V3.Samples.csproj b/src/WebApiOData.V3.Samples/WebApiOData.V3.Samples.csproj new file mode 100644 index 000000000..7e04b17db --- /dev/null +++ b/src/WebApiOData.V3.Samples/WebApiOData.V3.Samples.csproj @@ -0,0 +1,24 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>WebApiOData.V3.Samples</RootNamespace> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="EntityFramework" Version="6.4.4" /> + <PackageReference Include="Microsoft.AspNet.WebApi.OData" Version="5.7.0" /> + <PackageReference Include="Microsoft.AspNet.WebApi.Owin" Version="5.2.7" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/WebApiOData.V3.Samples/app.config b/src/WebApiOData.V3.Samples/app.config new file mode 100644 index 000000000..0e725abd4 --- /dev/null +++ b/src/WebApiOData.V3.Samples/app.config @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> + <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> + </configSections> + + <entityFramework> + <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> + <parameters> + <parameter value="MSSQLLocalDB"/> + </parameters> + </defaultConnectionFactory> + </entityFramework> + + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> + </dependentAssembly> + </assemblyBinding> + </runtime> + + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/> + </startup> +</configuration> diff --git a/src/WebApiOData.V3.Samples/packages.config b/src/WebApiOData.V3.Samples/packages.config new file mode 100644 index 000000000..097170eda --- /dev/null +++ b/src/WebApiOData.V3.Samples/packages.config @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="EntityFramework" version="6.2.0" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi" version="5.2.6" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Client" version="5.2.6" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Core" version="5.2.6" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.OData" version="5.7.0" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.6" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.6" targetFramework="net45" /> + <package id="Microsoft.Data.Edm" version="5.8.4" targetFramework="net45" /> + <package id="Microsoft.Data.OData" version="5.8.4" targetFramework="net45" /> + <package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" /> + <package id="Microsoft.Owin.Host.HttpListener" version="4.0.0" targetFramework="net45" /> + <package id="Microsoft.Owin.Hosting" version="4.0.0" targetFramework="net45" /> + <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net45" /> + <package id="Owin" version="1.0" targetFramework="net45" /> + <package id="System.Spatial" version="5.8.4" targetFramework="net45" /> +</packages> \ No newline at end of file diff --git a/src/WebApiOData.V4.Samples.Tests/ActionV4Tests.cs b/src/WebApiOData.V4.Samples.Tests/ActionV4Tests.cs new file mode 100644 index 000000000..31772f255 --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/ActionV4Tests.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Xunit; +using Simple.OData.Client; +using Simple.OData.Client.Tests; +using WebApiOData.V4.Samples.Models; +#if NET461 && !MOCK_HTTP +using Microsoft.Owin.Testing; +using WebApiOData.V4.Samples.Startups; +#endif + +namespace WebApiOData.V4.Samples.Tests; + +public class ActionV4Tests +{ +#if NET461 && !MOCK_HTTP + private readonly TestServer _server; + + public ActionV4Tests() + { + _server = TestServer.Create<ActionStartup>(); + } + + private void Dispose() + { + _server.Dispose(); + } +#endif + + private static ODataClientSettings CreateDefaultSettings() + { + return new ODataClientSettings() + { + BaseUri = new Uri("http://localhost/actions"), + MetadataDocument = GetMetadataDocument(), + PayloadFormat = ODataPayloadFormat.Json, +#if NET461 && !MOCK_HTTP + OnCreateMessageHandler = () => _server.Handler, +#endif + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + }; + } + + private static string GetMetadataDocument() + { +#if MOCK_HTTP + return MetadataResolver.GetMetadataDocument("Metadata.xml"); +#else + return null; +#endif + + } + + [Fact] + public async Task Check_out_a_movie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var isCheckedOut = false; + Movie result = null; + try + { + result = await client + .For<Movie>() + .Key(1) + .Action("CheckOut") + .ExecuteAsSingleAsync(); + } + catch (WebRequestException) + { + isCheckedOut = true; + } + + if (isCheckedOut) + { + await client + .For<Movie>() + .Key(1) + .Action("Return") + .ExecuteAsSingleAsync(); + + result = await client + .For<Movie>() + .Key(1) + .Action("CheckOut") + .ExecuteAsSingleAsync(); + } + + Assert.Equal(1, result.ID); + } + + [Fact] + public async Task Return_a_movie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Movie>() + .Key(1) + .Action("Return") + .ExecuteAsSingleAsync(); + + Assert.Equal(1, result.ID); + } + + [Fact] + public async Task Check_out_several() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Movie>() + .Action("CheckOutMany") + .Set(new Dictionary<string, object>() { { "MovieIDs", new[] { 1, 2, 3 } } }) + .ExecuteAsEnumerableAsync(); + + Assert.True(result.Count() > 1); + } + + [Fact] + public async Task CreateMovie() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var guid = new Guid("EC9DB412-AF7F-4157-B9F5-BFAB8A942B16"); + var result = await client + .Unbound<Movie>() + .Action("CreateMovie") + .Set(new { Title = guid.ToString() }) + .ExecuteAsSingleAsync(); + + Assert.True(result.ID > 0); + } + + [Fact] + public async Task CreateMovie_batch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var guid = new Guid("E7857D7F-5B85-406A-A5C7-0DBA1D411576"); + Movie result = null; + var batch = new ODataBatch(client); + batch += async c => result = await c + .Unbound<Movie>() + .Action("CreateMovie") + .Set(new { Title = guid.ToString() }) + .ExecuteAsSingleAsync(); + await batch.ExecuteAsync(); + + Assert.True(result.ID > 0); + } +} diff --git a/src/WebApiOData.V4.Samples.Tests/AggregationV4Tests.cs b/src/WebApiOData.V4.Samples.Tests/AggregationV4Tests.cs new file mode 100644 index 000000000..b88d1dd2c --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/AggregationV4Tests.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Simple.OData.Client; +using Simple.OData.Client.Tests; +using Simple.OData.Client.V4.Adapter.Extensions; +using WebApiOData.V4.Samples.Models; +using Xunit; + +#if NET461 && !MOCK_HTTP +using Microsoft.Owin.Testing; +using WebApiOData.V4.Samples.Startups; +#endif + +namespace WebApiOData.V4.Samples.Tests; + +public class AggregationV4Tests : IDisposable +{ +#if NET461 && !MOCK_HTTP + private readonly TestServer _server; + + public FunctionV4Tests() + { + _server = TestServer.Create<FunctionStartup>(); + } + + public void Dispose() + { + _server.Dispose(); + } +#else + public void Dispose() + { + GC.SuppressFinalize(this); + } +#endif + + private static ODataClientSettings CreateDefaultSettings() + { + return new ODataClientSettings() + { + BaseUri = new Uri("http://localhost/functions"), + MetadataDocument = GetMetadataDocument(), + PayloadFormat = ODataPayloadFormat.Json, +#if NET461 && !MOCK_HTTP + OnCreateMessageHandler = () => _server.Handler, +#endif + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + IgnoreUnmappedProperties = true + }; + } + + private static string GetMetadataDocument() + { +#if MOCK_HTTP + return MetadataResolver.GetMetadataDocument("Metadata.xml"); +#else + return null; +#endif + + } + + [Fact] + public async Task Get_movie_count_by_year_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .WithExtensions() + .For<Movie>() + .Apply(b => b.GroupBy((x, a) => new MovieCountByYear + { + Year = x.Year, + Count = a.Count() + })) + .OrderByDescending(x => x.Count) + .FindEntriesAsync(); + + Assert.Equal(3, result.Count()); + Assert.Equal(new[] { 1990, 1989, 1995 }, result.Select(x => x.Year).ToArray()); + Assert.Equal(new[] { 10, 9, 1 }, result.Select(x => x.Count).ToArray()); + } + + [Fact] + public async Task Get_movie_count_by_year_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .WithExtensions() + .For<Movie>() + .Apply(b => b.GroupBy((x, a) => new + { + x.Year, + Count = a.Count() + })) + .OrderByDescending(x => x.Count) + .FindEntriesAsync(); + + Assert.Equal(3, result.Count()); + Assert.Equal(new[] { 1990, 1989, 1995 }, result.Select(x => x.Year).ToArray()); + Assert.Equal(new[] { 10, 9, 1 }, result.Select(x => x.Count).ToArray()); + } + + [Fact] + public async Task Get_movie_count_by_year_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + var b = ODataDynamicDataAggregation.Builder; + var a = ODataDynamicDataAggregation.AggregationFunction; + IEnumerable<dynamic> result = await client + .WithExtensions() + .For(x.Movie) + .Apply(b.GroupBy(new + { + x.Year, + Count = a.Count() + })) + .OrderByDescending(x.Count) + .FindEntriesAsync(); + + Assert.Equal(3, result.Count()); + Assert.Equal(new[] { 1990, 1989, 1995 }, new[] { (int)result.ElementAt(0).Year, (int)result.ElementAt(1).Year, (int)result.ElementAt(2).Year }); + Assert.Equal(new[] { 10, 9, 1 }, new[] { (int)result.ElementAt(0).Count, (int)result.ElementAt(1).Count, (int)result.ElementAt(2).Count }); + } +} diff --git a/src/WebApiOData.V4.Samples.Tests/FunctionV4Tests.cs b/src/WebApiOData.V4.Samples.Tests/FunctionV4Tests.cs new file mode 100644 index 000000000..f39cadbd4 --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/FunctionV4Tests.cs @@ -0,0 +1,443 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Simple.OData.Client; +using Simple.OData.Client.Tests; +using WebApiOData.V4.Samples.Models; +using Xunit; +#if NET461 && !MOCK_HTTP +using Microsoft.Owin.Testing; +using WebApiOData.V4.Samples.Startups; +#endif + +namespace WebApiOData.V4.Samples.Tests; + +public class FunctionV4Tests : IDisposable +{ +#if NET461 && !MOCK_HTTP + private readonly TestServer _server; + + public FunctionV4Tests() + { + _server = TestServer.Create<FunctionStartup>(); + } + + public void Dispose() + { + _server.Dispose(); + } +#else + public void Dispose() + { + GC.SuppressFinalize(this); + } +#endif + + private static ODataClientSettings CreateDefaultSettings() + { + return new ODataClientSettings() + { + BaseUri = new Uri("http://localhost/functions"), + MetadataDocument = GetMetadataDocument(), + PayloadFormat = ODataPayloadFormat.Json, +#if NET461 && !MOCK_HTTP + OnCreateMessageHandler = () => _server.Handler, +#endif + OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)), + }; + } + + private static string GetMetadataDocument() + { +#if MOCK_HTTP + return MetadataResolver.GetMetadataDocument("Metadata.xml"); +#else + return null; +#endif + + } + + [Fact] + public async Task Get_the_most_expensive_product_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = (double)await client + .FindScalarAsync("Products/Default.MostExpensive()"); + + Assert.InRange(result, 500, 1000); + } + + [Fact] + public async Task Get_the_most_expensive_product_untyped_batch() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + object result = 0; + var batch = new ODataBatch(settings); + batch += async c => result = await c + .FindScalarAsync("Products/Default.MostExpensive()"); + await batch.ExecuteAsync(); + + Assert.InRange((double)result, 500, 1000); + } + + [Fact] + public async Task Get_the_most_expensive_product_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Function("MostExpensive") + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 500, 1000); + } + + [Fact] + public async Task Get_the_most_expensive_product_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + var result = await client + .For(x.Products) + .Function("MostExpensive") + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 500, 1000); + } + + [Fact] + public async Task Get_the_most_expensives_products_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .FindEntriesAsync("Products/Default.MostExpensives()"); + + Assert.Equal(3, result.Count()); + } + + [Fact] + public async Task Get_the_most_expensives_products_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Function("MostExpensives") + .ExecuteAsEnumerableAsync(); + + Assert.Equal(3, result.Count()); + } + + [Fact] + public async Task Get_the_most_expensives_products_typed_array() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Function("MostExpensives") + .ExecuteAsArrayAsync<Product>(); + + Assert.Equal(3, result.Length); + } + + [Fact] + public async Task Get_the_most_expensives_products_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + IEnumerable<dynamic> result = await client + .For(x.Products) + .Function("MostExpensives") + .ExecuteAsEnumerableAsync(); + + Assert.Equal(3, result.Count()); + } + + [Fact] + public async Task Get_the_top_10_expensive_products_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .FindEntriesAsync("Products/Default.Top10()"); + + Assert.Equal(10, result.Count()); + } + + [Fact] + public async Task Get_the_top_10_expensive_products_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Function("Top10") + .ExecuteAsEnumerableAsync(); + + Assert.Equal(10, result.Count()); + } + + [Fact] + public async Task Get_the_top_10_expensive_products_typed_array() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Function("Top10") + .ExecuteAsArrayAsync<Product>(); + + Assert.Equal(10, result.Length); + } + + [Fact] + public async Task Get_the_top_10_expensive_products_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + IEnumerable<dynamic> result = await client + .For(x.Products) + .Function("Top10") + .ExecuteAsEnumerableAsync(); + + Assert.Equal(10, result.Count()); + } + + [Fact] + public async Task Get_the_rank_of_the_product_price_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = (int)await client + .FindScalarAsync("Products(33)/Default.GetPriceRank()"); + + Assert.InRange(result, 0, 100); + } + + [Fact] + public async Task Get_the_rank_of_the_product_price_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Key(33) + .Function("GetPriceRank") + .ExecuteAsScalarAsync<int>(); + + Assert.InRange(result, 0, 100); + } + + [Fact] + public async Task Get_the_rank_of_the_product_price_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + var result = await client + .For(x.Products) + .Key(33) + .Function("GetPriceRank") + .ExecuteAsScalarAsync<int>(); + + Assert.InRange(result, 0, 100); + } + + [Fact] + public async Task Get_the_sales_tax_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = (double)await client + .FindScalarAsync("Products(33)/Default.CalculateGeneralSalesTax(state='WA')"); + + Assert.InRange(result, 1, 200); + } + + [Fact] + public async Task Get_the_sales_tax_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Key(33) + .Function("CalculateGeneralSalesTax") + .Set(new { state = "WA" }) + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 1, 200); + } + + [Fact] + public async Task Get_the_sales_tax_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + var result = await client + .For(x.Products) + .Key(33) + .Function("CalculateGeneralSalesTax") + .Set(x.state = "WA") + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 1, 200); + } + + [Fact] + public async Task Get_the_sales_tax_rate_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .ExecuteFunctionAsScalarAsync<double>("GetSalesTaxRate", + new Dictionary<string, object>() { { "state", "CA" } }); + + Assert.InRange(result, 5, 20); + } + + [Fact] + public async Task Get_the_sales_tax_rate_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .Unbound() + .Function("GetSalesTaxRate") + .Set(new { state = "CA" }) + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 5, 20); + } + + [Fact] + public async Task Get_the_sales_tax_rate_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + var result = await client + .Unbound() + .Function("GetSalesTaxRate") + .Set(x.state = "CA") + .ExecuteAsScalarAsync<double>(); + + Assert.InRange(result, 5, 20); + } + + [Fact] + public async Task Get_product_placements_untyped() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client.FindEntriesAsync("Products(4)/Default.Placements()", null); + Assert.Equal(3, result.Count()); + result = await client.FindEntriesAsync("Products(5)/Default.Placements()?$top=1&$orderby=ID desc&$skip=1", null); + Assert.Single(result); + Assert.Equal("Fatal Vengeance 2", result.First()["Title"]); + result = await client.FindEntriesAsync("Products(5)/Default.Placements()?$top=1&$orderby=ID desc&$skip=1&$filter=ID gt 5", null); + Assert.Empty(result); + } + + [Fact] + public async Task Get_product_placements_typed() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var result = await client + .For<Product>() + .Key(4) + .Function<Movie>("Placements") + .FindEntriesAsync(); + Assert.Equal(3, result.Count()); + result = await client + .For<Product>() + .Key(5) + .Function<Movie>("Placements") + .Top(1) + .OrderByDescending(x => x.ID) + .Skip(1) + .FindEntriesAsync(); + AssertCollectionCount(result, 1); + Assert.Equal("Fatal Vengeance 2", result.First().Title); + result = await client + .For<Product>() + .Key(5) + .Function<Movie>("Placements") + .Top(1) + .OrderByDescending(x => x.ID) + .Skip(1) + .Filter(x => x.ID > 5) + .FindEntriesAsync(); + AssertCollectionCount(result, 0); + } + + [Fact] + public async Task Get_product_placements_dynamic() + { + var settings = CreateDefaultSettings().WithHttpMock(); + var client = new ODataClient(settings); + var x = ODataDynamic.Expression; + + IEnumerable<dynamic> result = await client + .For(x.Product) + .Key(4) + .Function("Placements") + .FindEntriesAsync(); + AssertCollectionCount(result, 3); + result = await client + .For(x.Product) + .Key(5) + .Function("Placements") + .Top(1) + .OrderByDescending(x.ID) + .Skip(1) + .FindEntriesAsync(); + Assert.Single(result); + Assert.Equal("Fatal Vengeance 2", result.First().Title); + result = await client + .For(x.Product) + .Key(5) + .Function("Placements") + .Top(1) + .OrderByDescending(x.ID) + .Skip(1) + .Filter(x.ID > 5) + .FindEntriesAsync(); + Assert.Empty(result); + } + + //[Fact] + //public async Task Call_function_with_parameter_alias_untyped() + //{ + // var result = await _client + // .ExecuteFunctionAsScalarAsync("GetSalesTaxRate(state=@p1)?@p1='ND'"); + + // Assert.InRange(result, 5, 20); + //} + + private static void AssertCollectionCount<T>(IEnumerable<T> collection, int expectedCount) + { + static void stub(T t) { }; + + var predicates = Enumerable.Range(0, expectedCount).Select<int, Action<T>>(_ => stub).ToArray(); + + Assert.Collection<T>(collection, predicates); + } +} diff --git a/src/WebApiOData.V4.Samples.Tests/MovieCountByYear.cs b/src/WebApiOData.V4.Samples.Tests/MovieCountByYear.cs new file mode 100644 index 000000000..12a6f6466 --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/MovieCountByYear.cs @@ -0,0 +1,8 @@ +namespace Simple.OData.Client.Tests; + +public class MovieCountByYear +{ + public int Year { get; set; } + + public int Count { get; set; } +} diff --git a/src/WebApiOData.V4.Samples.Tests/Resources/Metadata.xml b/src/WebApiOData.V4.Samples.Tests/Resources/Metadata.xml new file mode 100644 index 000000000..46d5f22f2 --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/Resources/Metadata.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="utf-8"?> +<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> + <edmx:DataServices> + <Schema Namespace="WebApiOData.V4.Samples.Models" xmlns="http://docs.oasis-open.org/odata/ns/edm"> + <EntityType Name="Movie"> + <Key> + <PropertyRef Name="ID" /> + </Key> + <Property Name="ID" Type="Edm.Int32" Nullable="false" /> + <Property Name="Title" Type="Edm.String" /> + <Property Name="Year" Type="Edm.Int32" Nullable="false" /> + <Property Name="DueDate" Type="Edm.DateTimeOffset" /> + </EntityType> + <EntityType Name="Product"> + <Key> + <PropertyRef Name="Id" /> + </Key> + <Property Name="Id" Type="Edm.Int32" Nullable="false" /> + <Property Name="Name" Type="Edm.String" /> + <Property Name="Price" Type="Edm.Double" Nullable="false" /> + </EntityType> + <Action Name="CheckOut" IsBound="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V4.Samples.Models.Movie" /> + <ReturnType Type="WebApiOData.V4.Samples.Models.Movie" /> + </Action> + <Action Name="Return" IsBound="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V4.Samples.Models.Movie" /> + <ReturnType Type="WebApiOData.V4.Samples.Models.Movie" /> + </Action> + <Action Name="CheckOutMany" IsBound="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V4.Samples.Models.Movie)" /> + <Parameter Name="MovieIDs" Type="Collection(Edm.Int32)" Nullable="false" /> + <ReturnType Type="Collection(WebApiOData.V4.Samples.Models.Movie)" /> + </Action> + <Action Name="CreateMovie"> + <Parameter Name="Title" Type="Edm.String" Unicode="false" /> + <ReturnType Type="WebApiOData.V4.Samples.Models.Movie" /> + </Action> + </Schema> + <Schema Namespace="Default" xmlns="http://docs.oasis-open.org/odata/ns/edm"> + <Function Name="MostExpensive" IsBound="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V4.Samples.Models.Product)" /> + <ReturnType Type="Edm.Double" Nullable="false" /> + </Function> + <Function Name="MostExpensives" IsBound="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V4.Samples.Models.Product)" /> + <ReturnType Type="Collection(WebApiOData.V4.Samples.Models.Product)" /> + </Function> + <Function Name="Top10" IsBound="true"> + <Parameter Name="bindingParameter" Type="Collection(WebApiOData.V4.Samples.Models.Product)" /> + <ReturnType Type="Collection(WebApiOData.V4.Samples.Models.Product)" /> + </Function> + <Function Name="GetPriceRank" IsBound="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V4.Samples.Models.Product" /> + <ReturnType Type="Edm.Int32" Nullable="false" /> + </Function> + <Function Name="CalculateGeneralSalesTax" IsBound="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V4.Samples.Models.Product" /> + <Parameter Name="state" Type="Edm.String" Unicode="false" /> + <ReturnType Type="Edm.Double" Nullable="false" /> + </Function> + <Function Name="Placements" IsBound="true"> + <Parameter Name="bindingParameter" Type="WebApiOData.V4.Samples.Models.Product" /> + <ReturnType Type="Collection(WebApiOData.V4.Samples.Models.Movie)" /> + </Function> + <Function Name="GetSalesTaxRate"> + <Parameter Name="state" Type="Edm.String" Unicode="false" /> + <ReturnType Type="Edm.Double" Nullable="false" /> + </Function> + <EntityContainer Name="Container"> + <EntitySet Name="Movies" EntityType="WebApiOData.V4.Samples.Models.Movie" /> + <EntitySet Name="Products" EntityType="WebApiOData.V4.Samples.Models.Product" /> + <ActionImport Name="CreateMovie" Action="WebApiOData.V4.Samples.Models.CreateMovie" EntitySet="Movies" /> + <FunctionImport Name="GetSalesTaxRate" Function="Default.GetSalesTaxRate" IncludeInServiceDocument="true" /> + </EntityContainer> + </Schema> + </edmx:DataServices> +</edmx:Edmx> diff --git a/src/WebApiOData.V4.Samples.Tests/WebApiOData.V4.Samples.Tests.csproj b/src/WebApiOData.V4.Samples.Tests/WebApiOData.V4.Samples.Tests.csproj new file mode 100644 index 000000000..f2aee3726 --- /dev/null +++ b/src/WebApiOData.V4.Samples.Tests/WebApiOData.V4.Samples.Tests.csproj @@ -0,0 +1,74 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net6.0</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>Simple.OData.Client.Tests</RootNamespace> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE;MOCK_HTTP</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <None Remove="Resources\Metadata.xml" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> + <PackageReference Include="Microsoft.Net.Test.Sdk" Version="17.0.0" /> + <PackageReference Include="xunit" Version="2.4.1" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" /> + </ItemGroup> + <ItemGroup Condition="'$(TargetFramework)'=='net461'"> + <PackageReference Include="Microsoft.Owin.Hosting" Version="4.0.0" /> + <PackageReference Include="Microsoft.Owin.Testing" Version="4.0.0" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\Simple.OData.Client.UnitTests\MetadataResolver.cs" Link="MetadataResolver.cs" /> + <Compile Include="..\Simple.OData.Client.UnitTests\MockingRequestExecutor.cs" Link="MockingRequestExecutor.cs" /> + <Compile Include="..\WebApiOData.V4.Samples\Models\Movie.cs" Link="Movie.cs" /> + <Compile Include="..\WebApiOData.V4.Samples\Models\Product.cs" Link="Product.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Resources\Metadata.xml" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Simple.OData.Client.Core\Simple.OData.Client.Core.csproj"> + </ProjectReference> + <ProjectReference Include="..\Simple.OData.Client.Dynamic\Simple.OData.Client.Dynamic.csproj"> + </ProjectReference> + <ProjectReference Include="..\Simple.OData.Client.V4.Adapter\Simple.OData.Client.V4.Adapter.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <ProjectReference Include="..\WebApiOData.V4.Samples\WebApiOData.V4.Samples.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <ProjectReference Include="..\WebApiOData.V4.Samples\WebApiOData.V4.Samples.csproj"> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/WebApiOData.V4.Samples/App.config b/src/WebApiOData.V4.Samples/App.config new file mode 100644 index 000000000..19fc733cb --- /dev/null +++ b/src/WebApiOData.V4.Samples/App.config @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/> + </startup> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/> + <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0"/> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> diff --git a/src/WebApiOData.V4.Samples/Controllers/MoviesController.cs b/src/WebApiOData.V4.Samples/Controllers/MoviesController.cs new file mode 100644 index 000000000..9853c20fd --- /dev/null +++ b/src/WebApiOData.V4.Samples/Controllers/MoviesController.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Http; +using Microsoft.AspNet.OData; +using Microsoft.AspNet.OData.Routing; +using WebApiOData.V4.Samples.Models; + +namespace WebApiOData.V4.Samples.Controllers; + +public class MoviesController : ODataController +{ + private readonly MoviesContext _db = new(); + + public IHttpActionResult Get() + { + return Ok(_db.Movies); + } + + [HttpPost] + public IHttpActionResult CheckOut(int key) + { + var movie = _db.Movies.FirstOrDefault(m => m.ID == key); + if (movie == null) + { + return BadRequest(ModelState); + } + + if (!TryCheckoutMovie(movie)) + { + return BadRequest("The movie is already checked out."); + } + + return Ok(movie); + } + + [HttpPost] + public IHttpActionResult Return(int key) + { + var movie = _db.Movies.FirstOrDefault(m => m.ID == key); + if (movie == null) + { + return BadRequest(ModelState); + } + + movie.DueDate = null; + + return Ok(movie); + } + + // Check out a list of movies. + [HttpPost] + public IHttpActionResult CheckOutMany(ODataActionParameters parameters) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + // Client passes a list of movie IDs to check out. + var movieIDs = new HashSet<int>(parameters["MovieIDs"] as IEnumerable<int>); + + // Try to check out each movie in the list. + var results = new List<Movie>(); + foreach (var movie in _db.Movies.Where(m => movieIDs.Contains(m.ID))) + { + if (TryCheckoutMovie(movie)) + { + results.Add(movie); + } + } + + // Return a list of the movies that were checked out. + return Ok(results); + } + + [HttpPost] + [ODataRoute("CreateMovie")] + public IHttpActionResult CreateMovie(ODataActionParameters parameters) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + var title = parameters["Title"] as string; + + var movie = new Movie() + { + Title = title, + ID = _db.Movies.Count + 1, + }; + + _db.Movies.Add(movie); + + return Created(movie); + } + + protected Movie GetMovieByKey(int key) + { + return _db.Movies.FirstOrDefault(m => m.ID == key); + } + + private static bool TryCheckoutMovie(Movie movie) + { + if (movie.IsCheckedOut) + { + return false; + } + else + { + // To check out a movie, set the due date. + movie.DueDate = DateTime.Now.AddDays(7); + return true; + } + } +} diff --git a/src/WebApiOData.V4.Samples/Controllers/ProductsController.cs b/src/WebApiOData.V4.Samples/Controllers/ProductsController.cs new file mode 100644 index 000000000..eef030e79 --- /dev/null +++ b/src/WebApiOData.V4.Samples/Controllers/ProductsController.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Concurrent; +using System.Linq; +using System.Web.Http; +using Microsoft.AspNet.OData; +using Microsoft.AspNet.OData.Query; +using Microsoft.AspNet.OData.Routing; +using WebApiOData.V4.Samples.Models; + +namespace WebApiOData.V4.Samples.Controllers; + +public class ProductsController : ODataController +{ + private static readonly ConcurrentDictionary<int, Product> _data; + + static ProductsController() + { + _data = new ConcurrentDictionary<int, Product>(); + var rand = new Random(); + + Enumerable.Range(0, 100) + .Select(i => new Product + { + Id = i, + Name = "Product " + i, + Price = rand.NextDouble() * 1000 + }) + .ToList() + .ForEach(p => _data.TryAdd(p.Id, p)); + } + + public ProductsController() + { + } + + [Route("*")] + public IHttpActionResult Default() + { + return Ok("OK!!!"); + } + + [EnableQuery] + public static IQueryable<Product> Get() + { + return _data.Values.AsQueryable(); + } + + public IHttpActionResult GetProduct(int key) + { + if (_data.TryGetValue(key, out var retval)) + { + return Ok(retval); + } + else + { + return NotFound(); + } + } + + [HttpGet] + public IHttpActionResult MostExpensive() + { + var retval = _data.Max(pair => pair.Value.Price); + + return Ok(retval); + } + + // Returns top 3 most expensive products + // This is needed to check function name matching + [HttpGet] + public IHttpActionResult MostExpensives() + { + var retval = _data.Values.OrderByDescending(p => p.Price).Take(3).ToList(); + + return Ok(retval); + } + + // Returns the top ten most expensive products + [HttpGet] + public IHttpActionResult Top10() + { + var retval = _data.Values.OrderByDescending(p => p.Price).Take(10).ToList(); + + return Ok(retval); + } + + [HttpGet] + public IHttpActionResult GetPriceRank(int key) + { + if (_data.TryGetValue(key, out var product)) + { + // NOTE: Use where clause to get the rank of the price may not + // offer the good time complexity. The following code is intended + // for demostration only. + return Ok(_data.Values.Count(one => one.Price > product.Price)); + } + else + { + return NotFound(); + } + } + + [HttpGet] + public IHttpActionResult CalculateGeneralSalesTax(int key, string state) + { + var taxRate = GetRate(state); + + if (_data.TryGetValue(key, out var product)) + { + var tax = product.Price * taxRate / 100; + return Ok(tax); + } + else + { + return NotFound(); + } + } + + [HttpGet] + [ODataRoute("GetSalesTaxRate(state={state})")] + public IHttpActionResult GetSalesTaxRate([FromODataUri] string state) + { + return Ok(GetRate(state)); + } + + [HttpGet] + [EnableQuery] + [ODataRoute("Products({key})/Default.Placements()")] + public IHttpActionResult Placements([FromODataUri] int key, ODataQueryOptions<Movie> options) + { + var source = new MoviesContext().Movies.Where(x => x.ID < key).AsQueryable(); + return Ok(source); + } + + private static double GetRate(string state) + { + var taxRate = state switch + { + "AZ" => 5.6, + "CA" => 7.5, + "CT" => 6.35, + "GA" => 4, + "IN" => 7, + "KS" => 6.15, + "KY" => 6, + "MA" => 6.25, + "NV" => 6.85, + "NJ" => 7, + "NY" => 4, + "NC" => 4.75, + "ND" => 5, + "PA" => 6, + "TN" => 7, + "TX" => 6.25, + "VA" => 4.3, + "WA" => 6.5, + "WV" => 6, + "WI" => 5, + _ => 0, + }; + return taxRate; + } +} diff --git a/src/WebApiOData.V4.Samples/CustomHttpControllerTypeResolver.cs b/src/WebApiOData.V4.Samples/CustomHttpControllerTypeResolver.cs new file mode 100644 index 000000000..aae68cbb5 --- /dev/null +++ b/src/WebApiOData.V4.Samples/CustomHttpControllerTypeResolver.cs @@ -0,0 +1,22 @@ +using System; +using System.Web.Http.Dispatcher; +using Microsoft.AspNet.OData; + +namespace WebApiOData.V4.Samples; + +public class CustomHttpControllerTypeResolver : DefaultHttpControllerTypeResolver +{ + public CustomHttpControllerTypeResolver(Type controllerType) + : base(IsController(controllerType)) + { + } + + private static Predicate<Type> IsController(Type controllerType) + { + Predicate<Type> predicate = t => + t == typeof(MetadataController) + || t == controllerType; + + return predicate; + } +} diff --git a/src/WebApiOData.V4.Samples/GlobalSuppressions.cs b/src/WebApiOData.V4.Samples/GlobalSuppressions.cs new file mode 100644 index 000000000..0424a9f63 --- /dev/null +++ b/src/WebApiOData.V4.Samples/GlobalSuppressions.cs @@ -0,0 +1,14 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage( + "Style", + "IDE0060:Remove unused parameter", + Justification = "Part of test design", + Scope = "member", + Target = "~M:WebApiOData.V4.Samples.Controllers.ProductsController.Placements(System.Int32,Microsoft.AspNet.OData.Query.ODataQueryOptions{WebApiOData.V4.Samples.Models.Movie})~System.Web.Http.IHttpActionResult") +] diff --git a/src/WebApiOData.V4.Samples/Models/Movie.cs b/src/WebApiOData.V4.Samples/Models/Movie.cs new file mode 100644 index 000000000..44fa214c4 --- /dev/null +++ b/src/WebApiOData.V4.Samples/Models/Movie.cs @@ -0,0 +1,16 @@ +using System; + +namespace WebApiOData.V4.Samples.Models; + +public class Movie +{ + public int ID { get; set; } + + public string Title { get; set; } + + public int Year { get; set; } + + public DateTimeOffset? DueDate { get; set; } + + public bool IsCheckedOut => DueDate.HasValue; +} diff --git a/src/WebApiOData.V4.Samples/Models/MoviesContext.cs b/src/WebApiOData.V4.Samples/Models/MoviesContext.cs new file mode 100644 index 000000000..3eb8f41bc --- /dev/null +++ b/src/WebApiOData.V4.Samples/Models/MoviesContext.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace WebApiOData.V4.Samples.Models; + +public class MoviesContext +{ + public List<Movie> Movies { get; set; } = new List<Movie>() + { + new Movie() { ID=1, Title = "Maximum Payback", Year = 1990 }, + new Movie() { ID=2, Title = "Inferno of Retribution", Year = 2005 }, + new Movie() { ID=3, Title = "Fatal Vengeance 2", Year = 2012 }, + new Movie() { ID=4, Title = "Sudden Danger", Year = 2012 }, + new Movie() { ID=5, Title = "Beyond Outrage", Year = 2014 }, + new Movie() { ID=6, Title = "The Nut Job", Year = 2014 } + }; +} diff --git a/src/WebApiOData.V4.Samples/Models/Product.cs b/src/WebApiOData.V4.Samples/Models/Product.cs new file mode 100644 index 000000000..ad1e79a6c --- /dev/null +++ b/src/WebApiOData.V4.Samples/Models/Product.cs @@ -0,0 +1,10 @@ +namespace WebApiOData.V4.Samples.Models; + +public class Product +{ + public int Id { get; set; } + + public string Name { get; set; } + + public double Price { get; set; } +} diff --git a/src/WebApiOData.V4.Samples/Startup.cs b/src/WebApiOData.V4.Samples/Startup.cs new file mode 100644 index 000000000..96f68dbff --- /dev/null +++ b/src/WebApiOData.V4.Samples/Startup.cs @@ -0,0 +1,34 @@ +using System; +using System.Web.Http; +using System.Web.Http.Dispatcher; +using Microsoft.AspNet.OData.Extensions; +using Owin; + +namespace WebApiOData.V4.Samples; + +public abstract class Startup +{ + private readonly Type _controllerType; + + protected Startup(Type controllerType) + { + _controllerType = controllerType; + } + + protected abstract void ConfigureController(HttpConfiguration config); + + public void Configuration(IAppBuilder builder) + { + var config = new HttpConfiguration(); + + config.Services.Replace( + typeof(IHttpControllerTypeResolver), + new CustomHttpControllerTypeResolver(_controllerType)); + + config.Select().Expand().Filter().OrderBy().MaxTop(null).Count();//https://stackoverflow.com/a/40021161/19671 + + ConfigureController(config); + + builder.UseWebApi(config); + } +} diff --git a/src/WebApiOData.V4.Samples/Startups/ActionStartup.cs b/src/WebApiOData.V4.Samples/Startups/ActionStartup.cs new file mode 100644 index 000000000..3f6075c9c --- /dev/null +++ b/src/WebApiOData.V4.Samples/Startups/ActionStartup.cs @@ -0,0 +1,62 @@ +using System.Web.Http; +using Microsoft.AspNet.OData.Batch; +using Microsoft.AspNet.OData.Builder; +using Microsoft.AspNet.OData.Extensions; +using Microsoft.OData.Edm; +using WebApiOData.V4.Samples.Controllers; +using WebApiOData.V4.Samples.Models; + +namespace WebApiOData.V4.Samples.Startups; + +public class ActionStartup : Startup +{ + public ActionStartup() + : base(typeof(MoviesController)) + { + } + + protected override void ConfigureController(HttpConfiguration config) + { + config.MapODataServiceRoute( + routeName: "OData actions", + routePrefix: "actions", + model: GetEdmModel(config), + batchHandler: new DefaultODataBatchHandler(new HttpServer(config))); + } + + private static IEdmModel GetEdmModel(HttpConfiguration config) + { + var modelBuilder = new ODataConventionModelBuilder(config); + _ = modelBuilder.EntitySet<Movie>("Movies"); + + // Now add actions. + + // CheckOut + // URI: ~/odata/Movies(1)/ODataActionsSample.Models.CheckOut + var checkOutAction = modelBuilder.EntityType<Movie>().Action("CheckOut"); + checkOutAction.ReturnsFromEntitySet<Movie>("Movies"); + + // ReturnMovie + // URI: ~/odata/Movies(1)/ODataActionsSample.Models.Return + // Binds to a single entity; no parameters. + var returnAction = modelBuilder.EntityType<Movie>().Action("Return"); + returnAction.ReturnsFromEntitySet<Movie>("Movies"); + + // CheckOutMany action + // URI: ~/odata/Movies/ODataActionsSample.Models.CheckOutMany + // Binds to a collection of entities. This action accepts a collection of parameters. + var checkOutManyAction = modelBuilder.EntityType<Movie>().Collection.Action("CheckOutMany"); + checkOutManyAction.CollectionParameter<int>("MovieIDs"); + checkOutManyAction.ReturnsCollectionFromEntitySet<Movie>("Movies"); + + // CreateMovie action + // URI: ~/odata/CreateMovie + // Unbound action. It is invoked from the service root. + var createMovieAction = modelBuilder.Action("CreateMovie"); + createMovieAction.Parameter<string>("Title"); + createMovieAction.ReturnsFromEntitySet<Movie>("Movies"); + + modelBuilder.Namespace = typeof(Movie).Namespace; + return modelBuilder.GetEdmModel(); + } +} diff --git a/src/WebApiOData.V4.Samples/Startups/FunctionStartup.cs b/src/WebApiOData.V4.Samples/Startups/FunctionStartup.cs new file mode 100644 index 000000000..4d2b24e9a --- /dev/null +++ b/src/WebApiOData.V4.Samples/Startups/FunctionStartup.cs @@ -0,0 +1,81 @@ +using System.Web.Http; +using Microsoft.AspNet.OData.Batch; +using Microsoft.AspNet.OData.Builder; +using Microsoft.AspNet.OData.Extensions; +using Microsoft.OData.Edm; +using WebApiOData.V4.Samples.Controllers; +using WebApiOData.V4.Samples.Models; + +namespace WebApiOData.V4.Samples.Startups; + +public class FunctionStartup : Startup +{ + public FunctionStartup() + : base(typeof(ProductsController)) + { + } + + protected override void ConfigureController(HttpConfiguration config) + { + config.MapODataServiceRoute( + routeName: "OData functions", + routePrefix: "functions", + model: GetEdmModel(config), + batchHandler: new DefaultODataBatchHandler(new HttpServer(config))); + } + + private static IEdmModel GetEdmModel(HttpConfiguration config) + { + ODataModelBuilder builder = new ODataConventionModelBuilder(config); + + builder.EntitySet<Product>("Products"); + + var productType = builder.EntityType<Product>(); + + // Function bound to a collection + // Returns the most expensive product, a single entity + productType.Collection + .Function("MostExpensive") + .Returns<double>(); + + // Function bound to a collection + // Returns top 3 product, a collection + productType.Collection + .Function("MostExpensives") + .ReturnsCollectionFromEntitySet<Product>("Products"); + + // Function bound to a collection + // Returns the top 10 product, a collection + productType.Collection + .Function("Top10") + .ReturnsCollectionFromEntitySet<Product>("Products"); + + // Function bound to a single entity + // Returns the instance's price rank among all products + productType + .Function("GetPriceRank") + .Returns<int>(); + + // Function bound to a single entity + // Accept a string as parameter and return a double + // This function calculate the general sales tax base on the + // state + productType + .Function("CalculateGeneralSalesTax") + .Returns<double>() + .Parameter<string>("state"); + + // Function bound to a single entity + // Returns the list of movies with a product placement for this product + productType + .Function("Placements") + .ReturnsCollectionFromEntitySet<Movie>("Movies"); + + // Unbound Function + builder.Function("GetSalesTaxRate") + .Returns<double>() + .Parameter<string>("state"); + + return builder.GetEdmModel(); + } +} diff --git a/src/WebApiOData.V4.Samples/WebApiOData.V4.Samples.csproj b/src/WebApiOData.V4.Samples/WebApiOData.V4.Samples.csproj new file mode 100644 index 000000000..e6bacecae --- /dev/null +++ b/src/WebApiOData.V4.Samples/WebApiOData.V4.Samples.csproj @@ -0,0 +1,25 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFrameworks>net461</TargetFrameworks> + <GenerateAssemblyInfo>true</GenerateAssemblyInfo> + <RootNamespace>WebApiOData.V4.Samples</RootNamespace> + <OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/$(TargetFramework)/</OutputPath> + <OutDir>$(OutputPath)</OutDir> + <LangVersion>latest</LangVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net461|AnyCPU'"> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> + <DefineConstants>TRACE;DEBUG</DefineConstants> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.AspNet.OData" Version="7.5.12" /> + <PackageReference Include="Microsoft.AspNet.WebApi.Owin" Version="5.2.7" /> + <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" /> + <PackageReference Include="Microsoft.OData.Core" Version="7.9.4" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Properties\" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/WebApiOData.V4.Samples/packages.config b/src/WebApiOData.V4.Samples/packages.config new file mode 100644 index 000000000..e37fbb513 --- /dev/null +++ b/src/WebApiOData.V4.Samples/packages.config @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Microsoft.AspNet.OData" version="6.0.0" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" /> + <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.2" targetFramework="net45" /> + <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0" targetFramework="net45" /> + <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0" targetFramework="net45" /> + <package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" /> + <package id="Microsoft.Owin.Host.HttpListener" version="3.0.0" targetFramework="net45" /> + <package id="Microsoft.Owin.Hosting" version="3.0.0" targetFramework="net45" /> + <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" /> + <package id="Owin" version="1.0" targetFramework="net45" /> + <package id="System.Collections" version="4.0.11" targetFramework="net45" /> + <package id="System.Collections.Concurrent" version="4.0.12" targetFramework="net45" /> + <package id="System.ComponentModel" version="4.0.1" targetFramework="net45" /> + <package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net45" /> + <package id="System.Globalization" version="4.0.11" targetFramework="net45" /> + <package id="System.Linq" version="4.1.0" targetFramework="net45" /> + <package id="System.Linq.Expressions" version="4.1.0" targetFramework="net45" /> + <package id="System.Reflection" version="4.1.0" targetFramework="net45" /> + <package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="net45" /> + <package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net45" /> + <package id="System.Threading" version="4.0.11" targetFramework="net45" /> + <package id="System.Threading.Tasks" version="4.0.11" targetFramework="net45" /> +</packages> \ No newline at end of file