Exemplo n.º 1
0
        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);
        }