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

ExecuteDeleteTripCommand() public method

public ExecuteDeleteTripCommand ( Trip trip ) : Task
trip MyDriving.DataObjects.Trip
return Task
        public async Task<bool> ExecuteDeleteTripCommand(Trip trip)
        {
            if (IsBusy)
                return false;

            Logger.Instance.Track("DeleteTrip");
            var progress = UserDialogs.Instance.Loading("Deleting Trip...", show: false, maskType: MaskType.Clear);

            try
            {
                var result =
                    await
                        UserDialogs.Instance.ConfirmAsync($"Are you sure you want to delete trip: {trip.Name}?",
                            "Delete trip?", "Delete", "Cancel");

                if (!result)
                    return false;

                progress?.Show();

                await StoreManager.TripStore.RemoveAsync(trip);

                Trips.Remove(trip);
            }
            catch (Exception ex)
            {
                Logger.Instance.Report(ex);
            }
            finally
            {
                progress?.Dispose();
            }

            return true;
        }