예제 #1
0
        private async Task LoadMoreAction(object arg)
        {
            if (IsLoading)
            {
                return;
            }

            IsLoading = true;

            try
            {
                var morePeople = await Service.GetPeople(nextPage.Substring(nextPage.IndexOf("page=")));

                foreach (var p in morePeople.PeopleList)
                {
                    People.Add(p);
                }

                nextPage    = morePeople.NextPage;
                HasNextPage = nextPage != null;
                OnPropertyChanged("People");
            }
            catch (Exception)
            {
                //TODO: Handle specific exception

                AlertHelper.ShowMessage("Error", AppResource.err_DataLoadMessage, "OK");
            }

            IsLoading = false;
        }
예제 #2
0
        public async Task GetData()
        {
            IsLoading = true;
            try
            {
                //Get the first 20 people
                var tasks = new List <Task <PeopleModel> >();
                for (int i = 1; i <= pages; i++)
                {
                    tasks.Add(Service.GetPeople("page=" + i.ToString()));
                }

                await Task.WhenAll(tasks);

                var tempPeople = new List <PersonModel>();

                foreach (var t in tasks)
                {
                    tempPeople.AddRange(t.Result.PeopleList);
                }

                People      = new ObservableCollection <PersonModel>(tempPeople);
                nextPage    = tasks.Last()?.Result.NextPage;
                HasNextPage = nextPage != null;
            }
            catch (Exception)
            {
                //TODO: Handle specific exception

                AlertHelper.ShowMessage("Error", AppResource.err_DataLoadMessage, "OK");
            }

            IsLoading = false;
        }
예제 #3
0
        public async Task GetData()
        {
            IsLoading = true;
            try
            {
                //Get Films
                var tempFilms = new List <FilmModel>();
                if (Person.Films != null)
                {
                    var tasks = new List <Task <FilmModel> >();
                    for (int i = 0; i < Person.Films.Count; i++)
                    {
                        tasks.Add(Service.GetFilm(Person.Films[i]));
                    }

                    foreach (var t in tasks)
                    {
                        tempFilms.Add(t.Result);
                    }

                    await Task.WhenAll(tasks);
                }

                //Get Species
                var tempSpecies = new List <SpeciesModel>();
                if (Person.Species != null)
                {
                    var tasks = new List <Task <SpeciesModel> >();
                    for (int i = 0; i < Person.Species.Count; i++)
                    {
                        tasks.Add(Service.GetSpecies(Person.Species[i]));
                    }

                    foreach (var t in tasks)
                    {
                        tempSpecies.Add(t.Result);
                    }

                    await Task.WhenAll(tasks);
                }

                //Get Vehicles
                var tempVehicles = new List <VehicleModel>();
                if (Person.Vehicles != null)
                {
                    var tasks = new List <Task <VehicleModel> >();
                    for (int i = 0; i < Person.Vehicles.Count; i++)
                    {
                        tasks.Add(Service.GetVehicle(Person.Vehicles[i]));
                    }

                    foreach (var t in tasks)
                    {
                        tempVehicles.Add(t.Result);
                    }

                    await Task.WhenAll(tasks);
                }

                //Get Starships
                var tempStarships = new List <StarshipModel>();
                if (Person.Starships != null)
                {
                    var tasks = new List <Task <StarshipModel> >();
                    for (int i = 0; i < Person.Starships.Count; i++)
                    {
                        tasks.Add(Service.GetStarship(Person.Starships[i]));
                    }

                    foreach (var t in tasks)
                    {
                        tempStarships.Add(t.Result);
                    }

                    await Task.WhenAll(tasks);
                }

                Films     = new ObservableCollection <FilmModel>(tempFilms);
                Vehicles  = new ObservableCollection <VehicleModel>(tempVehicles);
                Species   = new ObservableCollection <SpeciesModel>(tempSpecies);
                Starships = new ObservableCollection <StarshipModel>(tempStarships);
            }
            catch (Exception)
            {
                //TODO: Handle specific exception

                AlertHelper.ShowMessage("Error", AppResource.err_DataLoadMessage, "OK");
            }
            IsLoading = false;
        }