/// <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 void TestAtGetByIdKasterIntranetRepositoryExceptionHvisKontogruppenIkkeFindes()
        {
            var fixture                = new Fixture();
            var kontogrupper           = fixture.CreateMany <Kontogruppe>(3).ToList();
            var kontogruppelisteHelper = new KontogruppelisteHelper(kontogrupper);

            Assert.That(kontogruppelisteHelper, Is.Not.Null);

            Assert.Throws <IntranetRepositoryException>(() => kontogruppelisteHelper.GetById(-1));
        }
        public void TestAtGetByIdHenterKontogruppe()
        {
            var fixture                = new Fixture();
            var kontogrupper           = fixture.CreateMany <Kontogruppe>(3).ToList();
            var kontogruppelisteHelper = new KontogruppelisteHelper(kontogrupper);

            Assert.That(kontogruppelisteHelper, Is.Not.Null);

            var kontogruppe = kontogruppelisteHelper.GetById(kontogrupper.ElementAt(1).Nummer);

            Assert.That(kontogruppe, Is.Not.Null);
            Assert.That(kontogruppe.Nummer, Is.EqualTo(kontogrupper.ElementAt(1).Nummer));
            Assert.That(kontogruppe.Navn, Is.Not.Null);
            Assert.That(kontogruppe.Navn, Is.EqualTo(kontogrupper.ElementAt(1).Navn));
        }
Пример #4
0
        /// <summary>
        /// Henter og returnerer en given kontogruppe.
        /// </summary>
        /// <param name="nummer">Unik identifikation af kontogruppen.</param>
        /// <returns>Kontogruppe.</returns>
        public virtual Kontogruppe KontogruppeGetByNummer(int nummer)
        {
            var kontogruppelisteHelper = new KontogruppelisteHelper(Repository.KontogruppeGetAll());

            return(kontogruppelisteHelper.GetById(nummer));
        }