/// <summary> /// Udførelse af kommandoen. /// </summary> /// <param name="command">Command til opdatering af et givent regnskab.</param> /// <returns>Opdateret regnskab.</returns> public RegnskabView Execute(RegnskabModifyCommand command) { if (command == null) { throw new ArgumentNullException("command"); } Brevhoved brevhoved = null; if (command.Brevhoved != 0) { try { brevhoved = _fællesRepository.BrevhovedGetAll().Single(m => m.Nummer == command.Brevhoved); } catch (InvalidOperationException ex) { throw new DataAccessSystemException( Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Brevhoved), command.Brevhoved), ex); } } var getBrevhoved = new Func <int, Brevhoved>(nummer => _fællesRepository.BrevhovedGetByNummer(nummer)); Regnskab regnskab; try { regnskab = _finansstyringRepository.RegnskabGetAll(getBrevhoved) .Single(m => m.Nummer == command.Nummer); } catch (InvalidOperationException ex) { throw new DataAccessSystemException( Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Regnskab), command.Nummer), ex); } regnskab.SætNavn(command.Navn); regnskab.SætBrevhoved(brevhoved); var opdateretRegnskab = _finansstyringRepository.RegnskabModify(getBrevhoved, regnskab.Nummer, regnskab.Navn, regnskab.Brevhoved); return(_objectMapper.Map <Regnskab, RegnskabView>(opdateretRegnskab)); }