/// <summary>
        /// Henter et givent regnskab.
        /// </summary>
        /// <param name="nummer">Unik identifikation af regnskabet.</param>
        /// <param name="getBrevhovedCallback">Callbackmetode til at hente et givent brevhoved.</param>
        /// <param name="getAdresseCallback">Callbackmetode til at hente en given adresse.</param>
        /// <returns>Regnskab.</returns>
        public Regnskab RegnskabGet(int nummer, Func <int, Brevhoved> getBrevhovedCallback, Func <int, AdresseBase> getAdresseCallback)
        {
            if (getBrevhovedCallback == null)
            {
                throw new ArgumentNullException("getBrevhovedCallback");
            }
            if (getAdresseCallback == null)
            {
                throw new ArgumentNullException("getAdresseCallback");
            }
            var channel = _channelFactory.CreateChannel <IFinansstyringRepositoryService>(EndpointConfigurationName);

            try
            {
                // Hent regnskabet.
                var regnskabQuery = new RegnskabGetByNummerQuery
                {
                    Regnskabsnummer = nummer
                };
                var regnskabView = channel.RegnskabGetByNummer(regnskabQuery);
                // Hent alle kontogrupper.
                var kontogruppeQuery = new KontogruppeGetAllQuery();
                var kontogruppeViews = channel.KontogruppeGetAll(kontogruppeQuery);
                // Hent alle budgetkontogrupper.
                var budgetkontogruppeQuery = new BudgetkontogruppeGetAllQuery();
                var budgetkontogruppeViews = channel.BudgetkontogruppeGetAll(budgetkontogruppeQuery);
                // Mapning af regnskab.
                var kontogruppelisteHelper =
                    new KontogruppelisteHelper(
                        _domainObjectBuilder.BuildMany <KontogruppeView, Kontogruppe>(kontogruppeViews));
                var budgetkontogruppelisteHelper =
                    new BudgetkontogruppelisteHelper(
                        _domainObjectBuilder.BuildMany <BudgetkontogruppeView, Budgetkontogruppe>(budgetkontogruppeViews));
                _domainObjectBuilder.GetKontogruppeCallback       = kontogruppelisteHelper.GetById;
                _domainObjectBuilder.GetBudgetkontogruppeCallback = budgetkontogruppelisteHelper.GetById;
                _domainObjectBuilder.GetBrevhovedCallback         = getBrevhovedCallback;
                _domainObjectBuilder.GetAdresseBaseCallback       = getAdresseCallback;
                return(_domainObjectBuilder.Build <RegnskabView, Regnskab>(regnskabView));
            }
            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);
            }
        }
 public RegnskabView RegnskabGetByNummer(RegnskabGetByNummerQuery regnskabGetByNummerQuery)
 {
     try
     {
         return(_queryBus.Query <RegnskabGetByNummerQuery, RegnskabView>(regnskabGetByNummerQuery));
     }
     catch (Exception ex)
     {
         throw CreateFault(MethodBase.GetCurrentMethod(), ex,
                           int.Parse(Properties.Resources.EventLogFinansstyringRepositoryService));
     }
 }