/// <summary>
        ///     Creates an PaymentViewModel based on the recurring PaymentViewModel.
        /// </summary>
        /// <param name="recurringPayment">The recurring PaymentViewModel the new PaymentViewModel shall be based on.</param>
        /// <returns>The new created PaymentViewModel</returns>
        public static PaymentViewModel GetPaymentFromRecurring(RecurringPayment recurringPayment)
        {
            var date = DateTime.Today;
            var recurringVm = new RecurringPaymentViewModel(recurringPayment);

            //If the PaymentViewModel is monthly we want it on the same day of month again.
            if (recurringVm.Recurrence == PaymentRecurrence.Monthly)
            {
                date = DateTime.Today.AddDays(recurringVm.StartDate.Day - DateTime.Today.Day);
            }

            return new PaymentViewModel
            {
                ChargedAccount = recurringVm.ChargedAccount,
                TargetAccount = recurringVm.TargetAccount,
                Date = date,
                IsRecurring = true,
                Amount = recurringVm.Amount,
                Category = recurringVm.Category,
                Type = recurringVm.Type,
                RecurringPayment = recurringVm.GetRecurringPayment(),
                Note = recurringVm.Note
            };
        }
        public void RemoveRecurringForPayments(RecurringPaymentViewModel recurringPayment)
        {
            try
            {
                var relatedPayment = paymentRepository
                    .Data
                    .Where(x => x.IsRecurring && x.RecurringPayment.Id == recurringPayment.Id);

                foreach (var payment in relatedPayment)
                {
                    payment.IsRecurring = false;
                    payment.RecurringPayment.Id = 0;
                    paymentRepository.Save(payment);
                }
            }
            catch (Exception ex)
            {
                new TelemetryClient().TrackException(ex);
            }
        }