Esempio n. 1
0
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til opdatering af en given gruppe til budgetkonti.</param>
        /// <returns>Opdateret gruppe til budgetkonti.</returns>
        public BudgetkontogruppeView Execute(BudgetkontogruppeModifyCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            Budgetkontogruppe budgetkontogruppe;

            try
            {
                budgetkontogruppe = _finansstyringRepository.BudgetkontogrupperGetAll()
                                    .Single(m => m.Nummer == command.Nummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Budgetkontogruppe),
                                                       command.Nummer), ex);
            }
            budgetkontogruppe.SætNavn(command.Navn);

            var opdateretBudgetkontogruppe = _finansstyringRepository.BudgetkontogruppeModify(budgetkontogruppe.Nummer,
                                                                                              budgetkontogruppe.Navn);

            return(_objectMapper.Map <Budgetkontogruppe, BudgetkontogruppeView>(opdateretBudgetkontogruppe));
        }
Esempio n. 2
0
        /// <summary>
        /// Udfører forespørgelse.
        /// </summary>
        /// <param name="query">Forespørgelse efter alle grupper for budgetkonti.</param>
        /// <returns>Alle grupper for budgetkonti.</returns>
        public IEnumerable <BudgetkontogruppeView> Query(BudgetkontogruppeGetAllQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            var budgetkontogrupper = _finansstyringRepository.BudgetkontogrupperGetAll();

            return(_objectMapper.Map <IEnumerable <Budgetkontogruppe>, IEnumerable <BudgetkontogruppeView> >(budgetkontogrupper));
        }
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til tilføjelse af en budgetkonto.</param>
        /// <returns>Oprettet budgetkonto.</returns>
        public BudgetkontoView Execute(BudgetkontoAddCommand 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);
            }
            Budgetkontogruppe budgetkontogruppe;

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

            var budgetkonto = _finansstyringRepository.BudgetkontoAdd(regnskab, command.Kontonummer, command.Kontonavn,
                                                                      command.Beskrivelse, command.Note,
                                                                      budgetkontogruppe);

            return(_objectMapper.Map <Budgetkonto, BudgetkontoView>(budgetkonto));
        }
Esempio n. 4
0
        /// <summary>
        /// Udfører forespørgelse.
        /// </summary>
        /// <param name="query">Forespørgelse efter en given gruppe for budgetkonti..</param>
        /// <returns>Gruppe for budgetkonti.</returns>
        public BudgetkontogruppeView Query(BudgetkontogruppeGetByNummerQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            Budgetkontogruppe budgetkontogruppe;

            try
            {
                budgetkontogruppe = _finansstyringRepository.BudgetkontogrupperGetAll()
                                    .Single(m => m.Nummer == query.Nummer);
            }
            catch (InvalidOperationException ex)
            {
                throw new DataAccessSystemException(
                          Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Budgetkontogruppe),
                                                       query.Nummer), ex);
            }
            return(_objectMapper.Map <Budgetkontogruppe, BudgetkontogruppeView>(budgetkontogruppe));
        }
        /// <summary>
        /// Udførelse af kommandoen.
        /// </summary>
        /// <param name="command">Command til opdatering af en given budgetkonto.</param>
        /// <returns>Opdateret budgetkonto.</returns>
        public BudgetkontoView Execute(BudgetkontoModifyCommand 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);
            }
            Budgetkontogruppe budgetkontogruppe;

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

            Budgetkonto budgetkonto;

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

            var opdateretBudgetkonto = _finansstyringRepository.BudgetkontoModify(regnskab, budgetkonto.Kontonummer,
                                                                                  budgetkonto.Kontonavn,
                                                                                  budgetkonto.Beskrivelse,
                                                                                  budgetkonto.Note,
                                                                                  budgetkonto.Budgetkontogruppe);

            return(_objectMapper.Map <Budgetkonto, BudgetkontoView>(opdateretBudgetkonto));
        }