public BogføringslinjeView BogføringslinjeAdd(BogføringslinjeAddCommand bogføringslinjeAddCommand)
 {
     try
     {
         return(_commandBus.Publish <BogføringslinjeAddCommand, BogføringslinjeView>(bogføringslinjeAddCommand));
     }
     catch (Exception ex)
     {
         throw CreateFault(MethodBase.GetCurrentMethod(), ex,
                           int.Parse(Properties.Resources.EventLogFinansstyringRepositoryService));
     }
 }
        /// <summary>
        /// Tilføjer en bogføringslinje.
        /// </summary>
        /// <param name="bogføringstidspunkt">Bogføringstidspunkt.</param>
        /// <param name="bilag">Bilag.</param>
        /// <param name="konto">Konto.</param>
        /// <param name="tekst">Tekst.</param>
        /// <param name="budgetkonto">Budgetkonto.</param>
        /// <param name="debit">Debitbeløb.</param>
        /// <param name="kredit">Kreditbeløb.</param>
        /// <param name="adressekonto">Adressekonto.</param>
        /// <returns>Oprettet bogføringslinje.</returns>
        public Bogføringslinje BogføringslinjeAdd(DateTime bogføringstidspunkt, string bilag, Konto konto, string tekst, Budgetkonto budgetkonto, decimal debit, decimal kredit, AdresseBase adressekonto)
        {
            if (konto == null)
            {
                throw new ArgumentNullException("konto");
            }
            if (string.IsNullOrEmpty(tekst))
            {
                throw new ArgumentNullException("tekst");
            }
            var channel = _channelFactory.CreateChannel <IFinansstyringRepositoryService>(EndpointConfigurationName);

            try
            {
                // Udførelse af kommando.
                var command = new BogføringslinjeAddCommand
                {
                    Regnskabsnummer   = konto.Regnskab.Nummer,
                    Bogføringsdato    = bogføringstidspunkt,
                    Bilag             = bilag,
                    Kontonummer       = konto.Kontonummer,
                    Tekst             = tekst,
                    Budgetkontonummer = budgetkonto == null ? null : budgetkonto.Kontonummer,
                    Debit             = debit,
                    Kredit            = kredit,
                    AdresseId         = adressekonto == null ? 0 : adressekonto.Nummer
                };
                var result = channel.BogføringslinjeAdd(command);
                // Behandling af resultat.
                var bogføringslinje = new Bogføringslinje(result.Løbenummer, result.Dato, result.Bilag, result.Tekst,
                                                          result.Debit, result.Kredit);
                konto.TilføjBogføringslinje(bogføringslinje);
                if (budgetkonto != null)
                {
                    budgetkonto.TilføjBogføringslinje(bogføringslinje);
                }
                if (adressekonto != null)
                {
                    adressekonto.TilføjBogføringslinje(bogføringslinje);
                }
                return(bogføringslinje);
            }
            catch (IntranetRepositoryException)
            {
                throw;
            }
            catch (FaultException ex)
            {
                throw new IntranetRepositoryException(ex.Message);
            }
            catch (Exception ex)
            {
                throw new IntranetRepositoryException(
                          Resource.GetExceptionMessage(ExceptionMessage.RepositoryError, MethodBase.GetCurrentMethod().Name,
                                                       ex.Message), ex);
            }
            finally
            {
                ChannelTools.CloseChannel(channel);
            }
        }