private async void GetPoolResults() { Func <Task> results = new Func <Task>( async() => { var query = await PoolsResults.GetAvailablePools(); if (query.Count() > 0) { Polls.ForEach(poll => poll.Results = new ObservableCollection <Microcharts.Entry>()); foreach (PoolsResults poolResult in query) { var proxy = Polls.Where(p => p.Definition.Category == poolResult.Category).FirstOrDefault(); var entry = new Microcharts.Entry(poolResult.Votes); entry.Label = poolResult.Option; var newColor = new SkiaSharp.SKColor((byte)rnd.Next(256), (byte)rnd.Next(256), (byte)rnd.Next(256)); entry.Color = newColor; entry.ValueLabel = poolResult.Votes.ToString(); proxy.Results.Add(entry); } foreach (var poll in Polls) { if (poll.Answer != null) { poll.CurrentChart = new PieChart() { Entries = poll.Results, LabelTextSize = 50 }; } } } } ); await ExecuteSafeOperation(results); }