/// <summary>
        /// Metoda do pobrania z API danych oraz wczytywanie ich do widoku.
        /// </summary>
        /// <param name="download">Obiekt implementujący IDownloadCompetition, musi posiadać właściwość liste CompetitionsDTO</param>
        /// <param name="listView">Widok listy</param>
        /// <param name="grid">Grid aplikacji</param>
        /// <param name="lblNoInternet">Labelka do informacji o braku połączenia</param>
        public async void DownloadData(IDownloadCompetition download, ListView listView, Grid grid, Label lblNoInternet)
        {
            await download.HttpCall();

            Results = download.results;

            Competitions = new List <CustomCompetition>();

            if (Results != null)
            {
                foreach (var result in Results)
                {
                    CustomCompetition custom = new CustomCompetition()
                    {
                        Id                = result.Id,
                        Caption           = result.Caption,
                        League            = result.League,
                        Year              = result.Year,
                        CurrentMatchday   = result.CurrentMatchday.ToString(),
                        NumberOfMatchdays = result.NumberOfMatchdays.ToString(),
                        NumerOfTeams      = result.NumberOfTeams.ToString()
                    };
                    Competitions.Add(custom);
                }
            }
            else
            {
                lblNoInternet.IsVisible = true;
            }
            listView.ItemsSource = Competitions;
            grid.IsVisible       = false;
        }
Example #2
0
        protected override void OnAppearing()
        {
            listView.ItemTemplate = new DataTemplate(typeof(CompetitionsView));
            IDownloadCompetition download = new DownloadCompetition();

            _vm.DownloadData(download, listView, grid, LblNoInternet);

            listView.ItemSelected += async(s, e) =>
            {
                grid.IsVisible = true;
                CustomCompetition item = (CustomCompetition)e.SelectedItem;
                CompetitionPage   page = new CompetitionPage();
                page.Title = item.Caption;
                (Application.Current as App).CompetitionId = item.Id;
                //await Task.Delay(1000);
                await Navigation.PushAsync(page);
            };
        }
Example #3
0
        private void ItemsSourceChanged()
        {
            _layout.Children.Clear();
            foreach (var item in ItemsSource)
            {
                CustomCompetition custom = (CustomCompetition)item;
                if (custom.Id == 1)
                {
                    ItemTemplate = new DataTemplate(typeof(CompetitionView));
                }
                else if (custom.Id == 2)
                {
                    ItemTemplate = new DataTemplate(typeof(FixturesView));
                }
                else if (custom.Id == 3)
                {
                    ItemTemplate = new DataTemplate(typeof(LeagueView));
                }
                else
                {
                    ItemTemplate = new DataTemplate(typeof(TeamsView));
                }
                var view           = (View)ItemTemplate.CreateContent();
                var bindableObject = view as BindableObject;
                if (bindableObject != null)
                {
                    bindableObject.BindingContext = item;
                }
                _layout.Children.Add(view);
            }

            if (_selectedIndex > -1)
            {
                SelectedIndex = _selectedIndex;
            }
        }