Skip to content
This repository was archived by the owner on Jul 2, 2022. It is now read-only.

Commit 980a87f

Browse files
committed
Fixed bug in the loader of models
1 parent afa5e3c commit 980a87f

3 files changed

Lines changed: 69 additions & 52 deletions

File tree

CodeHub.Core/ViewModels/ViewModelExtensions.cs

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,78 @@
11
using System;
2-
using System.Threading.Tasks;
3-
using Cirrious.CrossCore;
4-
using Cirrious.MvvmCross.ViewModels;
5-
using CodeFramework.Core.ViewModels;
6-
using CodeHub.Core.Services;
2+
using System.Threading.Tasks;
3+
using Cirrious.CrossCore;
4+
using Cirrious.MvvmCross.ViewModels;
5+
using CodeFramework.Core.ViewModels;
6+
using CodeHub.Core.Services;
77
using GitHubSharp;
88
using System.Collections.Generic;
9+
using CodeFramework.Core.Services;
910

1011
namespace CodeHub.Core.ViewModels
1112
{
1213
public static class ViewModelExtensions
1314
{
14-
public static async Task RequestModel<TRequest>(this MvxViewModel viewModel, GitHubRequest<TRequest> request, bool forceDataRefresh, Action<GitHubResponse<TRequest>> update) where TRequest : new()
15+
public static Task RequestModel<TRequest>(this MvxViewModel viewModel, GitHubRequest<TRequest> request, bool forceDataRefresh, Action<GitHubResponse<TRequest>> update) where TRequest : new()
1516
{
1617
if (forceDataRefresh)
1718
{
1819
request.CheckIfModified = false;
1920
request.RequestFromCache = false;
2021
}
2122

22-
var response = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(request);
23-
update(response);
23+
var application = Mvx.Resolve<IApplicationService>();
24+
var uiThrad = Mvx.Resolve<IUIThreadService>();
2425

25-
if (response.WasCached)
26+
return Task.Run(() =>
2627
{
27-
Task.Run(async () => {
28+
var result = application.Client.Execute(request);
29+
uiThrad.MarshalOnUIThread(() => update(result));
30+
31+
if (result.WasCached)
32+
{
2833
try
2934
{
3035
request.RequestFromCache = false;
31-
var r = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(request);
32-
update(r);
36+
var r = application.Client.Execute(request);
37+
uiThrad.MarshalOnUIThread(() => update(r));
3338
}
3439
catch (NotModifiedException)
3540
{
3641
Console.WriteLine("Not modified: " + request.Url);
3742
}
38-
catch (Exception)
43+
catch (Exception)
3944
{
4045
Console.WriteLine("SHIT! " + request.Url);
4146
}
42-
});
43-
}
47+
}
48+
});
4449
}
4550

4651
public static void CreateMore<T>(this MvxViewModel viewModel, GitHubResponse<T> response,
47-
Action<Task> assignMore, Action<T> newDataAction) where T : new()
52+
Action<Task> assignMore, Action<T> newDataAction) where T : new()
4853
{
4954
if (response.More == null)
5055
{
5156
assignMore(null);
5257
return;
5358
}
5459

55-
var task = new Task(async () =>
56-
{
57-
response.More.UseCache = false;
58-
var moreResponse = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(response.More);
59-
viewModel.CreateMore(moreResponse, assignMore, newDataAction);
60-
newDataAction(moreResponse.Data);
61-
});
60+
var task = new Task(async () =>
61+
{
62+
response.More.UseCache = false;
63+
var moreResponse = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(response.More);
64+
viewModel.CreateMore(moreResponse, assignMore, newDataAction);
65+
newDataAction(moreResponse.Data);
66+
});
6267

63-
assignMore(task);
68+
assignMore(task);
6469
}
6570

6671
public static Task SimpleCollectionLoad<T>(this CollectionViewModel<T> viewModel, GitHubRequest<List<T>> request, bool forceDataRefresh) where T : new()
6772
{
68-
return viewModel.RequestModel(request, forceDataRefresh, response => {
69-
viewModel.CreateMore(response, m => viewModel.MoreItems = m, viewModel.Items.AddRange);
73+
return viewModel.RequestModel(request, forceDataRefresh, response =>
74+
{
75+
viewModel.CreateMore(response, m => viewModel.MoreItems = m, viewModel.Items.AddRange);
7076
viewModel.Items.Reset(response.Data);
7177
});
7278
}

CodeHub.iOS/CodeHub.iOS.sln

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -149,67 +149,78 @@ Global
149149
{6D7B9B53-CFEF-46BE-A608-14A4A1381CF6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
150150
{6D7B9B53-CFEF-46BE-A608-14A4A1381CF6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
151151
{6D7B9B53-CFEF-46BE-A608-14A4A1381CF6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
152-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
153-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
152+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
153+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
154154
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AdHoc|iPhone.ActiveCfg = Debug|Any CPU
155155
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
156156
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AdHoc|iPhone.Build.0 = Debug|Any CPU
157+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
157158
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AdHoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
158-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
159+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
159160
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AdHoc|iPhoneSimulator.Build.0 = Debug|Any CPU
160-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
161-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
162-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
163-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Any CPU.Build.0 = Release|Any CPU
161+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
162+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Mixed Platforms.ActiveCfg = Debug|Any CPU
163+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Ad-Hoc|Mixed Platforms.Build.0 = Debug|Any CPU
164+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
165+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Any CPU.Build.0 = Debug|Any CPU
164166
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
165-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
166-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
167-
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
167+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|iPhone.Build.0 = Release|Any CPU
168+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
169+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
170+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Mixed Platforms.ActiveCfg = Debug|Any CPU
171+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.AppStore|Mixed Platforms.Build.0 = Debug|Any CPU
168172
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
169173
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|Any CPU.Build.0 = Debug|Any CPU
170174
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
175+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|iPhone.Build.0 = Debug|Any CPU
171176
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
172177
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
173178
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
174179
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
175180
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|Any CPU.ActiveCfg = Release|Any CPU
176181
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|Any CPU.Build.0 = Release|Any CPU
177182
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|iPhone.ActiveCfg = Release|Any CPU
183+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|iPhone.Build.0 = Release|Any CPU
178184
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
185+
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
179186
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
180187
{89E14828-85BB-4790-9B4E-E44DD4CE000E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
181-
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator
188+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|iPhoneSimulator
189+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Any CPU.Build.0 = Debug|iPhoneSimulator
182190
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
183-
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhone.ActiveCfg = Debug|iPhone
191+
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhone.ActiveCfg = Debug|iPhoneSimulator
184192
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
185-
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhone.Build.0 = Debug|iPhone
186-
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
193+
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhone.Build.0 = Debug|iPhoneSimulator
187194
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
188-
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
195+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
189196
{B061316A-F386-4FE2-93B7-555584234FF8}.AdHoc|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
190-
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Mixed Platforms.ActiveCfg = Ad-Hoc|iPhoneSimulator
191-
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Mixed Platforms.Build.0 = Ad-Hoc|iPhoneSimulator
192-
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator
197+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
198+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Mixed Platforms.ActiveCfg = Debug|iPhoneSimulator
199+
{B061316A-F386-4FE2-93B7-555584234FF8}.Ad-Hoc|Mixed Platforms.Build.0 = Debug|iPhoneSimulator
200+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Any CPU.ActiveCfg = Debug|iPhoneSimulator
201+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Any CPU.Build.0 = Debug|iPhoneSimulator
193202
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
194203
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhone.Build.0 = AppStore|iPhone
195-
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
196-
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
197-
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Mixed Platforms.ActiveCfg = AppStore|iPhoneSimulator
198-
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Mixed Platforms.Build.0 = AppStore|iPhoneSimulator
204+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
205+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
206+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Mixed Platforms.ActiveCfg = Debug|iPhoneSimulator
207+
{B061316A-F386-4FE2-93B7-555584234FF8}.AppStore|Mixed Platforms.Build.0 = Debug|iPhoneSimulator
199208
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
209+
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
200210
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|iPhone.ActiveCfg = Debug|iPhone
201211
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|iPhone.Build.0 = Debug|iPhone
202212
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
203213
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
204214
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|Mixed Platforms.ActiveCfg = Debug|iPhoneSimulator
205215
{B061316A-F386-4FE2-93B7-555584234FF8}.Debug|Mixed Platforms.Build.0 = Debug|iPhoneSimulator
206-
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
216+
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Any CPU.ActiveCfg = Debug|iPhoneSimulator
217+
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Any CPU.Build.0 = Debug|iPhoneSimulator
207218
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|iPhone.ActiveCfg = Release|iPhone
208219
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|iPhone.Build.0 = Release|iPhone
209220
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
210221
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
211-
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Mixed Platforms.ActiveCfg = Release|iPhoneSimulator
212-
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Mixed Platforms.Build.0 = Release|iPhoneSimulator
222+
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Mixed Platforms.ActiveCfg = Debug|iPhoneSimulator
223+
{B061316A-F386-4FE2-93B7-555584234FF8}.Release|Mixed Platforms.Build.0 = Debug|iPhoneSimulator
213224
{B7970173-9022-466B-B57A-7AB1E1F3145F}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
214225
{B7970173-9022-466B-B57A-7AB1E1F3145F}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
215226
{B7970173-9022-466B-B57A-7AB1E1F3145F}.AdHoc|iPhone.ActiveCfg = Debug|Any CPU

0 commit comments

Comments
 (0)