public async Task Send() { try { if (!CanSend()) { return; } if (!connectivity.IsConnected) { await View.DisplayAlert("...", "Internet connection required", "Ok"); return; } var amount = decimal.Parse(Amount.Value); var request = new ChargeCardRequest { Amount = amount, }; using (WorkingScope.Enter()) { var response = await cardsService.ChargeCard(secureStorage.GetUserId().Value, appData.Cards.First().Id, request); appData.Cards.First().Balance = response.NewCardBalance; appData.BucketAmount = response.NewBucketAmount; await cardData.SaveCards(appData.Cards); await bucketData.SaveBucketInfo(new BucketInfo { Amount = appData.BucketAmount }); } await View.DisplayAlert("Done", "Card charged successfully!", "Ok"); } catch (Exception ex) { Crashes.TrackError(ex, new Dictionary <string, string> { { "page", "send bucket to card" }, { "operation", $"{nameof(BucketHomeViewModel)}.{nameof(Send)}" } }); await View.DisplayAlert("Error", "An error occurred while processing your request" + ex, "Ok"); } }