Skip to content

Commit 94b5120

Browse files
Update to .NET Standard 2.1 & .NET Core 3.0
1 parent b803b6f commit 94b5120

File tree

84 files changed

+61
-59
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+61
-59
lines changed

.gitignore

100644100755
File mode changed.

LICENSE

100644100755
File mode changed.

README.md

100644100755
File mode changed.

Source/DotNetGraphQL.API/Data/DogImagesData.cs

+17-17
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ namespace DotNetGraphQL.API
66
{
77
public static class DogImagesData
88
{
9-
readonly static Lazy<List<DogImagesModel>> _dogImagesHolder = new Lazy<List<DogImagesModel>>(CreateDogImageList);
9+
readonly static Lazy<IEnumerable<DogImagesModel>> _dogImagesHolder = new Lazy<IEnumerable<DogImagesModel>>(CreateDogImageList);
1010

11-
public static List<DogImagesModel> DogImages => _dogImagesHolder.Value;
11+
public static IEnumerable<DogImagesModel> DogImages => _dogImagesHolder.Value;
1212

13-
static List<DogImagesModel> CreateDogImageList() => new List<DogImagesModel>
13+
static IEnumerable<DogImagesModel> CreateDogImageList()
1414
{
15-
GenerateKirbyModel(),
16-
GenerateWafflesModel(),
17-
GenerateWhiskeyModel(),
18-
GenerateTobyModel(),
19-
GenerateMozzieModel(),
20-
GenerateMiloModel(),
21-
GeneratePiperModel(),
22-
GenerateMagicModel(),
23-
GenerateHermesModel()
24-
};
15+
yield return GenerateKirbyModel();
16+
yield return GenerateWafflesModel();
17+
yield return GenerateWhiskeyModel();
18+
yield return GenerateTobyModel();
19+
yield return GenerateMozzieModel();
20+
yield return GenerateMiloModel();
21+
yield return GeneratePiperModel();
22+
yield return GenerateMagicModel();
23+
yield return GenerateHermesModel();
24+
}
2525

2626
static DogImagesModel GenerateKirbyModel()
2727
{
@@ -57,7 +57,7 @@ static DogImagesModel GenerateWafflesModel()
5757
"https://scontent-sjc3-1.cdninstagram.com/vp/463d2f790dad456aa7f907fbc5c4f2d5/5E5E4DA2/t51.2885-15/e35/p1080x1080/68904319_153662302373174_5867607915252717949_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=102",
5858
"https://scontent-sjc3-1.cdninstagram.com/vp/6f094e68dcea3ce76025bc9a3aae1d10/5E4B5760/t51.2885-15/e35/p1080x1080/61615381_142948983481771_3906781618639463667_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=107",
5959
"https://scontent-sjc3-1.cdninstagram.com/vp/df20cab484e3fdce8e7b93be068cd955/5E5F68F4/t51.2885-15/e35/p1080x1080/60983676_671182750019423_8627416967785409822_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=111",
60-
"https://scontent-sjc3-1.cdninstagram.com/vp/4a5977fc6da543a3580dc65bec020f72/5E420BE3/t51.2885-15/e35/p1080x1080/60306434_315395119395230_9143171722741474046_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=102",
60+
"https://scontent-sjc3-1.cdninstagram.com/vp/4a5977fc6da543a3580dc65bec020f72/5E420BE3/t51.2885-15/e35/p1080x1080/60306434_315395119395230_9143171722741474046_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=102"
6161
};
6262

6363
var breed = "Australian Labradoodle";
@@ -69,7 +69,7 @@ static DogImagesModel GenerateWafflesModel()
6969

7070
static DogImagesModel GenerateWhiskeyModel()
7171
{
72-
var avatarUrl = "https://scontent-sjc3-1.cdninstagram.com/vp/dec8edaafd32ef4f16ce77c2b65eea32/5E62D3AA/t51.2885-19/s320x320/67436293_862189824165677_126933068328992768_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com";
72+
var avatarUrl = "https://scontent-sjc3-1.cdninstagram.com/vp/d0cc41e4c2f2fad7e41ed5f9462421f4/5E6FDB22/t51.2885-19/s320x320/75487930_545788479570130_7341431923115294720_n.jpg?_nc_ht=scontent-sjc3-1.cdninstagram.com";
7373
var websiteUrl = "https://www.whiskeythegoldendoodle.com/";
7474
var name = "Whiskey";
7575

@@ -173,7 +173,7 @@ static DogImagesModel GenerateMiloModel()
173173

174174
return new DogImagesModel(avatarUrl, websiteUrl, name, photosList, breed, coatColor);
175175
}
176-
176+
177177
static DogImagesModel GenerateMagicModel()
178178
{
179179
var avatarUrl = "https://lh3.googleusercontent.com/8B2KQsTtG1nraAD8oE6N2wjNbK-EFEiZMOd3aJkg_Dqf_Wf34MRXjbs8VDIn8w7DTTmz16BbhIQ7hfE-5Xkuruj1lPVgOcZxY3hpGbn483jpnrmW-WfAcC5jg1wsFZ02-Pt5x7tUGCDbl7BfrH0zdaBaxOk3uyOs_zUKHExpSRb125oV7IgBhI9WYuyxSPbZsQVlBCh_NP-yb3B34vZx1IE5D4uHkc960c5V00C_AEllgX5rjMBEyRW9KhDt7gfmvYcssP6VwOH_WtY9gpyNaYihYCubRPtJDX_XnS6mOLMaI3n6i2f8dTo6hJEuCAP-wpybOXCwvBIq0QcmJJUorCH8_Z1-bocfwIZjDNfxVoQ9DC2_N2ZlWAT7eBVRnGSlAXTO4gpFZ9Pj2RYgWqmj1I98_3NWMPKMvlR_-DTAAKX4bkptZ86vsx1Z1e_62l7e7f-3XD9Eg8i_6AZzSOTEOvifOY9mZe8I_VXiYriAOujsIs3sdKeCDNuoLU91cVK9ZdnqJG_ppUkkEGC3V_oMTkE2gXvej6Dvl1vBrVXyoyT9jYjJVUzLZVj4kE9oltojy11ssvUzUs0_RZv_MS1h0Yp645NbyeKdNtDRgyoBPTGhsJj8eMtO_ljjmwqjndwv3M7Wm3Vwl7xfJdSLSmyaAYYauieu3uYbXBPRizLg0jkeWJ8ZvjaKQ2UlD4UqQWAukAtrbcgtsKqPgYCAFU8o6HGXS8bx4JLcZY5BG_8SZhcYlWyP=w989-h742-no";
@@ -193,7 +193,7 @@ static DogImagesModel GenerateMagicModel()
193193

194194
return new DogImagesModel(avatarUrl, websiteUrl, name, photosList, breed, coatColor, birthDate);
195195
}
196-
196+
197197
static DogImagesModel GenerateHermesModel()
198198
{
199199
var avatarUrl = "https://lh3.googleusercontent.com/9kWTrt54igZZj2pEb0y7WVjvosu8PGmT2YFtLg9bTO_-U4NqKkdPZ2i15n2nRCWN-bmyOjFTC4sf0vtK7HqBxLzqzn1_JHn0nptex-GyA7KCfvI2Lli2i1Y5gMbrcaKU_dWTTFxPvcWZEKEiOfGkXYFk8DfWas3uvrGsjE2SQs2dRMndcSttu-SaUuNBDoQROq0IEgnpFx6MS0H5GxlZFCKyDll2CsJfBPYMp2iFBQbKcBNc45Z7UFJDyJx8DxuHT3JYUIabdCFqSKzPXt6ibnlGTs4GFsBA77RIKsivEF2kDT-HXoTGY9M4vxwzgt-6M9-UCjuL-QM_Rci0jyRh08WnpqlkF1MemXIu6kKc7pA-e0gOkVMsoODJ6E1d9Wl95v2bc4FrgJzibHrIyh7LoIKWgV9ImXRXd7i2ZVAiMekbJwRWQUDu9VgvMjBpSW1Qtn6T55_XvA1WZiYamZ33FbDyDzxzYNXwyOAap7U593CDY-b_h2_6IBhVX8tW0WRQgB2igzM7dXtWgIdf2wSfK-7UvWzX9bOfYplIVjXbzxWQF_VYjb6nItW9T7NFXNkx6aipdymb_Cgv-_jbSVfWLYESuMy490DIO_NIvSXqwcAz8r7NOTBvnSp0wYZugdH2v7KKT7v2KZ1_rFi7JTbMof4KFHkFlwQ23aI81VfDls4YRkrikyO1Uf6qUlzJXeOSrAi1BlZXrMcfZJyYmOCDfRUVofMxnTtUiB5Gi9oeswl8-4uX=w509-h382-no";

Source/DotNetGraphQL.API/DotNetGraphQL.API.csproj

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk.Web">
33
<PropertyGroup>
4-
<TargetFramework>netcoreapp2.2</TargetFramework>
5-
<LangVersion>8.0</LangVersion>
4+
<TargetFramework>netcoreapp3.0</TargetFramework>
65
<Nullable>Enable</Nullable>
76
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
87
</PropertyGroup>
98

109
<ItemGroup>
11-
<PackageReference Include="GraphQL" Version="3.0.0-preview-1271" />
10+
<PackageReference Include="GraphQL" Version="3.0.0-preview-1352" />
1211
<PackageReference Include="GraphQL.Common" Version="2.0.0-alpha.3" />
13-
<PackageReference Include="Microsoft.AspNetCore.App">
14-
<PrivateAssets Condition="'%(PackageReference.Version)' == ''">all</PrivateAssets>
15-
<Publish Condition="'%(PackageReference.Version)' == ''">true</Publish>
16-
</PackageReference>
1712
</ItemGroup>
1813
<ItemGroup>
1914
<ProjectReference Include="..\DotNetGraphQL.Common\DotNetGraphQL.Common.csproj">

Source/DotNetGraphQL.API/GraphQLMiddleware.cs

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Diagnostics.CodeAnalysis;
23
using System.IO;
34
using System.Linq;
45
using System.Net;
@@ -31,8 +32,10 @@ public GraphQLMiddleware(RequestDelegate next, GraphQLSettings settings, IDocume
3132

3233
public Task Invoke(HttpContext context, ISchema schema)
3334
{
34-
if (IsGraphQLRequest(context))
35-
return ExecuteAsync(context, schema);
35+
var (isGraphQLRequest, request) = IsGraphQLRequest(context);
36+
37+
if (isGraphQLRequest && request is GraphQLRequest)
38+
return ExecuteAsync(context, schema, request);
3639

3740
return _next(context);
3841
}
@@ -45,16 +48,21 @@ static T Deserialize<T>(Stream stream)
4548
return Serializer.Deserialize<T>(jsonTextReader);
4649
}
4750

48-
bool IsGraphQLRequest(HttpContext context)
51+
(bool isGraphQLRequest, GraphQLRequest? request) IsGraphQLRequest(HttpContext context)
4952
{
50-
return context.Request.Path.StartsWithSegments(_settings.Path)
51-
&& context.Request.Method.Equals("POST", StringComparison.OrdinalIgnoreCase);
53+
try
54+
{
55+
return (context.Request.Path.StartsWithSegments(_settings.Path) && context.Request.Method.Equals("POST", StringComparison.OrdinalIgnoreCase),
56+
Deserialize<GraphQLRequest>(context.Request.Body));
57+
}
58+
catch
59+
{
60+
return (false, null);
61+
}
5262
}
5363

54-
async Task ExecuteAsync(HttpContext context, ISchema schema)
64+
async Task ExecuteAsync(HttpContext context, ISchema schema, GraphQLRequest request)
5565
{
56-
var request = Deserialize<GraphQLRequest>(context.Request.Body);
57-
5866
var result = await _executer.ExecuteAsync(options =>
5967
{
6068
options.Schema = schema;

Source/DotNetGraphQL.API/GraphQLSettings.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/GraphQLUserContext.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/GraphTypes/DogImagesGraphType.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/GraphTypes/ImagesGraphType.cs

100644100755
File mode changed.
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1+
using System.Threading.Tasks;
12
using GraphQL.Validation;
23

34
namespace DotNetGraphQL.Common
45
{
56
public class InputValidationRule : IValidationRule
67
{
7-
public INodeVisitor Validate(ValidationContext context)
8-
{
9-
return new EnterLeaveListener(_ =>
10-
{
11-
});
12-
}
8+
public Task<INodeVisitor> ValidateAsync(ValidationContext context) => Task.FromResult<INodeVisitor>(new EnterLeaveListener());
139
}
1410
}

Source/DotNetGraphQL.API/Program.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/Public/bundle.js

100644100755
File mode changed.

Source/DotNetGraphQL.API/Public/index.html

100644100755
File mode changed.

Source/DotNetGraphQL.API/Public/style.css

100644100755
File mode changed.

Source/DotNetGraphQL.API/Schemas/GraphQLSchema.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/Schemas/ImagesQuery.cs

100644100755
File mode changed.

Source/DotNetGraphQL.API/Startup.cs

+7-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
using Microsoft.AspNetCore.Builder;
55
using Microsoft.AspNetCore.Hosting;
66
using Microsoft.AspNetCore.Http;
7+
using Microsoft.AspNetCore.Server.Kestrel.Core;
78
using Microsoft.Extensions.DependencyInjection;
9+
using Microsoft.Extensions.Hosting;
810
using Microsoft.Extensions.Logging;
911

1012
namespace DotNetGraphQL.API
@@ -13,6 +15,8 @@ public class Startup
1315
{
1416
public void ConfigureServices(IServiceCollection services)
1517
{
18+
services.Configure<KestrelServerOptions>(options => options.AllowSynchronousIO = true);
19+
1620
services.AddSingleton<IDocumentExecuter, DocumentExecuter>();
1721
services.AddSingleton<IDocumentWriter, DocumentWriter>();
1822

@@ -26,10 +30,10 @@ public void ConfigureServices(IServiceCollection services)
2630
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
2731
}
2832

29-
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
33+
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
3034
{
31-
if (env.IsDevelopment())
32-
app.UseDeveloperExceptionPage();
35+
//if (env.IsDevelopment())
36+
// app.UseDeveloperExceptionPage();
3337

3438
app.UseCors("AllowAll");
3539

Source/DotNetGraphQL.API/appsettings.Development.json

100644100755
File mode changed.

Source/DotNetGraphQL.API/appsettings.json

100644100755
File mode changed.

Source/DotNetGraphQL.Common/DotNetGraphQL.Common.csproj

100644100755
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
5-
<LangVersion>8.0</LangVersion>
4+
<TargetFramework>netstandard2.1</TargetFramework>
65
<Nullable>Enable</Nullable>
76
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
87
</PropertyGroup>

Source/DotNetGraphQL.Common/Models/DogImagesModel.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Common/Models/ImagesModel.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Assets/AboutAssets.txt

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/DotNetGraphQL.Mobile.Android.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@
6161
<Reference Include="System.Numerics.Vectors" />
6262
</ItemGroup>
6363
<ItemGroup>
64-
<PackageReference Include="Xamarin.Forms" Version="4.3.0.947036" />
64+
<PackageReference Include="Xamarin.Forms" Version="4.3.0.991211" />
6565
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
66-
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="3.1.0" />
66+
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="4.0.0-pre3" />
6767
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.4.11.982" />
6868
<PackageReference Include="Xam.Plugins.Forms.ImageCircle" Version="3.0.0.5" />
6969
<PackageReference Include="modernhttpclient-updated" Version="3.4.2" />
7070
<PackageReference Include="GraphQL.Client" Version="2.0.0-alpha.3" />
71-
<PackageReference Include="Polly" Version="7.1.1" />
71+
<PackageReference Include="Polly" Version="7.2.0" />
7272
</ItemGroup>
7373
<ItemGroup>
7474
<Compile Include="MainActivity.cs" />

Source/DotNetGraphQL.Mobile.Android/MainActivity.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Properties/AssemblyInfo.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/AboutResources.txt

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/drawable/actionbar_shadow.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/layout/Tabbar.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/layout/Toolbar.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-anydpi-v26/icon.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-anydpi-v26/icon_round.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-hdpi/icon.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-hdpi/launcher_foreground.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-mdpi/icon.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-mdpi/launcher_foreground.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xhdpi/icon.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xxhdpi/icon.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xxxhdpi/icon.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/values/colors.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/Resources/values/styles.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/linker.xml

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.Android/proguard.cfg

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/AppDelegate.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/CustomRenderers/LargeTitleNavigationRenderer.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/DotNetGraphQL.Mobile.iOS.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,14 @@
126126
<Reference Include="System.Numerics.Vectors" />
127127
</ItemGroup>
128128
<ItemGroup>
129-
<PackageReference Include="Xamarin.Forms" Version="4.3.0.947036" />
129+
<PackageReference Include="Xamarin.Forms" Version="4.3.0.991211" />
130130
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
131-
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="3.1.0" />
131+
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="4.0.0-pre3" />
132132
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.4.11.982" />
133133
<PackageReference Include="Xam.Plugins.Forms.ImageCircle" Version="3.0.0.5" />
134134
<PackageReference Include="modernhttpclient-updated" Version="3.4.2" />
135135
<PackageReference Include="GraphQL.Client" Version="2.0.0-alpha.3" />
136-
<PackageReference Include="Polly" Version="7.1.1" />
136+
<PackageReference Include="Polly" Version="7.2.0" />
137137
</ItemGroup>
138138
<ItemGroup>
139139
<ProjectReference Include="..\DotNetGraphQL.Mobile\DotNetGraphQL.Mobile.csproj">

Source/DotNetGraphQL.Mobile.iOS/Entitlements.plist

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Info.plist

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Main.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Properties/AssemblyInfo.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/[email protected]

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/Default-Portrait.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/[email protected]

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/Default.png

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/[email protected]

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile.iOS/Resources/LaunchScreen.storyboard

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile/App.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile/Constants/BackendConstants.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile/DotNetGraphQL.Mobile.csproj

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@
44
<TargetFramework>netstandard2.1</TargetFramework>
55
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
66
<Nullable>Enable</Nullable>
7-
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
87
</PropertyGroup>
98
<ItemGroup>
10-
<PackageReference Include="Xamarin.Forms" Version="4.3.0.947036" />
9+
<PackageReference Include="Xamarin.Forms" Version="4.3.0.991211" />
1110
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
12-
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="3.1.0" />
11+
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="4.0.0-pre3" />
1312
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.4.11.982" />
1413
<PackageReference Include="Xam.Plugins.Forms.ImageCircle" Version="3.0.0.5" />
1514
<PackageReference Include="modernhttpclient-updated" Version="3.4.2" />
1615
<PackageReference Include="GraphQL.Client" Version="2.0.0-alpha.3" />
17-
<PackageReference Include="Polly" Version="7.1.1" />
16+
<PackageReference Include="Polly" Version="7.2.0" />
1817
</ItemGroup>
1918
<ItemGroup>
2019
<ProjectReference Include="..\DotNetGraphQL.Common\DotNetGraphQL.Common.csproj" />

Source/DotNetGraphQL.Mobile/Pages/Base/BaseContentPage.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections;
23
using System.Threading.Tasks;
34
using Xamarin.Essentials;
45
using Xamarin.Forms;
@@ -22,10 +23,12 @@ protected override void OnAppearing()
2223
//If Collection View is Empty, Manually Trigger a Pull-to-Refresh
2324
if (Content is RefreshView refreshView
2425
&& refreshView.Content is CollectionView collectionView
25-
&& !collectionView.ItemsSource.GetEnumerator().MoveNext())
26+
&& IsNullOrEmpty(collectionView.ItemsSource))
2627
{
2728
refreshView.IsRefreshing = true;
2829
}
30+
31+
static bool IsNullOrEmpty(in IEnumerable? enumerable) => !enumerable?.GetEnumerator().MoveNext() ?? true;
2932
}
3033

3134
protected Task OpenBrowser(Uri uri) => Device.InvokeOnMainThreadAsync(() => Browser.OpenAsync(uri));

Source/DotNetGraphQL.Mobile/Pages/Base/BaseNavigationPage.cs

100644100755
File mode changed.

Source/DotNetGraphQL.Mobile/Pages/ImageListPage.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Linq;
1+
using System.Linq;
32
using DotNetGraphQL.Common;
43
using Xamarin.Forms;
54

Source/DotNetGraphQL.Mobile/Services/GraphQLService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static async Task<GraphQLResponse> AttemptAndRetry(Func<Task<GraphQLResponse>> a
5050

5151
return response;
5252

53-
TimeSpan pollyRetryAttempt(int attemptNumber) => TimeSpan.FromSeconds(Math.Pow(2, attemptNumber));
53+
static TimeSpan pollyRetryAttempt(int attemptNumber) => TimeSpan.FromSeconds(Math.Pow(2, attemptNumber));
5454
}
5555
}
5656
}

Source/DotNetGraphQL.Mobile/ViewModels/ImageListViewModel.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.ObjectModel;
3-
using System.Diagnostics;
43
using System.Threading.Tasks;
54
using AsyncAwaitBestPractices;
65
using AsyncAwaitBestPractices.MVVM;
@@ -27,7 +26,7 @@ public event EventHandler<string> PullToRefreshFailed
2726
}
2827

2928
public ObservableCollection<DogImagesModel> DogImageCollection { get; } = new ObservableCollection<DogImagesModel>();
30-
public AsyncCommand RefreshDogCollectionCommand { get; }
29+
public IAsyncCommand RefreshDogCollectionCommand { get; }
3130

3231
public bool IsDogImageCollectionRefreshing
3332
{

Source/DotNetGraphQL.Mobile/Views/ImageList/DogImageListDataTemplateSelector.cs

100644100755
File mode changed.

Source/DotNetGraphQL.sln

100644100755
File mode changed.

0 commit comments

Comments
 (0)