public int CreatePaymentEvent(PaymentEventDto paymentDto, int customerId)
        {
            PaymentEvent paymentEvent = new PaymentEvent();

            UpdatePaymentEvent(ref paymentEvent, paymentDto);

            Customer customer = _repository.Load<Customer>(customerId);
            customer.PaymentEvents.Add(paymentEvent);

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    _repository.Save<PaymentEvent>(paymentEvent);
                    _repository.Update<Customer>(customer);
                    _repository.Flush();
                    scope.Complete();
                    return paymentEvent.Id;
                }
                catch (Exception ex)
                {
                    log.Error("Error during Creating new PaymentEvent", ex);
                    return -1;
                }
            }
        }
        public void UpdatePaymentEvent(ref PaymentEvent paymentEvent, PaymentEventDto paymentDto)
        {
            paymentEvent.Description = paymentDto.Description;
            paymentEvent.Name = paymentDto.Title;
            paymentEvent.PartnerIban = paymentDto.PartnerIban;
            paymentEvent.Amount = paymentDto.Amount;
            paymentEvent.Date = paymentDto.Date;
            paymentEvent.Regular = paymentDto.Regular;

            if (paymentDto.PartnerId != -1)
            {
                BusinessPartner partner = _repository.Load<BusinessPartner>(paymentDto.PartnerId);
                paymentEvent.Partner = partner;
            }

            if (paymentDto.AccountId != -1)
            {
                Account account = _repository.Load<Account>(paymentDto.AccountId);
                paymentEvent.Account = account;
            }
        }