From d116af0080f5b84c58e011555fcacf75315d27ca Mon Sep 17 00:00:00 2001 From: Tre`Von McKay Date: Sat, 3 Dec 2022 01:24:08 -0500 Subject: [PATCH 01/13] Removed unused projects --- Linq2Rest.Reactive.Tests/Fakes/ChildItem.cs | 23 - .../Fakes/FakeAsyncRestClientFactory.cs | 87 - Linq2Rest.Reactive.Tests/Fakes/FakeItem.cs | 47 - .../Fakes/NorthwindCustomer.cs | 37 - .../Fakes/ODataResponse.cs | 24 - Linq2Rest.Reactive.Tests/Fakes/ODataResult.cs | 24 - .../Fakes/TestComplexSerializer.cs | 46 - .../Fakes/TestODataSerializer.cs | 48 - .../Fakes/TestODataSerializerFactory.cs | 29 - .../Fakes/TestSerializer.cs | 46 - .../Fakes/TestSerializerFactory.cs | 205 -- .../Linq2Rest.Reactive.Tests.Net45.csproj | 197 -- .../Linq2Rest.Reactive.Tests.csproj | 204 -- .../ODataCustomerServiceTests.cs | 99 - .../Properties/AssemblyInfo.cs | 42 - Linq2Rest.Reactive.Tests/RequestTests.cs | 316 --- .../RestObservableTests.cs | 285 --- Linq2Rest.Reactive.Tests/Settings.StyleCop | 6 - .../TriggeredRestObservableTests.cs | 99 - Linq2Rest.Reactive.Tests/packages.config | 11 - Linq2Rest.Reactive.WP7Sample/App.xaml | 19 - Linq2Rest.Reactive.WP7Sample/App.xaml.cs | 148 -- .../ApplicationIcon.png | Bin 1881 -> 0 bytes Linq2Rest.Reactive.WP7Sample/Background.png | Bin 3521 -> 0 bytes .../Linq2Rest.Reactive.WP8.Sample.csproj | 174 -- Linq2Rest.Reactive.WP7Sample/MainPage.xaml | 90 - Linq2Rest.Reactive.WP7Sample/MainPage.xaml.cs | 50 - .../Models/NugetPackage.cs | 105 - .../Properties/AppManifest.xml | 6 - .../Properties/AssemblyInfo.cs | 43 - .../Properties/WMAppManifest.xml | 67 - Linq2Rest.Reactive.WP7Sample/SampleDto.cs | 23 - .../Settings.StyleCop | 6 - .../SplashScreenImage.jpg | Bin 9417 -> 0 bytes .../Support/AsyncJsonRestClientFactory.cs | 121 -- .../Support/ODataResponse.cs | 23 - .../Support/ODataResult.cs | 24 - .../Support/ODataSerializer.cs | 47 - .../Support/ODataSerializerFactory.cs | 29 - Linq2Rest.Reactive.WP7Sample/packages.config | 9 - .../Linq2Rest.Reactive.WP8.csproj | 431 ---- .../MemberNameResolver.cs | 210 -- .../Properties/AssemblyInfo.cs | 42 - .../Provider/ExpressionExtensions.cs | 75 - Linq2Rest.Reactive.WinPhone/Settings.StyleCop | 6 - Linq2Rest.Reactive.WinPhone/packages.config | 9 - Linq2Rest.Reactive.WinRT.Sample/App.xaml | 20 - Linq2Rest.Reactive.WinRT.Sample/App.xaml.cs | 70 - .../Assets/Logo.png | Bin 5789 -> 0 bytes .../Assets/SmallLogo.png | Bin 745 -> 0 bytes .../Assets/SplashScreen.png | Bin 9381 -> 0 bytes .../Assets/StoreLogo.png | Bin 2005 -> 0 bytes .../BlankPage.xaml | 40 - .../BlankPage.xaml.cs | 61 - .../Common/ReadMe.txt | 7 - .../Common/StandardStyles.xaml | 1819 ----------------- .../Linq2Rest.Reactive.WinRT.Sample.csproj | 248 --- ...est.Reactive.WinRT.Sample_TemporaryKey.pfx | Bin 2476 -> 0 bytes .../Models/NetflixFilm.cs | 29 - .../Package.appxmanifest | 32 - .../Properties/AssemblyInfo.cs | 35 - .../Settings.StyleCop | 6 - .../Support/ODataResponse.cs | 23 - .../Support/ODataResult.cs | 24 - .../Support/ODataSerializer.cs | 47 - .../Support/ODataSerializerFactory.cs | 35 - .../packages.config | 9 - .../Linq2Rest.Reactive.WinRT.csproj | 449 ---- .../Properties/AssemblyInfo.cs | 35 - Linq2Rest.Reactive.WinRT/Settings.StyleCop | 6 - Linq2Rest.Reactive.WinRT/packages.config | 9 - .../AsyncExpressionProcessor.cs | 350 ---- .../IAsyncExpressionProcessor.cs | 52 - Linq2Rest.Reactive/IAsyncRestClient.cs | 42 - Linq2Rest.Reactive/IAsyncRestClientFactory.cs | 109 - .../AsyncJsonRestClientFactory.cs | 159 -- .../AsyncXmlRestClientFactory.cs | 146 -- Linq2Rest.Reactive/InnerRestObservable.cs | 67 - Linq2Rest.Reactive/InnerRestObservableBase.cs | 270 --- .../InternalObservableExtensions.cs | 60 - .../Linq2Rest.Reactive.Net45.csproj | 194 -- .../Linq2Rest.Reactive.Net451.csproj | 190 -- Linq2Rest.Reactive/Linq2Rest.Reactive.csproj | 195 -- Linq2Rest.Reactive/ObservableExtensions.cs | 185 -- Linq2Rest.Reactive/ObserverPublisher.cs | 68 - Linq2Rest.Reactive/Properties/AssemblyInfo.cs | 45 - Linq2Rest.Reactive/ReflectionHelper.cs | 72 - Linq2Rest.Reactive/RestObservable.cs | 116 -- Linq2Rest.Reactive/RestQueryableProvider.cs | 41 - .../RestQueryableProviderBase.cs | 157 -- Linq2Rest.Reactive/RestSubscription.cs | 44 - Linq2Rest.Reactive/Settings.StyleCop | 6 - Linq2Rest.Reactive/TriggeredRestObservable.cs | 158 -- .../TriggeredRestQueryableProvider.cs | 78 - Linq2Rest.Reactive/packages.config | 9 - Linq2Rest.sln | 126 -- 96 files changed, 9575 deletions(-) delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/ChildItem.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/FakeAsyncRestClientFactory.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/FakeItem.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/NorthwindCustomer.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/ODataResponse.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/ODataResult.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/TestComplexSerializer.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/TestODataSerializer.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/TestODataSerializerFactory.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/TestSerializer.cs delete mode 100644 Linq2Rest.Reactive.Tests/Fakes/TestSerializerFactory.cs delete mode 100644 Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.Net45.csproj delete mode 100644 Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.csproj delete mode 100644 Linq2Rest.Reactive.Tests/ODataCustomerServiceTests.cs delete mode 100644 Linq2Rest.Reactive.Tests/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive.Tests/RequestTests.cs delete mode 100644 Linq2Rest.Reactive.Tests/RestObservableTests.cs delete mode 100644 Linq2Rest.Reactive.Tests/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive.Tests/TriggeredRestObservableTests.cs delete mode 100644 Linq2Rest.Reactive.Tests/packages.config delete mode 100644 Linq2Rest.Reactive.WP7Sample/App.xaml delete mode 100644 Linq2Rest.Reactive.WP7Sample/App.xaml.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/ApplicationIcon.png delete mode 100644 Linq2Rest.Reactive.WP7Sample/Background.png delete mode 100644 Linq2Rest.Reactive.WP7Sample/Linq2Rest.Reactive.WP8.Sample.csproj delete mode 100644 Linq2Rest.Reactive.WP7Sample/MainPage.xaml delete mode 100644 Linq2Rest.Reactive.WP7Sample/MainPage.xaml.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Models/NugetPackage.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Properties/AppManifest.xml delete mode 100644 Linq2Rest.Reactive.WP7Sample/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Properties/WMAppManifest.xml delete mode 100644 Linq2Rest.Reactive.WP7Sample/SampleDto.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive.WP7Sample/SplashScreenImage.jpg delete mode 100644 Linq2Rest.Reactive.WP7Sample/Support/AsyncJsonRestClientFactory.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Support/ODataResponse.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Support/ODataResult.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Support/ODataSerializer.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/Support/ODataSerializerFactory.cs delete mode 100644 Linq2Rest.Reactive.WP7Sample/packages.config delete mode 100644 Linq2Rest.Reactive.WinPhone/Linq2Rest.Reactive.WP8.csproj delete mode 100644 Linq2Rest.Reactive.WinPhone/MemberNameResolver.cs delete mode 100644 Linq2Rest.Reactive.WinPhone/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive.WinPhone/Provider/ExpressionExtensions.cs delete mode 100644 Linq2Rest.Reactive.WinPhone/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive.WinPhone/packages.config delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/App.xaml delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/App.xaml.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Assets/Logo.png delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Assets/SmallLogo.png delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Assets/SplashScreen.png delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Assets/StoreLogo.png delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/BlankPage.xaml delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/BlankPage.xaml.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Common/ReadMe.txt delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Common/StandardStyles.xaml delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Linq2Rest.Reactive.WinRT.Sample.csproj delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Linq2Rest.Reactive.WinRT.Sample_TemporaryKey.pfx delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Models/NetflixFilm.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Package.appxmanifest delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Support/ODataResponse.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Support/ODataResult.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Support/ODataSerializer.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/Support/ODataSerializerFactory.cs delete mode 100644 Linq2Rest.Reactive.WinRT.Sample/packages.config delete mode 100644 Linq2Rest.Reactive.WinRT/Linq2Rest.Reactive.WinRT.csproj delete mode 100644 Linq2Rest.Reactive.WinRT/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive.WinRT/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive.WinRT/packages.config delete mode 100644 Linq2Rest.Reactive/AsyncExpressionProcessor.cs delete mode 100644 Linq2Rest.Reactive/IAsyncExpressionProcessor.cs delete mode 100644 Linq2Rest.Reactive/IAsyncRestClient.cs delete mode 100644 Linq2Rest.Reactive/IAsyncRestClientFactory.cs delete mode 100644 Linq2Rest.Reactive/Implementations/AsyncJsonRestClientFactory.cs delete mode 100644 Linq2Rest.Reactive/Implementations/AsyncXmlRestClientFactory.cs delete mode 100644 Linq2Rest.Reactive/InnerRestObservable.cs delete mode 100644 Linq2Rest.Reactive/InnerRestObservableBase.cs delete mode 100644 Linq2Rest.Reactive/InternalObservableExtensions.cs delete mode 100644 Linq2Rest.Reactive/Linq2Rest.Reactive.Net45.csproj delete mode 100644 Linq2Rest.Reactive/Linq2Rest.Reactive.Net451.csproj delete mode 100644 Linq2Rest.Reactive/Linq2Rest.Reactive.csproj delete mode 100644 Linq2Rest.Reactive/ObservableExtensions.cs delete mode 100644 Linq2Rest.Reactive/ObserverPublisher.cs delete mode 100644 Linq2Rest.Reactive/Properties/AssemblyInfo.cs delete mode 100644 Linq2Rest.Reactive/ReflectionHelper.cs delete mode 100644 Linq2Rest.Reactive/RestObservable.cs delete mode 100644 Linq2Rest.Reactive/RestQueryableProvider.cs delete mode 100644 Linq2Rest.Reactive/RestQueryableProviderBase.cs delete mode 100644 Linq2Rest.Reactive/RestSubscription.cs delete mode 100644 Linq2Rest.Reactive/Settings.StyleCop delete mode 100644 Linq2Rest.Reactive/TriggeredRestObservable.cs delete mode 100644 Linq2Rest.Reactive/TriggeredRestQueryableProvider.cs delete mode 100644 Linq2Rest.Reactive/packages.config diff --git a/Linq2Rest.Reactive.Tests/Fakes/ChildItem.cs b/Linq2Rest.Reactive.Tests/Fakes/ChildItem.cs deleted file mode 100644 index f7b644c..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/ChildItem.cs +++ /dev/null @@ -1,23 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ChildItem type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System.Collections.Generic; - - public class ChildItem - { - public string Text { get; set; } - - public IList Descendants { get; set; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/FakeAsyncRestClientFactory.cs b/Linq2Rest.Reactive.Tests/Fakes/FakeAsyncRestClientFactory.cs deleted file mode 100644 index 8ddb2e5..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/FakeAsyncRestClientFactory.cs +++ /dev/null @@ -1,87 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the FakeAsyncRestClientFactory type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - public class FakeAsyncRestClientFactory : IAsyncRestClientFactory - { - private readonly string _response = "[]"; - private readonly int _responseDelay; - - public FakeAsyncRestClientFactory() - : this(-1) - { - } - - public FakeAsyncRestClientFactory(string response) - : this(-1) - { - _response = response; - } - - public FakeAsyncRestClientFactory(int responseDelay) - { - _responseDelay = responseDelay; - } - - public Uri ServiceBase - { - get - { - return new Uri("http://localhost"); - } - } - - public IAsyncRestClient Create(Uri source) - { - return new FakeAsyncResultClient(_responseDelay, _response); - } - - public void SetMethod(HttpMethod method) - { - } - - public void SetInput(Stream input) - { - } - - private class FakeAsyncResultClient : IAsyncRestClient - { - private readonly string _response; - private readonly int _responseDelay; - - public FakeAsyncResultClient(int responseDelay, string response) - { - _responseDelay = responseDelay; - _response = response; - } - - public Task Download() - { - return Task.Factory.StartNew(() => - { - if (_responseDelay > 0) - { - Thread.Sleep(_responseDelay); - } - - return _response.ToStream(); - }); - } - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/FakeItem.cs b/Linq2Rest.Reactive.Tests/Fakes/FakeItem.cs deleted file mode 100644 index 419446e..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/FakeItem.cs +++ /dev/null @@ -1,47 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the FakeItem type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System.Collections.Generic; - using System.Runtime.Serialization; - using System.Xml.Serialization; - - [DataContract] - public class FakeItem - { - [DataMember(Name = "Text")] - private string _stringValue; - - [XmlElement(ElementName = "Number")] - public int IntValue { get; set; } - - public double DoubleValue { get; set; } - - public string StringValue - { - get - { - return _stringValue; - } - - set - { - _stringValue = value; - } - } - - public IList Children { get; set; } - - public IList MoreChildren { get; set; } - } -} diff --git a/Linq2Rest.Reactive.Tests/Fakes/NorthwindCustomer.cs b/Linq2Rest.Reactive.Tests/Fakes/NorthwindCustomer.cs deleted file mode 100644 index 4f8257a..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/NorthwindCustomer.cs +++ /dev/null @@ -1,37 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the NorthwindCustomer type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - public class NorthwindCustomer - { - public string CustomerID { get; set; } - - 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; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/ODataResponse.cs b/Linq2Rest.Reactive.Tests/Fakes/ODataResponse.cs deleted file mode 100644 index 451da62..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/ODataResponse.cs +++ /dev/null @@ -1,24 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataResponse type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System.Collections.Generic; - using System.Runtime.Serialization; - - [DataContract] - public class ODataResponse - { - [DataMember(Name = "value")] - public List Results { get; set; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/ODataResult.cs b/Linq2Rest.Reactive.Tests/Fakes/ODataResult.cs deleted file mode 100644 index 58eeaf2..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/ODataResult.cs +++ /dev/null @@ -1,24 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataResult type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System.Collections.Generic; - using System.Runtime.Serialization; - - [DataContract] - public class ODataResult - { - [DataMember(Name = "value")] - public List Results { get; set; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/TestComplexSerializer.cs b/Linq2Rest.Reactive.Tests/Fakes/TestComplexSerializer.cs deleted file mode 100644 index b2126d9..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/TestComplexSerializer.cs +++ /dev/null @@ -1,46 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TestComplexSerializer type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Runtime.Serialization.Json; - using Linq2Rest.Provider; - - public class TestComplexSerializer : ISerializer - { - private readonly DataContractJsonSerializer _innerListSerializer = new DataContractJsonSerializer(typeof(List)); - private readonly DataContractJsonSerializer _innerSerializer = new DataContractJsonSerializer(typeof(FakeItem)); - - public FakeItem Deserialize(Stream input) - { - return (FakeItem)_innerSerializer.ReadObject(input); - } - - public IEnumerable DeserializeList(Stream input) - { - return (List)_innerListSerializer.ReadObject(input); - } - - public Stream Serialize(FakeItem item) - { - var stream = new MemoryStream(); - _innerSerializer.WriteObject(stream, item); - stream.Flush(); - stream.Position = 0; - - return stream; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializer.cs b/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializer.cs deleted file mode 100644 index 6c4334d..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializer.cs +++ /dev/null @@ -1,48 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TestODataSerializer type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Runtime.Serialization.Json; - using Linq2Rest.Provider; - - public class TestODataSerializer : ISerializer - { - private readonly DataContractJsonSerializer _innerSerializer = new DataContractJsonSerializer(typeof(ODataResponse)); - - public T Deserialize(Stream input) - { - var response = (ODataResponse)_innerSerializer.ReadObject(input); - return response.Results.FirstOrDefault(); - } - - public IEnumerable DeserializeList(Stream input) - { - var response = (ODataResponse)_innerSerializer.ReadObject(input); - return response.Results; - } - - public Stream Serialize(T item) - { - var stream = new MemoryStream(); - _innerSerializer.WriteObject(stream, item); - stream.Flush(); - stream.Position = 0; - - return stream; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializerFactory.cs b/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializerFactory.cs deleted file mode 100644 index a5a3b01..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/TestODataSerializerFactory.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TestODataSerializerFactory type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using Linq2Rest.Provider; - - public class TestODataSerializerFactory : ISerializerFactory - { - public ISerializer Create() - { - return new TestODataSerializer(); - } - - public ISerializer Create() - { - return Create(); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/TestSerializer.cs b/Linq2Rest.Reactive.Tests/Fakes/TestSerializer.cs deleted file mode 100644 index f7646ad..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/TestSerializer.cs +++ /dev/null @@ -1,46 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TestSerializer type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Runtime.Serialization.Json; - using Linq2Rest.Provider; - - public class TestSerializer : ISerializer - { - private readonly DataContractJsonSerializer _innerListSerializer = new DataContractJsonSerializer(typeof(List)); - private readonly DataContractJsonSerializer _innerSerializer = new DataContractJsonSerializer(typeof(T)); - - public T Deserialize(Stream input) - { - return (T)_innerSerializer.ReadObject(input); - } - - public IEnumerable DeserializeList(Stream input) - { - return (List)_innerListSerializer.ReadObject(input); - } - - public Stream Serialize(T item) - { - var stream = new MemoryStream(); - _innerSerializer.WriteObject(stream, item); - stream.Flush(); - stream.Position = 0; - - return stream; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Fakes/TestSerializerFactory.cs b/Linq2Rest.Reactive.Tests/Fakes/TestSerializerFactory.cs deleted file mode 100644 index a47f911..0000000 --- a/Linq2Rest.Reactive.Tests/Fakes/TestSerializerFactory.cs +++ /dev/null @@ -1,205 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TestSerializerFactory type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests.Fakes -{ - using System; - using System.Collections; - using System.Collections.Generic; - using System.Diagnostics.Contracts; - using System.IO; - using System.Linq; - using System.Linq.Expressions; - using System.Reflection; - using System.Web.Script.Serialization; - using Linq2Rest.Provider; - - public class TestSerializerFactory : ISerializerFactory - { - private readonly IMemberNameResolver _memberNameResolver; - - public TestSerializerFactory() - { - _memberNameResolver = new MemberNameResolver(); - } - - public ISerializer Create() - { - if (typeof(T) == typeof(FakeItem)) - { - return new TestComplexSerializer() as ISerializer; - } - - return new TestSerializer(); - } - - public ISerializer Create() - { - if (typeof(T).IsAnonymousType()) - { - return new RuntimeAnonymousTypeSerializer(_memberNameResolver); - } - return Create(); - } - } - - /// - /// Serializes simples annymous type structures. - /// - /// The to serialize. - /// The to load alias data from. - public class RuntimeAnonymousTypeSerializer : ISerializer - { - private readonly IMemberNameResolver _nameResolver; - private readonly Type _sourceType = typeof(TSource); - private readonly Type _elementType = typeof(T); - private readonly Type _deserializedType = typeof(Dictionary); - private readonly JavaScriptSerializer _innerSerializer = new JavaScriptSerializer(); - - /// - /// a - /// - /// The used to resolve name aliasing. - public RuntimeAnonymousTypeSerializer(IMemberNameResolver nameResolver) - { - _nameResolver = nameResolver; - } - - /// - /// Deserializes a single item. - /// - /// The serialized item. - /// An instance of the serialized item. - public T Deserialize(Stream input) - { - var content = new StreamReader(input).ReadToEnd(); - - var dictionary = (Dictionary)_innerSerializer.DeserializeObject(content); - var selectorFunction = CreateSelector(dictionary); - return selectorFunction(dictionary); - } - - /// - /// Deserializes a list of items. - /// - /// The serialized items. - /// An list of the serialized items. - public IEnumerable DeserializeList(Stream input) - { - var content = new StreamReader(input).ReadToEnd(); - return ReadToAnonymousType(content); - } - - /// - /// Serializes the passed item into a . - /// - /// The item to serialize. - /// A representation of the item. - public Stream Serialize(T item) - { - var ms = new MemoryStream(); - var writer = new StreamWriter(ms); - writer.Write(_innerSerializer.Serialize(item)); - writer.Flush(); - ms.Position = 0; - return ms; - } - - private static Type GetMemberType(MemberInfo member) - { - switch (member.MemberType) - { - case MemberTypes.Field: - return ((FieldInfo)member).FieldType; - case MemberTypes.Method: - return ((MethodInfo)member).ReturnType; - case MemberTypes.Property: - return ((PropertyInfo)member).PropertyType; - default: - throw new ArgumentOutOfRangeException(); - } - } - - private IEnumerable ReadToAnonymousType(string response) - { - var deserializeObject = _innerSerializer.DeserializeObject(response); - var enumerable = deserializeObject as IEnumerable; - - if (enumerable == null) - { - return new List(); - } - - var objectEnumerable = enumerable.OfType>().ToArray(); - - if (objectEnumerable.Length == 0) - { - return new List(); - } - - var first = objectEnumerable[0]; - - var selectorFunction = CreateSelector(first); - - Contract.Assume(selectorFunction != null, "Compiled above."); - - return objectEnumerable.Select(selectorFunction).ToList(); - } - - private Func CreateSelector(IDictionary deserializedObject) - { - var objectParameter = Expression.Parameter(typeof(object), "x"); - var keys = deserializedObject.Keys; - - var properties = typeof(T).GetProperties(); - - var bindings = (from key in keys - let alias = _nameResolver.ResolveAlias(_sourceType, key) - where properties.Any(p => p.Name == alias.Name) - let member = _nameResolver.ResolveName(alias) - let memberType = GetMemberType(alias) - let arguments = new[] { Expression.Constant(member) } - let indexExpression = Expression.MakeIndex( - Expression.Convert(objectParameter, _deserializedType), - _deserializedType.GetProperty("Item"), - arguments) - select Expression.Convert( - Expression.Call( - AnonymousTypeSerializerHelper.InnerChangeTypeMethod, - indexExpression, - Expression.Constant(memberType)), - memberType)) - .ToArray(); - - var constructorInfo = _elementType.GetConstructors().FirstOrDefault(); - - var selector = - Expression.Lambda>( - Expression.New(constructorInfo, bindings), objectParameter); - var selectorFunction = selector.Compile(); - - return selectorFunction; - } - - [ContractInvariantMethod] - private void Invariants() - { - Contract.Invariant(_innerSerializer != null); - Contract.Invariant(_elementType != null); - } - } - - internal static class AnonymousTypeSerializerHelper - { - public static readonly MethodInfo InnerChangeTypeMethod = typeof(Convert).GetMethod("ChangeType", new[] { typeof(object), typeof(Type) }); - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.Net45.csproj b/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.Net45.csproj deleted file mode 100644 index 406ed4c..0000000 --- a/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.Net45.csproj +++ /dev/null @@ -1,197 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {388C7FD1-1BB7-426C-9DCC-44949BA804E2} - Library - Properties - Linq2Rest.Reactive.Tests - Linq2Rest.Reactive.Tests - v4.5 - 512 - 1 - ..\ - true - - - - true - full - false - bin\v4.5\Debug\ - obj\v4.5 - DEBUG;TRACE - prompt - 4 - False - True - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - False - - - - - - - False - Full - DoNotBuild - 0 - false - - - pdbonly - true - bin\v4.5\Release\ - obj\v4.5 - TRACE - prompt - 4 - True - True - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - False - - - - - - - False - None - DoNotBuild - 0 - false - True - True - True - False - True - False - True - True - - False - False - True - - - false - - - false - - - ..\Linq2Rest.snk - - - - ..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll - - - ..\packages\NUnit.2.6.3\lib\nunit.framework.dll - - - - - - ..\packages\Rx-Core.2.2.4\lib\net45\System.Reactive.Core.dll - - - ..\packages\Rx-Interfaces.2.2.4\lib\net45\System.Reactive.Interfaces.dll - - - ..\packages\Rx-Linq.2.2.4\lib\net45\System.Reactive.Linq.dll - - - ..\packages\Rx-PlatformServices.2.2.4\lib\net45\System.Reactive.PlatformServices.dll - - - ..\packages\Rx-Providers.2.2.4\lib\net45\System.Reactive.Providers.dll - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - {f7d2a74e-5a11-4fc9-8aa4-d0d3431bbf40} - Linq2Rest.Net45 - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.csproj b/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.csproj deleted file mode 100644 index ae5da12..0000000 --- a/Linq2Rest.Reactive.Tests/Linq2Rest.Reactive.Tests.csproj +++ /dev/null @@ -1,204 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {8D19958C-1F14-436E-AE2C-ECD8E58998EB} - Library - Properties - Linq2Rest.Reactive.Tests - Linq2Rest.Reactive.Tests - v4.0 - 512 - 1 - ..\ - true - - - true - full - false - bin\v4.0\Debug\ - obj\v4.0 - DEBUG;TRACE - prompt - 4 - False - True - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - False - - - - - - - False - Full - DoNotBuild - 0 - - - pdbonly - true - bin\v4.0\Release\ - obj\v4.0 - TRACE - prompt - 4 - True - True - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - False - - - - - - - False - None - DoNotBuild - 0 - True - True - True - False - True - False - True - True - - False - False - True - - - false - - - ..\Linq2Rest.snk - - - false - - - - ..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll - True - - - ..\packages\NUnit.2.6.3\lib\nunit.framework.dll - True - - - - - - ..\packages\Rx-Core.2.2.4\lib\net40\System.Reactive.Core.dll - True - - - ..\packages\Rx-Interfaces.2.2.4\lib\net40\System.Reactive.Interfaces.dll - True - - - ..\packages\Rx-Linq.2.2.4\lib\net40\System.Reactive.Linq.dll - True - - - ..\packages\Rx-PlatformServices.2.2.4\lib\net40\System.Reactive.PlatformServices.dll - True - - - ..\packages\Rx-Providers.2.2.4\lib\net40\System.Reactive.Providers.dll - True - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - {B0AF1230-AF6C-4305-B4D1-7172A3BE9715} - Linq2Rest.Reactive - - - {FEF6620A-87C8-43B4-92BD-5FAAD183CBC7} - Linq2Rest - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/ODataCustomerServiceTests.cs b/Linq2Rest.Reactive.Tests/ODataCustomerServiceTests.cs deleted file mode 100644 index 91d56c1..0000000 --- a/Linq2Rest.Reactive.Tests/ODataCustomerServiceTests.cs +++ /dev/null @@ -1,99 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataCustomerServiceTests type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests -{ - using System; - using System.Reactive.Linq; - using System.Threading; - using Linq2Rest.Reactive.Implementations; - using Linq2Rest.Reactive.Tests.Fakes; - using NUnit.Framework; - - [TestFixture] - public class ODataCustomerServiceTests - { - private RestObservable _customerContext; - - [TestFixtureSetUp] - public void FixtureSetup() - { - // Tests against the sample OData service. - _customerContext = new RestObservable( - new AsyncJsonRestClientFactory(new Uri("http://services.odata.org/Northwind/Northwind.svc/Customers")), - new TestODataSerializerFactory()); - } - - [Test] - public void WhenRequestingCustomerByNameEndsWithThenLoadsCustomer() - { - var waitHandle = new ManualResetEvent(false); - - _customerContext - .Create() - .Where(x => x.CompanyName.EndsWith("Futterkiste")) - .Subscribe( - x => waitHandle.Set(), - e => Console.WriteLine(e.Message), - () => waitHandle.Set()); - - var result = waitHandle.WaitOne(5000); - - Assert.True(result); - } - - [Test] - public void WhenRequestingCustomerByNameLengthThenLoadsCustomer() - { - var waitHandle = new ManualResetEvent(false); - - _customerContext - .Create() - .Where(x => x.CompanyName.Length > 10) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - - [Test] - public void WhenRequestingCustomerByNameStartsWithThenLoadsCustomer() - { - var waitHandle = new ManualResetEvent(false); - - _customerContext - .Create() - .Where(x => x.CompanyName.StartsWith("Alfr")) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - - [Test] - public void WhenRequestingCustomerByNameThenLoadsCustomer() - { - var waitHandle = new ManualResetEvent(false); - - _customerContext - .Create() - .Where(x => x.CompanyName.IndexOf("Alfreds") > -1) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Properties/AssemblyInfo.cs b/Linq2Rest.Reactive.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index f501b0f..0000000 --- a/Linq2Rest.Reactive.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,42 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// AssemblyInfo.cs -// -// -------------------------------------------------------------------------------------------------------------------- - -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Linq2Rest.Rx.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Linq2Rest.Rx.Tests")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4fdf2a24-a930-4a1a-a891-def18656b1db")] - -// Version information for an assembly consists of the following four values: -// Major Version -// Minor Version -// Build Number -// Revision -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("4.1.0.0")] -[assembly: AssemblyFileVersion("4.1.0.0")] diff --git a/Linq2Rest.Reactive.Tests/RequestTests.cs b/Linq2Rest.Reactive.Tests/RequestTests.cs deleted file mode 100644 index ffa5394..0000000 --- a/Linq2Rest.Reactive.Tests/RequestTests.cs +++ /dev/null @@ -1,316 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the RequestTests type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests -{ - using System; - using System.IO; - using System.Linq; - using System.Linq.Expressions; - using System.Reactive.Linq; - using System.Threading; - using System.Threading.Tasks; - using Linq2Rest.Reactive.Tests.Fakes; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class RequestTests - { - private Mock _mockRestClient; - private Mock _mockClientFactory; - private RestObservable _observable; - - [SetUp] - public void Setup() - { - _mockRestClient = new Mock(); - _mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - _mockClientFactory = new Mock(); - _mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - _mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(_mockRestClient.Object); - - _observable = new RestObservable(_mockClientFactory.Object, new TestSerializerFactory()); - } - - [Test] - public void WhenAnyExpressionRequiresEagerEvaluationThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.IntValue <= 3) - .Any(x => x.DoubleValue.Equals(3d)) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(2000); - - var requestUri = new Uri("http://localhost/?$filter=Number+le+3"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingAllQueryThenCallsRestServiceWithFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.Children.All(y => y.Text == "blah")) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(2000); - - var requestUri = new Uri("http://localhost/?$filter=Children%2fall(y:+y%2fText+eq+'blah')"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingAnyQueryThenCallsRestServiceWithFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.Children.Any(y => y.Text == "blah")) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(2000); - - var requestUri = new Uri("http://localhost/?$filter=Children%2fany(y:+y%2fText+eq+'blah')"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingNestedAllQueryThenCallsRestServiceWithFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.Children.All(y => y.Descendants.Any(z => z.Text == "blah"))) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(2000); - - var requestUri = new Uri("http://localhost/?$filter=Children%2fall(y:+y%2fDescendants%2fany(z:+z%2fText+eq+'blah'))"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingProjectionThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Select(x => new { x.StringValue, x.IntValue }) - .Subscribe(x => waitHandle.Set(), e => - { - Console.WriteLine(e.Message); - waitHandle.Set(); - }, () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$select=StringValue,Number"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingQueryThenCallsRestServiceOnce() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.IntValue <= 3) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - _mockClientFactory.Verify(x => x.Create(It.IsAny()), Times.Once()); - } - - [Test] - public void WhenApplyingQueryWithMultipleFiltersThenCallsRestServiceWithSingleFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.IntValue <= 3) - .Where(x => x.StringValue == "blah") - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$filter=(Number+le+3)+and+(StringValue+eq+'blah')"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingQueryWithNoFilterThenCallsRestServiceOnce() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingSkipFilterThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Skip(1) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$skip=1"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenApplyingTakeFilterThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Take(1) - - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$top=1"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenGroupByExpressionRequiresEagerEvaluationThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - - _observable - .Create() - .Where(x => x.IntValue <= 3) - .GroupBy(x => x.StringValue) - .Subscribe( - x => waitHandle.Set(), - e => - { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); - waitHandle.Set(); - }, - () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$filter=Number+le+3"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenMainExpressionIsContainedInIsTrueExpressionThenUsesOperandExpression() - { - var waitHandle = new ManualResetEvent(false); - - var parameter = Expression.Parameter(typeof(FakeItem), "x"); - var trueExpression = - Expression.IsTrue( - Expression.LessThanOrEqual(Expression.Property(parameter, "IntValue"), Expression.Constant(3))); - - _observable - .Create() - .Where(Expression.Lambda>(trueExpression, parameter)) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$filter=Number+le+3"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenQueryIncludesFinalEffectsThenInvokesSideEffect() - { - _mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[{\"DoubleValue\":1.2}]".ToStream())); - var waitHandle = new ManualResetEvent(false); - var action = new Action(() => waitHandle.Set()); - var mockObserver = new Mock>(); - - _observable - .Create() - .Take(1) - .Finally(action) - .Subscribe(mockObserver.Object); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - - [Test] - public void WhenQueryIncludesSideEffectsThenCallsRestServiceWithExistingFilterParameter() - { - var waitHandle = new ManualResetEvent(false); - var action = new Action(x => { }); - - _observable - .Create() - .Take(1) - .Do(action) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(); - - var requestUri = new Uri("http://localhost/?$top=1"); - _mockClientFactory.Verify(x => x.Create(requestUri), Times.Once()); - } - - [Test] - public void WhenQueryIncludesSideEffectsThenInvokesSideEffect() - { - _mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[{\"DoubleValue\":1.2}]".ToStream())); - var waitHandle = new ManualResetEvent(false); - var action = new Action(x => waitHandle.Set()); - var mockObserver = new Mock>(); - - _observable - .Create() - .Take(1) - .Do(action) - .Subscribe(mockObserver.Object); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - } -} diff --git a/Linq2Rest.Reactive.Tests/RestObservableTests.cs b/Linq2Rest.Reactive.Tests/RestObservableTests.cs deleted file mode 100644 index 8078f8e..0000000 --- a/Linq2Rest.Reactive.Tests/RestObservableTests.cs +++ /dev/null @@ -1,285 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the RestObservableTests type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests -{ - using System; - using System.IO; - using System.Reactive.Concurrency; - using System.Reactive.Linq; - using System.Threading; - using System.Threading.Tasks; - using Linq2Rest.Reactive.Tests.Fakes; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class RestObservableTests - { - [Test] - public void CanCreateQbservable() - { - Assert.DoesNotThrow( - () => new RestObservable( - new FakeAsyncRestClientFactory(), - new TestSerializerFactory())); - } - - [Test] - public void CanCreateSubscription() - { - var waitHandle = new ManualResetEvent(false); - var observable = new RestObservable(new FakeAsyncRestClientFactory(), new TestSerializerFactory()); - - observable - .Create() - .SubscribeOn(NewThreadScheduler.Default) - .Where(x => x.StringValue == "blah") - .ObserveOn(Scheduler.Default) - .Subscribe( - x => - { - Console.WriteLine(Thread.CurrentThread.ManagedThreadId); - waitHandle.Set(); - }, - () => - { - Console.WriteLine(Thread.CurrentThread.ManagedThreadId); - waitHandle.Set(); - }); - - var result = waitHandle.WaitOne(5000); - - Assert.True(result); - } - - [Test] - public void WhenDisposingSubscriptionThenDoesNotExecute() - { - var completedWaitHandle = new ManualResetEvent(false); - var onnextWaitHandle = new ManualResetEvent(false); - - var observable = new RestObservable(new FakeAsyncRestClientFactory(2000), new TestSerializerFactory()); - var subscription = observable - .Create() - .Where(x => x.StringValue == "blah") - .ObserveOn(Scheduler.CurrentThread) - .Subscribe(x => onnextWaitHandle.Set(), () => completedWaitHandle.Set()); - - subscription.Dispose(); - - var next = onnextWaitHandle.WaitOne(2000); - var completed = completedWaitHandle.WaitOne(2000); - - Assert.False(next); - Assert.True(completed); - } - - [Test] - public void WhenGettingSingleThenReturnsResults() - { - var observable = new RestObservable(new FakeAsyncRestClientFactory(), new TestSerializerFactory()); - var result = observable - .Create() - .Where(x => x.StringValue == "blah") - .SingleOrDefault(); - - Assert.Null(result); - } - - [Test] - public void WhenGroupingSourceThenReturnsResults() - { - var waitHandle = new ManualResetEvent(false); - var observable = new RestObservable(new FakeAsyncRestClientFactory(), new TestSerializerFactory()); - observable - .Create() - .Where(x => x.StringValue == "blah") - .GroupBy(x => x.StringValue) - .Subscribe( - x => { }, - e => - { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); - waitHandle.Set(); - }, - () => waitHandle.Set()); - - var result = waitHandle.WaitOne(); - - Assert.True(result); - } - - [Test] - public void WhenInvokingDeleteThenHttpMethodIsSetOnClientFactory() - { - var waitHandle = new ManualResetEvent(false); - - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(mockRestClient.Object); - - new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Create() - .Delete() - .Where(x => x.StringValue == "blah") - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(5000); - - mockClientFactory.Verify(x => x.SetMethod(HttpMethod.Delete)); - } - - [Test] - public void WhenInvokingPostThenHttpMethodIsSetOnClientFactory() - { - var waitHandle = new ManualResetEvent(false); - - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(mockRestClient.Object); - - new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Create() - .Post(() => 1) - .Where(x => x.StringValue == "blah") - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(5000); - - mockClientFactory.Verify(x => x.SetMethod(HttpMethod.Post)); - } - - [Test] - public void WhenInvokingPutThenHttpMethodIsSetOnClientFactory() - { - var waitHandle = new ManualResetEvent(false); - - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(mockRestClient.Object); - - new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Create() - .Put(() => 1) - .Where(x => x.StringValue == "blah") - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(5000); - - mockClientFactory.Verify(x => x.SetMethod(HttpMethod.Put)); - } - - [Test] - public void WhenInvokingThenCallsRestClient() - { - var waitHandle = new ManualResetEvent(false); - - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(mockRestClient.Object); - - new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Create() - .Where(x => x.StringValue == "blah") - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(5000); - - mockRestClient.Verify(x => x.Download()); - } - - [Test] - public void WhenInvokingWithExpandThenCallsRestClient() - { - var waitHandle = new ManualResetEvent(false); - - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())).Returns(mockRestClient.Object); - - new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Create() - .Expand(i => i.Children, i => i.MoreChildren) - .Subscribe(x => waitHandle.Set(), () => waitHandle.Set()); - - waitHandle.WaitOne(5000); - - mockRestClient.Verify(x => x.Download()); - } - - [Test] - public void WhenObservingOnDifferentSchedulerThenInvocationHappensOnDifferentThread() - { - var testThreadId = Thread.CurrentThread.ManagedThreadId; - - var waitHandle = new ManualResetEvent(false); - var observable = new RestObservable(new FakeAsyncRestClientFactory(), new TestSerializerFactory()); - observable - .Create() - .Where(x => x.StringValue == "blah") - .ObserveOn(Scheduler.Default) - .Subscribe( - x => - { - }, - () => - { - var observerThreadId = Thread.CurrentThread.ManagedThreadId; - if (observerThreadId != testThreadId) - { - waitHandle.Set(); - } - }); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - } - - [Test] - public void WhenResultReturnedThenCompletesSubscription() - { - var waitHandle = new ManualResetEvent(false); - var observable = new RestObservable(new FakeAsyncRestClientFactory(), new TestSerializerFactory()); - var subscription = observable - .Create() - .Where(x => x.StringValue == "blah") - .Subscribe(x => { }, () => waitHandle.Set()); - - var result = waitHandle.WaitOne(); - - Assert.True(result); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/Settings.StyleCop b/Linq2Rest.Reactive.Tests/Settings.StyleCop deleted file mode 100644 index f8a65f2..0000000 --- a/Linq2Rest.Reactive.Tests/Settings.StyleCop +++ /dev/null @@ -1,6 +0,0 @@ - - - Linked - ..\SolutionSettings.StyleCop - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/TriggeredRestObservableTests.cs b/Linq2Rest.Reactive.Tests/TriggeredRestObservableTests.cs deleted file mode 100644 index b6240ca..0000000 --- a/Linq2Rest.Reactive.Tests/TriggeredRestObservableTests.cs +++ /dev/null @@ -1,99 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the TriggeredRestObservableTests type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Tests -{ - using System; - using System.IO; - using System.Reactive; - using System.Reactive.Concurrency; - using System.Reactive.Linq; - using System.Threading; - using System.Threading.Tasks; - using Linq2Rest.Reactive.Tests.Fakes; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class TriggeredRestObservableTests - { - [Test] - public void WhenDisposingPollSubscriptionThenCompletes() - { - var waitHandle = new ManualResetEvent(false); - var factory = new FakeAsyncRestClientFactory("[{\"Text\":\"blah\", \"Number\":1}]"); - var observable = new RestObservable(factory, new TestSerializerFactory()); - var subscription = observable - .Poll(Observable.Interval(TimeSpan.FromSeconds(0.5)).Select(x => Unit.Default)) - .Where(x => x.StringValue == "blah") - .Subscribe(x => { }, () => waitHandle.Set()); - - Task.Factory.StartNew( - () => - { - Thread.Sleep(1000); - subscription.Dispose(); - }); - - var result = waitHandle.WaitOne(2000); - - Assert.True(result); - - subscription.Dispose(); - } - - [Test] - public void WhenInvokingThenCallsRestClient() - { - var waitHandle = new ManualResetEvent(false); - var mockRestClient = new Mock(); - mockRestClient.Setup(x => x.Download()) - .Returns(() => Task.Factory.StartNew(() => "[]".ToStream())); - - var mockClientFactory = new Mock(); - mockClientFactory.SetupGet(x => x.ServiceBase).Returns(new Uri("http://localhost")); - mockClientFactory.Setup(x => x.Create(It.IsAny())) - .Callback(Console.WriteLine) - .Returns(mockRestClient.Object); - - var subscription = new RestObservable(mockClientFactory.Object, new TestSerializerFactory()) - .Poll(Observable.Repeat(Unit.Default, 2)) - .Where(x => x.IntValue == 2) - .Subscribe(x => { }, () => waitHandle.Set()); - - waitHandle.WaitOne(2000); - - mockClientFactory.Verify(x => x.Create(It.IsAny()), Times.Exactly(2)); - - subscription.Dispose(); - } - - [Test] - public void WhenObservablePollsThenDoesNotComplete() - { - var waitHandle = new ManualResetEvent(false); - var factory = new FakeAsyncRestClientFactory("[{\"Text\":\"blah\", \"Number\":1}]"); - var observable = new RestObservable(factory, new TestSerializerFactory()); - var subscription = observable - .Poll(Observable.Interval(TimeSpan.FromSeconds(0.5)).Select(x => Unit.Default)) - .ObserveOn(TaskPoolScheduler.Default) - .Where(x => x.StringValue == "blah") - .Subscribe(x => { }, () => waitHandle.Set()); - - var result = waitHandle.WaitOne(2000); - - Assert.False(result); - - subscription.Dispose(); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.Tests/packages.config b/Linq2Rest.Reactive.Tests/packages.config deleted file mode 100644 index 773ef6f..0000000 --- a/Linq2Rest.Reactive.Tests/packages.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/App.xaml b/Linq2Rest.Reactive.WP7Sample/App.xaml deleted file mode 100644 index 90df09f..0000000 --- a/Linq2Rest.Reactive.WP7Sample/App.xaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/App.xaml.cs b/Linq2Rest.Reactive.WP7Sample/App.xaml.cs deleted file mode 100644 index a7a4734..0000000 --- a/Linq2Rest.Reactive.WP7Sample/App.xaml.cs +++ /dev/null @@ -1,148 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the App type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample -{ - using System.Diagnostics; - using System.Threading; - using System.Windows; - using System.Windows.Navigation; - using System.Windows.Threading; - using Microsoft.Phone.Controls; - using Microsoft.Phone.Shell; - - public partial class App : Application - { - // Avoid double-initialization - private bool _phoneApplicationInitialized = false; - - /// - /// Initializes a new instance of the class. - /// - public App() - { - SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext()); - - // Global handler for uncaught exceptions. - UnhandledException += Application_UnhandledException; - - // Standard Silverlight initialization - InitializeComponent(); - - // Phone-specific initialization - InitializePhoneApplication(); - - // Show graphics profiling information while debugging. - if (Debugger.IsAttached) - { - // Display the current frame rate counters. - Current.Host.Settings.EnableFrameRateCounter = true; - - // Show the areas of the app that are being redrawn in each frame. - // Application.Current.Host.Settings.EnableRedrawRegions = true; - - // Enable non-production analysis visualization mode, - // which shows areas of a page that are handed off to GPU with a colored overlay. - // Application.Current.Host.Settings.EnableCacheVisualization = true; - - // Disable the application idle detection by setting the UserIdleDetectionMode property of the - // application's PhoneApplicationService object to Disabled. - // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run - // and consume battery power when the user is not using the phone. - PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; - } - } - - /// - /// Provides easy access to the root frame of the Phone Application. - /// - /// The root frame of the Phone Application. - public PhoneApplicationFrame RootFrame { get; private set; } - - // Code to execute when the application is launching (eg, from Start) - // This code will not execute when the application is reactivated - private void Application_Launching(object sender, LaunchingEventArgs e) - { - } - - // Code to execute when the application is activated (brought to foreground) - // This code will not execute when the application is first launched - private void Application_Activated(object sender, ActivatedEventArgs e) - { - } - - // Code to execute when the application is deactivated (sent to background) - // This code will not execute when the application is closing - private void Application_Deactivated(object sender, DeactivatedEventArgs e) - { - } - - // Code to execute when the application is closing (eg, user hit Back) - // This code will not execute when the application is deactivated - private void Application_Closing(object sender, ClosingEventArgs e) - { - } - - // Code to execute if a navigation fails - private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e) - { - if (Debugger.IsAttached) - { - // A navigation has failed; break into the debugger - Debugger.Break(); - } - } - - // Code to execute on Unhandled Exceptions - private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) - { - if (Debugger.IsAttached) - { - // An unhandled exception has occurred; break into the debugger - Debugger.Break(); - } - } - - // Do not add any additional code to this method - private void InitializePhoneApplication() - { - if (_phoneApplicationInitialized) - { - return; - } - - // Create the frame but don't set it as RootVisual yet; this allows the splash - // screen to remain active until the application is ready to render. - RootFrame = new PhoneApplicationFrame(); - RootFrame.Navigated += CompleteInitializePhoneApplication; - - // Handle navigation failures - RootFrame.NavigationFailed += RootFrame_NavigationFailed; - - // Ensure we don't initialize again - _phoneApplicationInitialized = true; - } - - // Do not add any additional code to this method - private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) - { - // Set the root visual to allow the application to render - if (RootVisual != RootFrame) - { - RootVisual = RootFrame; - } - - // Remove this handler since it is no longer needed - RootFrame.Navigated -= CompleteInitializePhoneApplication; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/ApplicationIcon.png b/Linq2Rest.Reactive.WP7Sample/ApplicationIcon.png deleted file mode 100644 index 5859393ca1056103ba35d225773352a9fa3ab754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1881 zcmV-f2d4OmP)GXLPE9uD;d|3K9jFs0^O3no;*#kUHY6H}PH_^L3*aj} zl+rSw?L`W0p^tkju#a}u3PxyqFY3}?ZpgV`?z#P)?|kQbU67g4(Jt>MC@$|ToYbAv zoz$Jwoz$JwUyrEBh@^xBYY9T32$%4g4Eozd9YH8m>Im7iz@UwrH+y+`StMa0!Jlv1 zOs9{eP8~IOLbaYWZ(elNbZg1v$&=#~5`=udMY3Y~^2n$tPDrTrV}g_vPDsd`qdqj` z?(SZ2=x{`MxJ4Ea7yy62*t!)g2L{u*+?5%tV8G+?EYFApOLBK?H(-W0sdbrL7RKcs zEi7D+mK#@=wJ2&3^B#Z6SE|tW^ z&fa_A0KDdD7g}CkuGQ%*uYy_6tlm5}8JiaBN~M03ks%g~tMA@5>&#%lv|6osRa0w$GfX-lmv6;tg7E35t(xdFTQCUeAbpwWpTg5+|K7IY# zwbIg(hK5FUUmu3O*mrLl?KRUayoa}&LPcB<-$|3+(JUi7*{UTR~?sv$M1P1N>*rj)mLHrKNHON-lLA!%9m^1R@cPXUv=l zmwktfMx&WuVn$tE?SL(YK0XhFAR`119z6nm6Brlagxr7dz}8t~Yn@7=%#V+Eb8|(} zt{zpd`CNjX*sbr;=t5DIS`Dt#+slj1W=)+krM;u$iMZ8K>adS$jr!2xBjD^>TUvBF z9d0yoxm*IZ?l;-5Ain@y6NACvgojsGRpsU7j%^L&Y-U7+haE2}3J&Fvoey?)v}dhb zCu#eKuxQ%SD*0;n9-YaBlZv8a$Hv3kwrJWRlMUc_^1_AW@h&SVIeq4*!NEa-a~Q~4 z+oV!0nTl_2YVx!S#tzx~^ayTn&@|YYz@VU6F)=fuXV94}i1{Q@*QnG@O^x-nwNi;h z*`t)BXsbkOr-$)j`>g(C&HN({S~o10_f z;%IdG#4O<1vuEG#-(Pg%q)ef3=$L{Rf85e?x28HGf*TMRL^f|}YwPyhobszzVFAQ= zm~N%=UR|9)Ab@0*RDI`VXWyx=A<{WQ0h*baId@(Hx%~+Wg~envH8%FDRE|=IfS_Gc9lLglmM*of63B)(jlMWFl^Yh` z-PHwg&`!V3goKDr=Y)nNCGiA8A;+rnCkfqM=&e6)R#x6>e)2@4>Few7cQpMPZm{_I z@>5c?^YUI_#W{jAr%qkC_-ltu?lLq)WR>)^Tj}QN>OSs3Z67*1WyCi#!0z{cbAY@o z006~x)1!xywl>13BNU2g3IFKvB5+=0+j?T+{J*NJA&d|~9YF+(7w2r-hRPK^N~OV| z*K2jK7)uw$abO06sz<3-X}VB_(P)g1kH1%6r&4Pit&*rzYH08@48w6FjvxpyMqH5G z+#G(IkSOXBu{bAtE4UNjJv2Dv?d^r*xNNN6#<*(JR_RN|$7Zqo{R0Rz5+7e*D63_1 z1<}onQAk;|C^{yFKD+Wz{HrNFFf|SuX0K6dp!F8pg;@r>Y=rsCpr)?Z@)E?>v3>(o$ zrqR3^&og+a=b!w5N57jd;8|i|GIMu#V_YC94Rc^kd-O#lzDi#4-5>B z`F?^uj5UIS0&A+OHhi}J_wsTa!}NN6eQllj6z=lWJG4TH)* z?`+z*0Yy=!W5up*A7no6n!nw*wo>MkzI-d?@orCP?%cM_FCIaX9;>6gpovZ%<&lG0MhzAcYIoOgsb z0n|ss&CTu6!-opA%OZibfuXl|${hS;XMd^jw!!)D4NmG#>Q3rT>i;k5{|Ybw$j9Fp Tu#Z&K00000NkvXXu0mjfnP|DN diff --git a/Linq2Rest.Reactive.WP7Sample/Background.png b/Linq2Rest.Reactive.WP7Sample/Background.png deleted file mode 100644 index e46f21d9407f1ae4d6fedcf793778f32bae3f06d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3521 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 diff --git a/Linq2Rest.Reactive.WP7Sample/Linq2Rest.Reactive.WP8.Sample.csproj b/Linq2Rest.Reactive.WP7Sample/Linq2Rest.Reactive.WP8.Sample.csproj deleted file mode 100644 index 1a18745..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Linq2Rest.Reactive.WP8.Sample.csproj +++ /dev/null @@ -1,174 +0,0 @@ - - - - Debug - AnyCPU - 10.0.20506 - 2.0 - {EC6D6A2B-62D4-4161-BBFF-B72CEDA2EE71} - {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - Linq2Rest.Reactive.WP8.Sample - Linq2Rest.Reactive.WP8.Sample - v8.0 - - - - - WindowsPhone - true - - - true - true - Linq2Rest.Reactive.WP8.Sample_Debug_AnyCPU.xap - Properties\AppManifest.xml - Linq2Rest.Reactive.WP8.Sample.App - true - true - ..\ - true - 11.0 - - - true - full - false - Bin\Debug - DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE - true - true - prompt - 4 - false - - - pdbonly - true - Bin\Release - TRACE;SILVERLIGHT;WINDOWS_PHONE - true - true - prompt - 4 - false - - - true - Bin\x86\Debug - DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE - true - full - - - prompt - MinimumRecommendedRules.ruleset - false - - - Bin\x86\Release - TRACE;SILVERLIGHT;WINDOWS_PHONE - true - true - pdbonly - - - prompt - MinimumRecommendedRules.ruleset - - - true - Bin\ARM\Debug - DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE - true - full - - - prompt - MinimumRecommendedRules.ruleset - false - - - Bin\ARM\Release - TRACE;SILVERLIGHT;WINDOWS_PHONE - true - true - pdbonly - - - prompt - MinimumRecommendedRules.ruleset - - - - App.xaml - - - MainPage.xaml - - - - - - - - - - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - - - Designer - - - - - - PreserveNewest - - - PreserveNewest - - - - - - ..\packages\Rx-Core.2.2.4\lib\windowsphone8\System.Reactive.Core.dll - - - ..\packages\Rx-Interfaces.2.2.4\lib\windowsphone8\System.Reactive.Interfaces.dll - - - ..\packages\Rx-Linq.2.2.4\lib\windowsphone8\System.Reactive.Linq.dll - - - ..\packages\Rx-PlatformServices.2.2.4\lib\windowsphone8\System.Reactive.PlatformServices.dll - - - ..\packages\Rx-Providers.2.2.4\lib\windowsphone8\System.Reactive.Providers.dll - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/MainPage.xaml b/Linq2Rest.Reactive.WP7Sample/MainPage.xaml deleted file mode 100644 index f96a506..0000000 --- a/Linq2Rest.Reactive.WP7Sample/MainPage.xaml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/MainPage.xaml.cs b/Linq2Rest.Reactive.WP7Sample/MainPage.xaml.cs deleted file mode 100644 index eed445f..0000000 --- a/Linq2Rest.Reactive.WP7Sample/MainPage.xaml.cs +++ /dev/null @@ -1,50 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the MainPage type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample -{ - using System; - using System.Collections.ObjectModel; - using System.Reactive; - using System.Reactive.Concurrency; - using System.Reactive.Linq; - using System.Threading; - using Linq2Rest.Reactive.WP8.Sample.Models; - using Linq2Rest.Reactive.WP8.Sample.Support; - using Microsoft.Phone.Controls; - - public partial class MainPage : PhoneApplicationPage - { - private readonly IDisposable _nugetObservable; - private readonly ObservableCollection _packageCollection; - - public MainPage() - { - _packageCollection = new ObservableCollection(); - Resources.Add("Packages", _packageCollection); - InitializeComponent(); - var trigger = Observable.FromEventPattern(txtSearch, "TextChanged") - .Throttle(TimeSpan.FromMilliseconds(300)) - .Do(_ => Dispatcher.BeginInvoke(() => _packageCollection.Clear())) - .Select(_ => Unit.Default); - _nugetObservable = new RestObservable( - new AsyncJsonRestClientFactory(new Uri("http://nuget.org/api/v2/Packages")), - new ODataSerializerFactory()) - .Poll(trigger) - .Where(p => p.Id.ToLower() - .Contains(txtSearch.Text)) - .ObserveOn(new SynchronizationContextScheduler(SynchronizationContext.Current)) - .SubscribeOn(new SynchronizationContextScheduler(SynchronizationContext.Current)) - .SubscribeSafe(Observer.Create(_packageCollection.Add)); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/Models/NugetPackage.cs b/Linq2Rest.Reactive.WP7Sample/Models/NugetPackage.cs deleted file mode 100644 index e686d2f..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Models/NugetPackage.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the NugetPackage type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Models -{ - using System; - using System.Runtime.Serialization; - - [DataContract] - public class NugetPackage - { - [DataMember] - public string Id { get; set; } - - [DataMember] - public string Version { get; set; } - - [DataMember] - public string Authors { get; set; } - - [DataMember] - public string Copyright { get; set; } - - [DataMember] - public DateTime Created { get; set; } - - [DataMember] - public string Dependencies { get; set; } - - [DataMember] - public string Description { get; set; } - - [DataMember] - public int DownloadCount { get; set; } - - [DataMember] - public string GalleryDetailsUrl { get; set; } - - [DataMember] - public string IconUrl { get; set; } - - [DataMember] - public bool IsLatestVersion { get; set; } - - [DataMember] - public bool IsAbsoluteLatestVersion { get; set; } - - [DataMember] - public bool IsPrerelease { get; set; } - - [DataMember] - public DateTime LastUpdated { get; set; } - - [DataMember] - public DateTime Published { get; set; } - - [DataMember] - public string Language { get; set; } - - [DataMember] - public string LicenseUrl { get; set; } - - [DataMember] - public string PackageHash { get; set; } - - [DataMember] - public string PackageHashAlgorithm { get; set; } - - [DataMember] - public long PackageSize { get; set; } - - [DataMember] - public string ProjectUrl { get; set; } - - [DataMember] - public string ReportAbuseUrl { get; set; } - - [DataMember] - public string ReleaseNotes { get; set; } - - [DataMember] - public bool RequireLicenseAcceptance { get; set; } - - [DataMember] - public string Summary { get; set; } - - [DataMember] - public string Tags { get; set; } - - [DataMember] - public string Title { get; set; } - - [DataMember] - public int VersionDownloadCount { get; set; } - } -} diff --git a/Linq2Rest.Reactive.WP7Sample/Properties/AppManifest.xml b/Linq2Rest.Reactive.WP7Sample/Properties/AppManifest.xml deleted file mode 100644 index a955232..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Properties/AppManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/Linq2Rest.Reactive.WP7Sample/Properties/AssemblyInfo.cs b/Linq2Rest.Reactive.WP7Sample/Properties/AssemblyInfo.cs deleted file mode 100644 index 1300367..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,43 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// AssemblyInfo.cs -// -// -------------------------------------------------------------------------------------------------------------------- - -using System.Reflection; -using System.Resources; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Linq2Rest.Reactive.WP7Sample")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Reimers.dk")] -[assembly: AssemblyProduct("Linq2Rest.Reactive.WP7Sample")] -[assembly: AssemblyCopyright("Copyright © Reimers.dk 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a43d841c-f41e-42eb-8db5-934c1200e39e")] - -// Version information for an assembly consists of the following four values: -// Major Version -// Minor Version -// Build Number -// Revision -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("2.2.0")] -[assembly: AssemblyFileVersion("2.2.0")] -[assembly: NeutralResourcesLanguage("en-US")] diff --git a/Linq2Rest.Reactive.WP7Sample/Properties/WMAppManifest.xml b/Linq2Rest.Reactive.WP7Sample/Properties/WMAppManifest.xml deleted file mode 100644 index b48f79b..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Properties/WMAppManifest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - ApplicationIcon.png - - - - - - - - - - - - - - - - - - - - - - - - - Background.png - 0 - Background.png - Linq2Rest.Reactive.WP7Sample - - - - - - - - false - - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/SampleDto.cs b/Linq2Rest.Reactive.WP7Sample/SampleDto.cs deleted file mode 100644 index 6f806a9..0000000 --- a/Linq2Rest.Reactive.WP7Sample/SampleDto.cs +++ /dev/null @@ -1,23 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the SampleDto type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample -{ - using System.Runtime.Serialization; - - [DataContract] - public class SampleDto - { - [DataMember] - public string Text { get; set; } - } -} diff --git a/Linq2Rest.Reactive.WP7Sample/Settings.StyleCop b/Linq2Rest.Reactive.WP7Sample/Settings.StyleCop deleted file mode 100644 index f8a65f2..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Settings.StyleCop +++ /dev/null @@ -1,6 +0,0 @@ - - - Linked - ..\SolutionSettings.StyleCop - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/SplashScreenImage.jpg b/Linq2Rest.Reactive.WP7Sample/SplashScreenImage.jpg deleted file mode 100644 index 353b1927b9d397aac7f23098e427739615db19fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9417 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 UfQSJR10n`Q4E%c;KnlnH2jCM6ivR!s diff --git a/Linq2Rest.Reactive.WP7Sample/Support/AsyncJsonRestClientFactory.cs b/Linq2Rest.Reactive.WP7Sample/Support/AsyncJsonRestClientFactory.cs deleted file mode 100644 index 66b786a..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Support/AsyncJsonRestClientFactory.cs +++ /dev/null @@ -1,121 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the factory to create a REST client using JSON requests. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Support -{ - using System; - using System.IO; - using System.Net; - using System.Threading.Tasks; - - /// - /// Defines the factory to create a REST client using JSON requests. - /// - public class AsyncJsonRestClientFactory : IAsyncRestClientFactory - { - private Stream _input; - private HttpMethod _method; - - /// - /// Initializes a new instance of the class. - /// - /// The base for the REST service. - public AsyncJsonRestClientFactory(Uri serviceBase) - { - ServiceBase = serviceBase; - _method = HttpMethod.Get; - } - - /// - /// Gets the base service address. - /// - public Uri ServiceBase { get; private set; } - - /// - /// Creates an . - /// - /// The to download from. - /// An instance. - public IAsyncRestClient Create(Uri source) - { - return new AsyncJsonRestClient(source, _method, _input); - } - - public void SetMethod(HttpMethod method) - { - _method = method; - } - - public void SetInput(Stream input) - { - _input = input; - } - - private class AsyncJsonRestClient : IAsyncRestClient - { - private readonly Stream _input; - private readonly HttpMethod _method; - private readonly Uri _uri; - - public AsyncJsonRestClient(Uri uri, HttpMethod method, Stream input) - { - _uri = uri; - _method = method; - _input = input; - } - - public Task Download() - { - var request = (HttpWebRequest)WebRequest.Create(_uri); - request.Accept = "application/json"; - request.Method = _method.ToString().ToUpperInvariant(); - if (_method == HttpMethod.Put || _method == HttpMethod.Post) - { - return Task.Factory - .FromAsync( - request.BeginGetRequestStream, - request.EndGetRequestStream, - request) - .ContinueWith(WriteRequestStream) - .ContinueWith>(GetResponse) - .ContinueWith(w => w.Result.Result.GetResponseStream()) - .ContinueWith(s => s.Result); - } - - return Task.Factory - .FromAsync(request.BeginGetResponse, request.EndGetResponse, null) - .ContinueWith(x => x.Result.GetResponseStream()); - } - - private Task GetResponse(Task r) - { - var request = r.Result; - return Task - .Factory - .FromAsync( - request.BeginGetResponse, - request.EndGetResponse, - null); - } - - private HttpWebRequest WriteRequestStream(Task s) - { - var buffer = new byte[_input.Length]; - _input.Read(buffer, 0, buffer.Length); - - var stream = s.Result; - stream.Write(buffer, 0, buffer.Length); - return s.AsyncState as HttpWebRequest; - } - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/Support/ODataResponse.cs b/Linq2Rest.Reactive.WP7Sample/Support/ODataResponse.cs deleted file mode 100644 index 89c081d..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Support/ODataResponse.cs +++ /dev/null @@ -1,23 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataResponse type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Support -{ - using System.Runtime.Serialization; - - [DataContract] - public class ODataResponse - { - [DataMember(Name = "d")] - public ODataResult Result { get; set; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/Support/ODataResult.cs b/Linq2Rest.Reactive.WP7Sample/Support/ODataResult.cs deleted file mode 100644 index 35eab4b..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Support/ODataResult.cs +++ /dev/null @@ -1,24 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataResult type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Support -{ - using System.Collections.Generic; - using System.Runtime.Serialization; - - [DataContract] - public class ODataResult - { - [DataMember(Name = "results")] - public List Results { get; set; } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializer.cs b/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializer.cs deleted file mode 100644 index 067fbdf..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializer.cs +++ /dev/null @@ -1,47 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataSerializer type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Support -{ - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Runtime.Serialization.Json; - using Linq2Rest.Provider; - - public class ODataSerializer : ISerializer - { - private readonly DataContractJsonSerializer _innerSerializer = new DataContractJsonSerializer(typeof(ODataResponse)); - - public T Deserialize(Stream input) - { - var response = (ODataResponse)_innerSerializer.ReadObject(input); - return response.Result.Results.FirstOrDefault(); - } - - public IEnumerable DeserializeList(Stream input) - { - var response = (ODataResponse)_innerSerializer.ReadObject(input); - return response.Result.Results; - } - - public Stream Serialize(T item) - { - var response = new ODataResponse { Result = new ODataResult { Results = new List { item } } }; - var ms = new MemoryStream(); - _innerSerializer.WriteObject(ms, response); - ms.Flush(); - ms.Position = 0; - return ms; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializerFactory.cs b/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializerFactory.cs deleted file mode 100644 index f4f9aa6..0000000 --- a/Linq2Rest.Reactive.WP7Sample/Support/ODataSerializerFactory.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ODataSerializerFactory type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WP8.Sample.Support -{ - using Linq2Rest.Provider; - - public class ODataSerializerFactory : ISerializerFactory - { - public ISerializer Create() - { - return new ODataSerializer(); - } - - public ISerializer Create() - { - return Create(); - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WP7Sample/packages.config b/Linq2Rest.Reactive.WP7Sample/packages.config deleted file mode 100644 index d99fb98..0000000 --- a/Linq2Rest.Reactive.WP7Sample/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WinPhone/Linq2Rest.Reactive.WP8.csproj b/Linq2Rest.Reactive.WinPhone/Linq2Rest.Reactive.WP8.csproj deleted file mode 100644 index 2238e15..0000000 --- a/Linq2Rest.Reactive.WinPhone/Linq2Rest.Reactive.WP8.csproj +++ /dev/null @@ -1,431 +0,0 @@ - - - - Debug - AnyCPU - 10.0.20506 - 2.0 - {2BE8FC8D-8306-4758-9730-8C29E171692F} - {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - Linq2Rest.Reactive - Linq2Rest.Reactive - v8.0 - - - - - WindowsPhone - false - true - true - 1 - ..\ - true - 11.0 - - - true - full - false - bin\wp8\Debug\ - obj\wp8 - bin\wp8\Debug\Linq2Rest.Reactive.xml - TRACE;DEBUG;SILVERLIGHT;WINDOWS_PHONE;WP8 - true - true - prompt - 4 - False - False - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - True - - - - - - - False - Full - Build - 0 - ..\Linq2Rest.ruleset - false - - - pdbonly - true - bin\wp8\Release\ - obj\wp8 - bin\wp8\Release\Linq2Rest.Reactive.xml - TRACE;SILVERLIGHT;WINDOWS_PHONE - true - true - prompt - 4 - True - True - True - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - True - False - False - True - - - - - - - False - None - 0 - Build - ..\Linq2Rest.ruleset - true - false - True - True - True - False - True - False - True - True - - False - False - True - - - true - Bin\x86\Debug - DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE - Bin\Debug\Linq2Rest.Reactive.XML - true - full - - - prompt - ..\Linq2Rest.ruleset - false - - - Bin\x86\Release - TRACE;SILVERLIGHT;WINDOWS_PHONE - Bin\Debug\Linq2Rest.Reactive.xml - true - true - true - pdbonly - - - prompt - ..\Linq2Rest.ruleset - - - true - Bin\ARM\Debug - DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE - Bin\Debug\Linq2Rest.Reactive.XML - true - full - - - prompt - ..\Linq2Rest.ruleset - false - - - Bin\ARM\Release - TRACE;SILVERLIGHT;WINDOWS_PHONE - Bin\Debug\Linq2Rest.Reactive.xml - true - true - true - pdbonly - - - prompt - ..\Linq2Rest.ruleset - - - - AsyncExpressionProcessor.cs - - - IAsyncExpressionProcessor.cs - - - IAsyncRestClient.cs - - - IAsyncRestClientFactory.cs - - - Implementations\AsyncJsonRestClientFactory.cs - - - Implementations\AsyncXmlRestClientFactory.cs - - - InnerRestObservableBase.cs - - - InternalObservableExtensions.cs - - - ObservableExtensions.cs - - - ObserverPublisher.cs - - - ReflectionHelper.cs - - - RestObservable.cs - - - InnerRestObservable.cs - - - RestQueryableProvider.cs - - - RestQueryableProviderBase.cs - - - RestSubscription.cs - - - TriggeredRestObservable.cs - - - TriggeredRestQueryableProvider.cs - - - IMemberNameResolver.cs - - - Provider\ExpressionVisitor.cs - - - Provider\IExpressionVisitor.cs - - - Provider\ISerializer.cs - - - Provider\ISerializerFactory.cs - - - Provider\ParameterBuilder.cs - - - Provider\Writers\AnyAllMethodWriter.cs - - - Provider\Writers\BooleanValueWriter.cs - - - Provider\Writers\ByteArrayValueWriter.cs - - - Provider\Writers\ByteValueWriter.cs - - - Provider\Writers\DateTimeOffsetValueWriter.cs - - - Provider\Writers\DateTimeValueWriter.cs - - - Provider\Writers\DecimalValueWriter.cs - - - Provider\Writers\DefaultMethodWriter.cs - - - Provider\Writers\DoubleValueWriter.cs - - - Provider\Writers\EmptyAnyMethodWriter.cs - - - Provider\Writers\EnumValueWriter.cs - - - Provider\Writers\EqualsMethodWriter.cs - - - Provider\Writers\GuidValueWriter.cs - - - Provider\Writers\IMethodCallWriter.cs - - - Provider\Writers\IntegerValueWriter.cs - - - Provider\Writers\IntValueWriter.cs - - - Provider\Writers\IValueWriter.cs - - - Provider\Writers\LongValueWriter.cs - - - Provider\Writers\MathCeilingMethodWriter.cs - - - Provider\Writers\MathFloorMethodWriter.cs - - - Provider\Writers\MathMethodWriter.cs - - - Provider\Writers\MathRoundMethodWriter.cs - - - Provider\Writers\ParameterValueWriter.cs - - - Provider\Writers\RationalValueWriter.cs - - - Provider\Writers\ShortValueWriter.cs - - - Provider\Writers\SingleValueWriter.cs - - - Provider\Writers\StreamValueWriter.cs - - - Provider\Writers\StringContainsMethodWriter.cs - - - Provider\Writers\StringEndsWithMethodWriter.cs - - - Provider\Writers\StringIndexOfMethodWriter.cs - - - Provider\Writers\StringReplaceMethodWriter.cs - - - Provider\Writers\StringStartsWithMethodWriter.cs - - - Provider\Writers\StringSubstringMethodWriter.cs - - - Provider\Writers\StringToLowerMethodWriter.cs - - - Provider\Writers\StringToUpperMethodWriter.cs - - - Provider\Writers\StringTrimMethodWriter.cs - - - Provider\Writers\StringValueWriter.cs - - - Provider\Writers\TimeSpanValueWriter.cs - - - Provider\Writers\UnsignedIntValueWriter.cs - - - Provider\Writers\UnsignedLongValueWriter.cs - - - Provider\Writers\UnsignedShortValueWriter.cs - - - Provider\Writers\ValueWriterBase.cs - - - StringConstants.cs - - - - - - - - - - - - ..\packages\Rx-Core.2.2.4\lib\windowsphone8\System.Reactive.Core.dll - True - - - ..\packages\Rx-Interfaces.2.2.4\lib\windowsphone8\System.Reactive.Interfaces.dll - True - - - ..\packages\Rx-Linq.2.2.4\lib\windowsphone8\System.Reactive.Linq.dll - True - - - ..\packages\Rx-PlatformServices.2.2.4\lib\windowsphone8\System.Reactive.PlatformServices.dll - True - - - ..\packages\Rx-Providers.2.2.4\lib\windowsphone8\System.Reactive.Providers.dll - True - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WinPhone/MemberNameResolver.cs b/Linq2Rest.Reactive.WinPhone/MemberNameResolver.cs deleted file mode 100644 index b744210..0000000 --- a/Linq2Rest.Reactive.WinPhone/MemberNameResolver.cs +++ /dev/null @@ -1,210 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the MemberNameResolver type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest -{ - using System; - using System.Collections.Generic; - using System.Diagnostics.Contracts; - using System.Linq; - using System.Reflection; - using System.Runtime.Serialization; - using System.Xml.Serialization; - - internal class MemberNameResolver : IMemberNameResolver - { - private static readonly object LockObject = new object(); - private static readonly Dictionary KnownMemberNames = new Dictionary(); - private static readonly Dictionary KnownAliasNames = new Dictionary(); - - public string ResolveName(Type type, string alias) - { - var members = type.GetMembers(); - var name = members.Select(ResolveName).FirstOrDefault(x => x == alias); - - return name; - } - - public MemberInfo ResolveAlias(Type type, string alias) - { - var key = type.AssemblyQualifiedName + alias; - if (!KnownAliasNames.ContainsKey(key)) - { - lock (LockObject) - { - return KnownAliasNames[key] = ResolveAliasInternal(type, alias); - } - } - - return KnownAliasNames[key]; - } - - public string ResolveName(MemberInfo member) - { - if (!KnownMemberNames.ContainsKey(member)) - { - KnownMemberNames[member] = ResolveNameInternal(member); - } - - var result = KnownMemberNames[member]; - - Contract.Assume(result != null); - - return result; - } - - private static MemberInfo ResolveAliasInternal(Type type, string alias) - { - var member = GetMembers(type) - .Select( - x => - { - var attributes = x.GetCustomAttributes(true); - var dataMember = attributes.OfType() - .FirstOrDefault(); - if (dataMember != null && dataMember.Name == alias) - { - return x; - } - - var xmlElement = attributes.OfType() - .FirstOrDefault(); - if (xmlElement != null && xmlElement.ElementName == alias) - { - return x; - } - - var xmlAttribute = attributes.OfType() - .FirstOrDefault(); - if (xmlAttribute != null && xmlAttribute.AttributeName == alias) - { - return x; - } - - if (x.Name == alias) - { - return x; - } - - return null; - }) - .FirstOrDefault(x => x != null); - - return member; - } - - private static IEnumerable GetMembers(Type type) - { -#if NETFX_CORE - var typeInfo = type.GetTypeInfo(); - if (typeInfo.IsInterface) - { - var propertyInfos = new List(); - - var considered = new List(); - var queue = new Queue(); - considered.Add(type); - queue.Enqueue(typeInfo); - while (queue.Count > 0) - { - var subType = queue.Dequeue(); - foreach (var subInterface in subType.ImplementedInterfaces.Where(x => !considered.Contains(x))) - { - considered.Add(subInterface); - queue.Enqueue(subInterface.GetTypeInfo()); - } - - var typeProperties = subType.DeclaredMembers; - - var newPropertyInfos = typeProperties - .Where(x => !propertyInfos.Contains(x)); - - propertyInfos.InsertRange(0, newPropertyInfos); - } - - return propertyInfos.ToArray(); - } - - return type.GetTypeInfo().DeclaredMembers; -#else - if (type.IsInterface) - { - var propertyInfos = new List(); - - var considered = new List(); - var queue = new Queue(); - considered.Add(type); - queue.Enqueue(type); - while (queue.Count > 0) - { - var subType = queue.Dequeue(); - foreach (var subInterface in subType.GetInterfaces() - .Where(x => !considered.Contains(x))) - { - considered.Add(subInterface); - queue.Enqueue(subInterface); - } - - var typeProperties = subType.GetMembers( - BindingFlags.FlattenHierarchy - | BindingFlags.Public - | BindingFlags.Instance); - - var newPropertyInfos = typeProperties - .Where(x => !propertyInfos.Contains(x)); - - propertyInfos.InsertRange(0, newPropertyInfos); - } - - return propertyInfos.ToArray(); - } - - return type.GetMembers(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); -#endif - } - - private static string ResolveNameInternal(MemberInfo member) - { - Contract.Requires(member != null); - - var dataMember = member.GetCustomAttributes(typeof(DataMemberAttribute), true) - .OfType() - .FirstOrDefault(); - - if (dataMember != null && dataMember.Name != null) - { - return dataMember.Name; - } - - var xmlElement = member.GetCustomAttributes(typeof(XmlElementAttribute), true) - .OfType() - .FirstOrDefault(); - - if (xmlElement != null && xmlElement.ElementName != null) - { - return xmlElement.ElementName; - } - - var xmlAttribute = member.GetCustomAttributes(typeof(XmlAttributeAttribute), true) - .OfType() - .FirstOrDefault(); - - if (xmlAttribute != null && xmlAttribute.AttributeName != null) - { - return xmlAttribute.AttributeName; - } - - Contract.Assert(member.Name != null, "Member must have name"); - return member.Name; - } - } -} \ No newline at end of file diff --git a/Linq2Rest.Reactive.WinPhone/Properties/AssemblyInfo.cs b/Linq2Rest.Reactive.WinPhone/Properties/AssemblyInfo.cs deleted file mode 100644 index ab48ac4..0000000 --- a/Linq2Rest.Reactive.WinPhone/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,42 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// AssemblyInfo.cs -// -// -------------------------------------------------------------------------------------------------------------------- - -using System.Reflection; -using System.Resources; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Linq2Rest.Reactive.WP7")] -[assembly: AssemblyDescription("Generates OData style Rx Observables from LINQ queries.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Reimers.dk")] -[assembly: AssemblyProduct("Linq2Rest.Reactive")] -[assembly: AssemblyCopyright("Copyright © Reimers.dk 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b58ad0a7-fcbf-46e7-8a73-7a5aa11c741c")] - -// Version information for an assembly consists of the following four values: -// Major Version -// Minor Version -// Build Number -// Revision -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("4.1.0.0")] -[assembly: AssemblyFileVersion("4.1.0.0")] diff --git a/Linq2Rest.Reactive.WinPhone/Provider/ExpressionExtensions.cs b/Linq2Rest.Reactive.WinPhone/Provider/ExpressionExtensions.cs deleted file mode 100644 index aa8971e..0000000 --- a/Linq2Rest.Reactive.WinPhone/Provider/ExpressionExtensions.cs +++ /dev/null @@ -1,75 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2014 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Defines the ExpressionExtensions type. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.Provider -{ - using System; - using System.Diagnostics.Contracts; - using System.Linq; - using System.Reflection; - - internal static class ExpressionExtensions - { - public static Tuple GetNameFromAlias(this IMemberNameResolver memberNameResolver, MemberInfo alias, Type sourceType) - { - Contract.Requires(sourceType != null); - Contract.Requires(alias != null); - Contract.Ensures(Contract.Result>() != null); - -#if !NETFX_CORE - var source = sourceType.GetMembers() -#else - var source = sourceType.GetTypeInfo().DeclaredMembers -#endif - .Select(x => new { Original = x, Name = memberNameResolver.ResolveName(x) }) - .FirstOrDefault(x => x.Name == alias.Name); - - return source != null - ? new Tuple(GetMemberType(source.Original), source.Name) - : new Tuple(GetMemberType(alias), alias.Name); - } - - private static Type GetMemberType(MemberInfo member) - { -#if !NETFX_CORE - switch (member.MemberType) - { - case MemberTypes.Field: - return ((FieldInfo)member).FieldType; - case MemberTypes.Property: - return ((PropertyInfo)member).PropertyType; - case MemberTypes.Method: - return ((MethodInfo)member).ReturnType; - default: - throw new InvalidOperationException(member.MemberType + " is not resolvable"); - } -#else - var fieldInfo = member as FieldInfo; - if (fieldInfo != null) - { - return fieldInfo.FieldType; - } - var methodInfo = member as MethodInfo; - if (methodInfo != null) - { - return methodInfo.ReturnType; - } - var propertyInfo = member as PropertyInfo; - if (propertyInfo != null) - { - return propertyInfo.PropertyType; - } - throw new InvalidOperationException(member + " is not resolvable"); -#endif - } - } -} diff --git a/Linq2Rest.Reactive.WinPhone/Settings.StyleCop b/Linq2Rest.Reactive.WinPhone/Settings.StyleCop deleted file mode 100644 index f8a65f2..0000000 --- a/Linq2Rest.Reactive.WinPhone/Settings.StyleCop +++ /dev/null @@ -1,6 +0,0 @@ - - - Linked - ..\SolutionSettings.StyleCop - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WinPhone/packages.config b/Linq2Rest.Reactive.WinPhone/packages.config deleted file mode 100644 index d99fb98..0000000 --- a/Linq2Rest.Reactive.WinPhone/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/Linq2Rest.Reactive.WinRT.Sample/App.xaml b/Linq2Rest.Reactive.WinRT.Sample/App.xaml deleted file mode 100644 index 2cd65d5..0000000 --- a/Linq2Rest.Reactive.WinRT.Sample/App.xaml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - diff --git a/Linq2Rest.Reactive.WinRT.Sample/App.xaml.cs b/Linq2Rest.Reactive.WinRT.Sample/App.xaml.cs deleted file mode 100644 index d0138fe..0000000 --- a/Linq2Rest.Reactive.WinRT.Sample/App.xaml.cs +++ /dev/null @@ -1,70 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright © Reimers.dk 2012 -// This source is subject to the Microsoft Public License (Ms-PL). -// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. -// All other rights reserved. -// -// -// Provides application-specific behavior to supplement the default Application class. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Linq2Rest.Reactive.WinRT.Sample -{ - using Windows.ApplicationModel; - using Windows.ApplicationModel.Activation; - using Windows.UI.Xaml; - using Windows.UI.Xaml.Controls; - - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - public sealed partial class App : Application - { - /// - /// Initializes a new instance of the class. - /// This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - InitializeComponent(); - Suspending += OnSuspending; - } - - /// - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used when the application is launched to open a specific file, to display - /// search results, and so forth. - /// - /// Details about the launch request and process. - protected override void OnLaunched(LaunchActivatedEventArgs args) - { - if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) - { - // TODO: Load state from previously suspended application - } - - // Create a Frame to act navigation context and navigate to the first page - var rootFrame = new Frame(); - rootFrame.Navigate(typeof(BlankPage)); - - // Place the frame in the current Window and ensure that it is active - Window.Current.Content = rootFrame; - Window.Current.Activate(); - } - - /// - /// Invoked when application execution is being suspended. Application state is saved - /// without knowing whether the application will be terminated or resumed with the contents - /// of memory still intact. - /// - /// The source of the suspend request. - /// Details about the suspend request. - private void OnSuspending(object sender, SuspendingEventArgs e) - { - // TODO: Save application state and stop any background activity - } - } -} diff --git a/Linq2Rest.Reactive.WinRT.Sample/Assets/Logo.png b/Linq2Rest.Reactive.WinRT.Sample/Assets/Logo.png deleted file mode 100644 index ebd735aa9352cf97bfcbe11dc4281617d570dca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5789 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 diff --git a/Linq2Rest.Reactive.WinRT.Sample/Assets/SmallLogo.png b/Linq2Rest.Reactive.WinRT.Sample/Assets/SmallLogo.png deleted file mode 100644 index 92dd1058fbfb70c4491d934fe5f60ff2bacd41e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVGVQpR4ciyoglSwB91#GhGhn{+`40 zKOYZLtJUy5M#Hz+??BTuEf5G^US9q^+F&rqWU^c?_f@o5EFKPriyn{1Bb7>Dq2Gpm zj6OIx0Dx2~HJwfYfY0ae?(T|2B8f!u{QL|62qB-(r&KC$Z*SK_*J?F}VN52|>FMcU zFfbSl3WWjytX69-my^roXJ=<#ua{)79{TC&>GAP#Z*OmVdpj13x!rDr5V@9aw;PYg zH#axi?RKlx`izXlVo|Hrs#L0EGRd+maoTJ)o6W}O^8uh-F3h|y@YSS;jQC=}8(jWHGo1n>Siolbo|pUdSMkH^GQuh+}v@;m@7 z&Jc>C4i68Hj*hr+T!t~ezP`S?y22R0k0z$q>n|=YHa0d^OdOHmY;9-&aER;zuc8|`*G;bM$g zmK6$x05F+MNKYb!91h14^s=n;`Mg%E?Q}Y^Sj_A71_A*9C=?2bL}EUktX3=67~#xX zqtR?_Z50ZIlarIdV8G+?{C+<<@8RKLe}A70Rh>@PY&O@+Iv5NhgzoO{=BuF5Xoy6j zot>Spu7XS^v$&ZilS!#ml1in7OJvMsGGeiKZ5iKgy!-omnN0R!*h(_~++zV_yx462 b>BH;~a9|}kOw?>(00000NkvXXu0mjfaI93Z diff --git a/Linq2Rest.Reactive.WinRT.Sample/Assets/SplashScreen.png b/Linq2Rest.Reactive.WinRT.Sample/Assets/SplashScreen.png deleted file mode 100644 index 193187f108f50dd242cb5c589b02a29691b7432a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9381 zcmeHs_dDBt)PI_yHA>VTRkZe|wPy)R?Y(D>nzd(8MXaJ~uc9_FOYOTxRcpoGYExp@ zitu$y`dr^X;d!p>{^4^a`Mk$D=XGA^^&W{-S5>%&M~w#n0Pa0kl+y$NfQ|sbEzY|* z*KZ(9yQ9}1Shg}MG5|pJy8xs{;`MKOD@9Ee03d=00EoGMP}hS(qyd0HUjSe;8UPSq z1puh}+{MGZ0RTJ^ds$g^bvqXi7k4`sSNi9&vh=QQE;ja#F986>o~&eVZS4v2h{0BG zzubOapl0}d^FM%L|3p);MJkm!>uo}TC)EsjKw_|5I-{a`S1?@tv94S-h*Z1k&f~kR ze3W2qP8a#{Xjpm6$-x0~x!eU&d(w#9ZXGnF0K6~aNlC#`z7_w2WG_@abCWnh!($r| ze2dOJm<{kkSH8)t%Kt8?_h)}tHiH|`4C~gOpMDF_b!12&SoO|T&L@M-fRK$;0C7gG z2o)zW1yqt!5xII@MTy!V7kL~dwnR{+@I$h>u#k#;13)l%@=1A+c9Wfc!97$`T z1(5Gv81OGm4}-z=Pd?YzJ$WL)k1AEa@;r1=nw*+OpiEP2^=n<-Wa5-g{`(Y1L@2e0_T0)g z+sBeSaR);tBKt2aqJp_$G#p$^D&LE2KM5GnHZA5voIbpB=}Ctplj%d4(@6q;8(A3h zQyKI*qh}58i@msL%1KW8DN*O;r|w4b$l+6Bb*q@*QBQVh2;vSa9x*)}*==%_@6vY4 zOAql~WKWECzuFZ-*?uipVhYXJ6B%G)eLHafK!D<;Yw-TZTelQ}?D2PgNI%#B$eQDn z2Xnb%IsZd*8VUm8>fR<-#3~6Us*$Ff#KM!|o5Vd1ex-hgT1LPQyGMpa7<(X8`4{z< zTh5_KbJ7>Vw&vt5IQSqe3kH6LpH^f z?4hN(e#KPhbfUOf5ise{Arm`-^l(VT{MWlL-jr0`FUO|oB)GO0BKu3n71)9^5QhKj zfh*H2;9;29ufx5kr-I^mQlaahU=T5NUKAxGK^OMELSDSj+qiOtsCc|jx9q`936d+! z{84@ME*g}i*kA>!JV%Y}Vs%pd&p4mybl#N8KaltQ=%*p1VO4A}s_=xW0y?fR^Rab^ zcmvCWya{9y;{2>3pC`{HpJk|$kCNbCer$Dzk0m4D^VH9&_xmJY(5%tgfCS#9by`** z=m(ZR7=QS)3$H3{l6_la+h7~y1w`T~bd~(-bKUvEN=uXySN6|?uUTL3Ei%8x_hD;c zp2yjZvt4%ID>#)85V{nF0NbVGne9ln?=rl7+`;^eDL2VAVJ~>^z2f6i;)=)+Iquhw zs^9y>_@oKT2PnU1*i0~1gg<7mzq1M2q}}A+WJ-H6&M5Xi|2y!2&`sbBct(5{iv{jb z>`;EgRV|YzpC@anxYYRAR8wpCx!Y%Jn043+ZtvE60Zkt^E;b6b!co5x>XJmwN1E=# zr1o0&L7Uo}_ctF6>wPM+uHrZ3cjk9Y1Ez)YQ&@jvy9>@*dS;;^s6~A}kVKn6C*wC* zC68RIJ)cnB_T@|Kl-}@Oo1f#~vy&ebFg)Q(r{D_HRT5LBDQq>$tLw7Iwe3A-s!$G3 z?)%A=cR7Bu;jqDU#ET~@g^NCwujGD!X%~3N*vqFCZWm{MGKK}n`x=JjSyp!Fu<41E z9em(c_RcFB;@E6GGSC6*sOjXsYW*Gj`%QYiVXGJ*E<+vZ1c0d`AV335Y$2 z6^+fNaiCP7+U4I7xU{phcyBpu=eD5zZFJ_zLfy=fw}6B|vO(+=mwQcP^BK+|_aVj4 zqmf*DlRN;OmgNpDbIw~L%Cz z(yhic$+WGSs_LOwu9&&lfTKx5Dg|-o5v}t@c0c zr|d&F&o{$1^Bo+=w+#e-o-7Kzl%^`wAqH9hrhW;LL(taH!nB&p=Glu zAn~H+LNB9J$eV(d%#o9FVX3;HKs_(sOt@yu%VAD%RB)$01hF<#Rv*M^Nnyez$OdDD zn02r>p2uzqB`pL@6SrG^9If%VQteZnA6PUYY$i;3p0b)8yL&t{r=iNj!yfdR#bz)m z>Lr<{Kdyh6zXC@fM|0_uQZL=sO4afu-CopBgv@|r>e{hZojgK0A&fX&n@B>u?ZFy!)Bt5&=e)N{blx0nDR(c*89W`88?`t80SEYMA z%eG8}%3VB&xF3oOtnhkV7H;(`H?%mLG`B7t|8m{f%SzZtfQxO5X?bhyw0%kOby>Xp zc4y-bn5ckGS6nk-bgy=2&?!GTzo^H!=ltOvsWzzr>Y!ugZ#=s!c-iqe+Am692&$#2 zWTkuMwC#JWjzrpS4wBp81tnd6K5iU1dMmMPHvQ2qe)MXpEW0td zQK3@HjHi#HH6h6Tlxx{(p?S|c5#M09dY40L1F~_sak&4rXjCod68m=Q;YCx|#>n-C z6W3MIz#Ra0e za^0u;xtxr)k11l#rOVVd9k3UpZJ;F2pGGtTXJ38UHZbr))(5u)q$GI{^?^q~l=&^w zhpO-xUtESPyZ)*V7J8czrT1cCyrc5@d<6uZlRIxU3+qLdQZFWtshAT18xDa?t zksuV{$9X9KI)CJJ#Qq7&=+gfR*%$=jmdZf|1mZYqKE{Mq#{$A0bFTXdcLpOpaw%uV zrD_+prFy2EcxWU@Fbcp-55gXawBwO)ZmoFb*a>mFh*|E!(l7XnjBu(nDVQZ6$ z#0i_e)c=;WpCzteD5-)`63PT=QYkSwOu^`)-(aSDLIyeLBe0W2{2D(ABQ;e`(xjpb z(O!oDoe|spsTSxjy)nJy!JZu7{eL=-M=$M`{uGhV526ms1}*}Q6H!i0FX`I&O#;sm z&(Ssr4CwJP1mKWbnU@|yl8JhrYwL0K30B8Oe{z;re72m^Cej2gM_4d){^%LPYVDOj zXOIs(*V^`fH0=(5S4U@V5lq`aEw%jJM|X~2O)u@3&;A<*r*R5s$LhoU)<(;ML;7QX zuIZ^i3a_q6sPxFpzBT?x_LZ84Sj+zvOh;Bwx6&nRP!b|^ax=ipc6eN+QuHu+-)6SV zabn^@=Osp5Lv*q8-kd?|7GUbVD|!*@hW83r2OeEs{P0Su^cz`5az*6(V}$r0w-8n( z7)-r*HSUn*4^3qs%QQQMmaz%UjtJ938Xu@p9>6gj#Kkraq1g5IB6}J02Vr+sKIGC6 z?^gY@kH>Irs;*$9p((0Y_^$)98Uf-oh;|zG4;KlS1$J>>-DFlMONMMS58>lQ_JzV| zlHsi>m?b|U8aH065LQvhmlen1nf=R!*{*sg7$uKOl+kpyi~lwXWjhb&zbZsTn0&M5 zM0;g!1Jnq+sLQ>7#yIa^P4u4fBrE;P{3cs=K;ARIQ70+HBW|nvXxK<7pg)#Z!+|UL zK9vo3J_%(F{B|%Leq`7*>cn$Gmhl?*W<3gt#FhK}nsd7OUYLTUUTuafBOINnpjEraK27n2L&B{MB|ETuzZ% zuh;piMyEqV`1QXXXS&0M7o0-CDQJ}b8O5fC)E=k!RF0JKq!`5InwLe@x1>KsDP=6w zab?);V#>q}SMKTSg2LicaZ@RYCuP;7jyiBJ(WQ!Jvzesasi+7v(WbA2OgeGINy#v(e6yErwFI4O+|YZ5^`6LI6;lKcn0Us(+x;XHJRgBT76Rn%0@IB z${T-0(t!po^gfi4A?MzCPx{h&$HzA&cWq*@jdbcviX$b~zt$>51Pn#S-q<~20AW9y zYaKs6huUWG^%z#^fM-lqE?~4K>-1GTH`z_SE*Q&C1^ZM zepgdCjv3Sk9NTTuIqg<#Sp;FY@eFv+EXkNdUKX*tmAiIpsb>JOGVr5>I;aA9fYXx04102YV*rJKws) zYZ}zV)bg3xW6c|DLp9Rn2bJXH$O%Kb`r4f$(<&zGl~Y58K|L{9K@5CDFlo-C95QmG z0OH-W$*us~q*8$yQ?$gvK_s~_Wceph#jkUI9#__k?&|MM#DD4ZF+DAhB7@Gr7D7^SAy!;@dw zXjdie^m^IS^h8QxSelKM7w`K?y)S^c@&SVFlWusH##gT=ZvAIQvvl^@x<%;trIEnu z(p_@$lV(KREaI*^+oa}GH!g|N9|(yiiIo_6v_CAMXyocMzS@RX;&Av#A6|Xyv$m87 zK9W4lf-p`F4MXW#yw2%Eh||64D>vtun_nKEz7s)&*<*KtpwHGup79BkEL7^4k&KT! zcBV!mz{HVsY>$!ah}e%T=#+jG2+<$SVddOD5ySu38M5XPUcs)uOW_8|lXa8DfH(t! zVz+wWLo;SJ{Otn!s?3`WzWZu6yrP=sW2QsrDoUDjg90!5JXRNHt8s*i+;IY5#BAG_ znm`TBigFGR{<*Td!Kkf%l?ms{#c)#(6osL8HnycqP<~Z$&X!2IZnz8kq$p%Ji*ol& z_x4_zmM>IMr%4b0b+1p|+}U<=?MXLZ!$4KPeaEWO&HQAk zBQBGLV$rL8md>bfC+9?Nvws~-E&L}Fc0X&4VBB_<9p2dgCE#C#&1-0Or2a}odF0BO$OwZ6k&pV(II6J)SF=yMugy{Y37Qs^5*Y)8`D#DL_D>(*-XLr!?3 zN)vj<^y_^=t2XN-x2nL5?@O{nziQqFo_=MSdbAn=uTx~k%K2M}IevOu3+menqs&2B z0B(XVq`xM@R7W1f9j~!pA|iDnBdpO0p`q`7l8ja=I~98JBbI9_p~i7WU)uutDo^m; zk#e@TD52=(ZZbPKW8Hbsja8!2en;Kr87WWU_qJtP}m*zaK zB*&{aJ9(IPSC!^4KcZ9uCov$DG%A#UUSL^1VW zoS3=P50OQOiK>2#z1_1}Jfsc}RUS*&V^oC*`xT70MZxYA$mji#6t8}(GtT(!&CJ37 z7y_$*?UItC0_?pj-fhp8NcRm+rTfloJ^_VdbY$*sSI3o?#ePs(20XSVQo3(qt|N19 z_7hJI13EDIYjRwrrPn@Xkq2FFKZ|J;)e$h;X%%eFm+AP|3NJ?pD`1|7^p?vYp2g$d zZ{l;@ePf7(w>&S<^=Ynk-JV@0;;?*{myuV$*BHJ4%W}35HoYghQ6g6c9Ox)Gl87##Yr@~DMP-N}2LB>lw6Emf5oOnXa2=dJYr zE+psIJFH)ZDsZoo%G5P+=f3WO^s_I5wiJzM;hMsi3)zG8>*eqCk1xWB-Cgt6%GBeC zwp{55(7J)c1_E~oJhk=Q>Df}aLv_^kMrqw{(`33$tlFah?dDxa#-Y8jjf{+=b%8D1 zw^tc$cqW5=^ZyeeZ;O%ElP_Zm(F$^@*GX8OBaaw+iY5@Rdq66Pky4+LdgoJt2WnnBtk;+e&){RH);#HPBK(973dT4VYsD8(zh z$dCb+fo03zkU8^Dt_u{qd=&KDr0owzuvzEHqP$m*e* z94oER=6$Zf-}N36Yw>^Yt!VY>qoOLo$d|H<32{0H+wj2QP2!53*ILihvdzTyRyJ<9 zaZS)FGkUxjj(cFE`NAczWdvb?Y+cig*W*Pp)xXBZvGOKQpUc9NU0TTyCF4L!*Pb-* zq#zQw8cyb$A&g9v+?9L!UQMppKSqa~!?(RY=$)4jyNJ+gg0JqG&Ag|PpYNNmw1js> zZfG5ndsl9M-@2|anz+XG%%o00HnK5Rn7^HUu(0;k=E~GZrx(GJ7C)7aCTflk8*fXsSwo$I+=)rhb4vf(#maM?GTATdi~tYz?5A8v7(-Tl zJ`oN7&nfz#Z2mb)zLF^D?uQUJ4xo~_8=3bzV2NX7-TDJvH&#rB>XBb;s=bw-9FA8LOgrOxC4kM_0 zu-C3q-obCjCIdWK(@v+)Ry# zwY$08=zW%(d^LXs*~!WIIcO`@6P{7=9Zf9^%zyccmfioF{)6Q|Cj2j}f_&mrDTv9& Wc>{ycr|W-s0MEgya{drMKsZ^rAz8-3|8d+Ic`2PKS@(c;{5kDToaT(HAsZ>y@R9IPAVH+D86hVdo zpwiM(=yWqACH1{xb1(cIh&yuSwG44ZEk9#7H8rt&_wJEWsRUz; z5fQDguVZOxiD@(%QmIsaSw=+UcDu2%vcfbPO~@Qcl5qe2eb(OIP7!t_c~J`hhzKJi zBec4@3Z+sBzXoY(X(%WtpfFkT^NLcbr10^zwKWV44N(+WB`<3E+tSh!L{Y@Wix(3j zGn>r@hr_X_gcxWX$Kl|?gV=&c$To5u7l=kPGcyznpD2lA#Q*%`Q&UqYDJfz8P1@Yt z{0&+jj|X4BehvR``=n8!P(ZKOqp7J0`T6;NW&fVU^AH39j4|>%G{p!vQ8BYMURPI# z^73*bB6z)C$g&)~xa4#?(bv}ptJNCakXT&t^5sitwOU-gdKD*6o`gc7NJ^emSXdZw z+~@PbX0xHUw--Z0LjjJ8xa->;J_v$<%F0T1`SN9|udhc&M#i>~i5FV2WIP@ZhKGmI z+1bfPMn))>5pg-YEXxo@kroyfFg-numX;PAI&^4TIPJ6rKkM7KZ|LdifyH8h!{H#W z*SkHB#CsgX7(-@eCTeSIapT4foH%h}&!Oh?`Czx((ca#U{{DU}FE7W<^udJ4g5q;T z5@L)oK@d<}Tuira-NKnOXIM%~%5PDNZAFFPJ`qv0aRBgoy-XBEdid}m-o1OrHa0c_ zVlfCYz$d{`i?$;n`nw_0oM32#L(boiHXhvF`cV|Uq7vecp;c2;6Mz=a^GShLTU#5f zR_o576^|hbg#v|zg}89xLWr}+ozTS@-J&=<_Qcu!;rGgwD|GJMxj#1i#xz8wQlY7- zDd~h53u-o-4NsmtK~GPQzogz7j|hSQlgR{=$pl%JF+M*2YtpY21?lPOC@LySNa4A; zIsE+j6TvA;aI37W#M06d`uqE%vU}8|adUGM6B84dnVIp2Qwnx`j^n@>V+{=rbo=)0 zgp$S=FJ7Rdqk{n;pU(%M&le&_MC9>!V){zdq|xW|VR3PB+f%^S*4BiRMx9QFj~_qA zTaWDh0o{QE2T)a2m9Q@yJ9Z2@oeon|Q~P^B=ZBZcWMXQyI)tTnQ|hWzD%8}}Fo(mj z|D`U+aj34Yrj(QvKNQL7bYgID5LT;|u3x{7>gsB692a2f$;nBywY5=IRTUZ<8jzct zOB~06=Xsb+ChF+ufFw!#Tk7WIC>kW1tumYFgG`cf`S4t#;~}!7{W!eEMs(Z6!Y`*f!#3}4Cv|U zf!pogA49UUv*C8T@!-J&3=IuMWZdQDWsHxH!(cFg=XrYn{yi2J7JiePpP$F$$B!{R zJ&m%mGUVsy?<#uj>VPizT0xfONOc1PKt`hxj~+dOLZM)H@7|?n&z}8R*9vQEYgk)b zi&euA08CC!!r^d0tyWXexo*TcvMiI+>HKF7=(cNaw;KZk1IWqA!SeEQQWMOi-yvG9 zR%o@_q~0G!@{y==_`hFI6A|JtBB6Ke1X_uH!V!<$zv2@P{3$z - - - - - - - - - - - - -