public async Task RemoveExpense(ExpenseViewModel e)
 {
     try
     {
         await ThreadPool.RunAsync((workItem) =>
         {
             try
             {
                 Vehicle.Expenses.Remove(e.Expense);
                 Expenses.Remove(e);
             }
             catch
             {
             }
             finally
             {
                 Vehicle.Expenses.OrderBy(x => x.Name);
                 Expenses.OrderBy(x => x.Expense.Name);
             }
         });
     }
     catch (Exception ex)
     {
     }
 }
        public async Task RemoveExpense(ExpenseViewModel e)
        {
            try
            {
                await ThreadPool.RunAsync((workItem) =>
                {
                    try
                    {
                        Vehicle.Expenses.Remove(e.Expense);
                        Expenses.Remove(e);
                    }
                    catch
                    {

                    }
                    finally
                    {
                        Vehicle.Expenses.OrderBy(x => x.Name);
                        Expenses.OrderBy(x => x.Expense.Name);
                    }
                });
            }
            catch (Exception ex)
            {

            }
        }
 public async Task AddExpense(string name)
 {
     try
     {
         await ThreadPool.RunAsync((workItem) =>
         {
             try
             {
                 var expense = ExpenseRepository.Factory(name);
                 var vm      = new ExpenseViewModel(expense);
                 Vehicle.Expenses.Add(expense);
                 Expenses.Add(vm);
                 SelectedExpense = vm;
             }
             catch (Exception ex)
             {
                 App.Telemetry.TrackException(ex);
                 SelectedExpense = null;
             }
             finally
             {
                 Vehicle.Expenses.OrderBy(x => x.Name);
                 Expenses.OrderBy(x => x.Expense.Name);
             }
         });
     }
     catch (Exception ex)
     {
         App.Telemetry.TrackException(ex);
     }
 }
 public async Task AddExpense(string name)
 {
     try
     {
         await ThreadPool.RunAsync((workItem) =>
         {
             try
             {
                 var expense = ExpenseRepository.Factory(name);
                 var vm = new ExpenseViewModel(expense);
                 Vehicle.Expenses.Add(expense);
                 Expenses.Add(vm);
                 SelectedExpense = vm;
             }
             catch (Exception ex)
             {
                 App.Telemetry.TrackException(ex);
                 SelectedExpense = null;
             }
             finally
             {
                 Vehicle.Expenses.OrderBy(x => x.Name);
                 Expenses.OrderBy(x => x.Expense.Name);
             }
         });
     }
     catch (Exception ex)
     {
         App.Telemetry.TrackException(ex);
     }
 }