/// <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)); }