MyDriving.ViewModel.PastTripsViewModel.ExecuteLoadMorePastTripsCommandAsync C# (CSharp) Method

ExecuteLoadMorePastTripsCommandAsync() public method

public ExecuteLoadMorePastTripsCommandAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
        public async Task ExecuteLoadMorePastTripsCommandAsync()
        {
            if (IsBusy || !CanLoadMore)
                return;

            var track = Logger.Instance.TrackTime("LoadMoreTrips");
            track?.Start();
            ProgressDialogManager.LoadProgressDialog("Loading more trips...");

            try
            {
                IsBusy = true;
                CanLoadMore = true;

                var newCount = Trips.Count + 25;
                Trips.AddRange(await StoreManager.TripStore.GetItemsAsync(Trips.Count, 25, true));

                CanLoadMore = Trips.Count == newCount;
            }
            catch (Exception ex)
            {
                Logger.Instance.Report(ex);
            }
            finally
            {
                track?.Stop();
                IsBusy = false;
                ProgressDialogManager.DisposeProgressDialog();
            }
        }
    }