private async Task DeletePaymentAsync()
        {
            if (await dialogService.ShowConfirmMessageAsync(Strings.DeleteTitle,
                                                            Strings.DeletePaymentConfirmationMessage))
            {
                var command = new DeletePaymentByIdCommand(SelectedPayment.Id);

                if (SelectedPayment.IsRecurring)
                {
                    command.DeleteRecurringPayment = await dialogService.ShowConfirmMessageAsync(Strings.DeleteRecurringPaymentTitle,
                                                                                                 Strings.DeleteRecurringPaymentMessage);
                }

                try
                {
                    await dialogService.ShowLoadingDialogAsync();

                    await mediator.Send(command);

                    navigationService.GoBack();
                }
                catch (PaymentNotFoundException ex)
                {
                    logger.Warn(ex);
                }
                finally
                {
                    await dialogService.HideLoadingDialogAsync();
                }
            }
        }
        private async Task DeletePaymentAsync(PaymentViewModel payment)
        {
            if (await dialogService.ShowConfirmMessageAsync(Strings.DeleteTitle, Strings.DeletePaymentConfirmationMessage))
            {
                var deleteCommand = new DeletePaymentByIdCommand(payment.Id);
                if (SelectedPayment.IsRecurring)
                {
                    deleteCommand.DeleteRecurringPayment = await dialogService.ShowConfirmMessageAsync(Strings.DeleteRecurringPaymentTitle,
                                                                                                       Strings.DeleteRecurringPaymentMessage);
                }

                try
                {
                    await dialogService.ShowLoadingDialogAsync();

                    await mediator.Send(deleteCommand);

                    await Shell.Current.Navigation.PopModalAsync();
                }
                catch (PaymentNotFoundException ex)
                {
                    logger.Warn(ex);
                }
                finally
                {
                    await dialogService.HideLoadingDialogAsync();
                }
            }
        }
        private async Task DeletePaymentAsync()
        {
            if (!await dialogService.ShowConfirmMessageAsync(Strings.DeleteTitle,
                                                             Strings.DeletePaymentConfirmationMessage,
                                                             Strings.YesLabel,
                                                             Strings.NoLabel))
            {
                return;
            }

            var command = new DeletePaymentByIdCommand(SelectedPayment.Id);

            if (SelectedPayment.IsRecurring)
            {
                command.DeleteRecurringPayment = await dialogService.ShowConfirmMessageAsync(Strings.DeleteRecurringPaymentTitle,
                                                                                             Strings.DeleteRecurringPaymentMessage);
            }

            await mediator.Send(command);
        }