public Task DeleteExpensePeriodAsync(Context context, ExpensePeriod expensePeriod, CancellationToken cancellationToken) { return(ExecuteWithAuthorizationAsync(context, () => { var expensePeriodTable = _client.GetTable <ExpensePeriod>(); return expensePeriodTable.DeleteAsync(expensePeriod); }, cancellationToken)); }
private async Task UpdateExpensePeriodAsync(Intent data) { var localDestroyCancellationSource = _destroyCancellationSource; string itemId = data.GetStringExtra(AddOrEditExpensePeriodActivity.ItemIdKey); int amountAvailableInCents = data.GetIntExtra(AddOrEditExpensePeriodActivity.AmountAvailableInCentsKey, 0); long startDateInTicks = data.GetLongExtra(AddOrEditExpensePeriodActivity.StartDateInTicksKey, 0); var progressDialog = new ProgressDialog(Context); progressDialog.Indeterminate = true; progressDialog.SetTitle(Resource.String.UpdatingExpensePeriod); progressDialog.Show(); var expensePeriod = new ExpensePeriod { Id = itemId, AmountAvailable = amountAvailableInCents / 100m, StartDate = new DateTimeOffset(new DateTime(startDateInTicks, DateTimeKind.Local)) }; try { await _persistedDataFragment.UpdateExpensePeriodAsync(Context, expensePeriod, localDestroyCancellationSource.Token); } catch (Exception ex) { if (localDestroyCancellationSource.IsCancellationRequested) { return; } progressDialog.Hide(); var alert = new AlertDialog.Builder(Context).Create(); alert.SetMessage(ex.Message); alert.Show(); return; } _persistedDataFragment.InvalidateExpensePeriods(); if (localDestroyCancellationSource.IsCancellationRequested) { return; } progressDialog.Hide(); await InitializeExpensePeriodsAsync(View); }
private void EditSelectedExpensePeriod() { var listView = View.FindViewById <ListView>(Resource.Id.ExpensePeriodsListView); var adapter = listView.Adapter as ExpensePeriodsAdapter; if (listView.CheckedItemCount > 0 && adapter != null) { ExpensePeriod selectedExpensePeriod = adapter[listView.CheckedItemPosition]; var intent = new Intent(View.Context, typeof(AddOrEditExpensePeriodActivity)); intent.PutExtra(AddOrEditExpensePeriodActivity.ItemIdKey, selectedExpensePeriod.Id); intent.PutExtra(AddOrEditExpensePeriodActivity.AmountAvailableInCentsKey, (int)(selectedExpensePeriod.AmountAvailable * 100m)); intent.PutExtra(AddOrEditExpensePeriodActivity.StartDateInTicksKey, selectedExpensePeriod.StartDate.LocalDateTime.Ticks); StartActivityForResult(intent, EditExpensePeriodRequestCode); } }
private void DeleteSelectedExpensePeriod() { var listView = View.FindViewById <ListView>(Resource.Id.ExpensePeriodsListView); var adapter = listView.Adapter as ExpensePeriodsAdapter; if (listView.CheckedItemCount > 0 && adapter != null) { ExpensePeriod selectedExpensePeriod = adapter[listView.CheckedItemPosition]; var alert = new AlertDialog.Builder(Context).Create(); alert.SetMessage(string.Format(GetString(Resource.String.DeleteExpensePeriodConfirmation), selectedExpensePeriod.StartDate.ToString("D"))); alert.SetButton( GetString(Resource.String.DeleteExpensePeriodCommand), async(sender, e) => { await ExecuteDeleteExpensePeriodAsync(selectedExpensePeriod); }); alert.SetButton2( GetString(Android.Resource.String.Cancel), (sender, e) => { alert.Cancel(); }); alert.Show(); } }
private async Task ExecuteDeleteExpensePeriodAsync(ExpensePeriod expensePeriod) { var localDestroyCancellationSource = _destroyCancellationSource; var progressDialog = new ProgressDialog(Context); progressDialog.Indeterminate = true; progressDialog.SetTitle(Resource.String.DeletingExpensePeriod); progressDialog.Show(); await _persistedDataFragment.DeleteExpensePeriodAsync(Context, expensePeriod, localDestroyCancellationSource.Token); _persistedDataFragment.InvalidateExpensePeriods(); if (localDestroyCancellationSource.IsCancellationRequested) { return; } progressDialog.Hide(); await InitializeExpensePeriodsAsync(View); }