Esempio n. 1
0
        public void TestAtKontogruppeGetAllHenterKontogrupper()
        {
            var kontogrupper = _finansstyringRepository.KontogruppeGetAll();

            Assert.That(kontogrupper, Is.Not.Null);
            Assert.That(kontogrupper.Count(), Is.GreaterThan(0));
        }
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til opdatering af en given konto.</param>
        /// <returns>Opdateret konto.</returns>
        public KontoView Execute(KontoModifyCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            Regnskab regnskab;

            try
            {
                var getBrevhoved = new Func <int, Brevhoved>(nummer => _fællesRepository.BrevhovedGetByNummer(nummer));
                regnskab = _finansstyringRepository.RegnskabGetAll(getBrevhoved)
                           .Single(m => m.Nummer == command.Regnskabsnummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Regnskab),
                                                       command.Regnskabsnummer), ex);
            }
            Kontogruppe kontogruppe;

            try
            {
                kontogruppe = _finansstyringRepository.KontogruppeGetAll().Single(m => m.Nummer == command.Kontogruppe);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Kontogruppe),
                                                       command.Kontogruppe), ex);
            }

            Konto konto;

            try
            {
                konto = regnskab.Konti.OfType <Konto>().Single(m => m.Kontonummer.CompareTo(command.Kontonummer) == 0);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Konto),
                                                       command.Kontonummer), ex);
            }
            konto.SætKontonavn(command.Kontonavn);
            konto.SætBeskrivelse(command.Beskrivelse);
            konto.SætNote(command.Note);
            konto.SætKontogruppe(kontogruppe);

            var opdateretKonto = _finansstyringRepository.KontoModify(regnskab, konto.Kontonummer, konto.Kontonavn,
                                                                      konto.Beskrivelse, konto.Note, konto.Kontogruppe);

            return(_objectMapper.Map <Konto, KontoView>(opdateretKonto));
        }
        /// <summary>
        /// Udfører forespørgelse.
        /// </summary>
        /// <param name="query">Forespørgelse efter alle kontogrupper.</param>
        /// <returns>Alle kontogrupper.</returns>
        public IEnumerable <KontogruppeView> Query(KontogruppeGetAllQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            var kontogrupper = _finansstyringRepository.KontogruppeGetAll();

            return(_objectMapper.Map <IEnumerable <Kontogruppe>, IEnumerable <KontogruppeView> >(kontogrupper));
        }
Esempio n. 4
0
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til opdatering af en given kontogruppe.</param>
        /// <returns>Opdateret kontogruppe.</returns>
        public KontogruppeView Execute(KontogruppeModifyCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            Kontogruppe kontogruppe;

            try
            {
                kontogruppe = _finansstyringRepository.KontogruppeGetAll().Single(m => m.Nummer == command.Nummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Kontogruppe),
                                                       command.Nummer), ex);
            }
            kontogruppe.SætNavn(command.Navn);
            switch (command.KontogruppeType)
            {
            case KontogruppeType.Aktiver:
                kontogruppe.SætKontogruppeType(CommonLibrary.Domain.Enums.KontogruppeType.Aktiver);
                break;

            case KontogruppeType.Passiver:
                kontogruppe.SætKontogruppeType(CommonLibrary.Domain.Enums.KontogruppeType.Passiver);
                break;

            default:
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.UnhandledSwitchValue, command.KontogruppeType,
                                                       "KontogruppeType", MethodBase.GetCurrentMethod().Name));
            }

            var opdateretKontogruppe = _finansstyringRepository.KontogruppeModify(kontogruppe.Nummer, kontogruppe.Navn,
                                                                                  kontogruppe.KontogruppeType);

            return(_objectMapper.Map <Kontogruppe, KontogruppeView>(opdateretKontogruppe));
        }
        /// <summary>
        /// Udfører forespørgelse.
        /// </summary>
        /// <param name="query">Forespørgelse efter en given kontogruppe.</param>
        /// <returns>Kontogruppe.</returns>
        public KontogruppeView Query(KontogruppeGetByNummerQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            Kontogruppe kontogruppe;

            try
            {
                kontogruppe = _finansstyringRepository.KontogruppeGetAll()
                              .Single(m => m.Nummer == query.Nummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Kontogruppe),
                                                       query.Nummer), ex);
            }
            return(_objectMapper.Map <Kontogruppe, KontogruppeView>(kontogruppe));
        }
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til tilføjelse af en konto.</param>
        /// <returns>Oprettet konto.</returns>
        public KontoView Execute(KontoAddCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            Regnskab regnskab;

            try
            {
                var getBrevhoved = new Func <int, Brevhoved>(nummer => _fællesRepository.BrevhovedGetByNummer(nummer));
                regnskab = _finansstyringRepository.RegnskabGetAll(getBrevhoved)
                           .Single(m => m.Nummer == command.Regnskabsnummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Regnskab),
                                                       command.Regnskabsnummer), ex);
            }
            Kontogruppe kontogruppe;

            try
            {
                kontogruppe = _finansstyringRepository.KontogruppeGetAll().Single(m => m.Nummer == command.Kontogruppe);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Kontogruppe),
                                                       command.Kontogruppe), ex);
            }

            var konto = _finansstyringRepository.KontoAdd(regnskab, command.Kontonummer, command.Kontonavn,
                                                          command.Beskrivelse, command.Note, kontogruppe);

            return(_objectMapper.Map <Konto, KontoView>(konto));
        }