/// <summary> /// Udførelse af kommandoen. /// </summary> /// <param name="command">Command til tilføjelse af et firma.</param> /// <returns>Oprettet firma.</returns> public FirmaView Execute(FirmaAddCommand command) { if (command == null) { throw new ArgumentNullException("command"); } Adressegruppe adressegruppe; try { adressegruppe = _adresseRepository.AdressegruppeGetAll().Single(m => m.Nummer == command.Adressegruppe); } catch (InvalidOperationException ex) { throw new DataAccessSystemException( Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Adressegruppe), command.Adressegruppe), ex); } Betalingsbetingelse betalingsbetingelse = null; if (command.Betalingsbetingelse != 0) { try { betalingsbetingelse = _adresseRepository.BetalingsbetingelserGetAll() .Single(m => m.Nummer == command.Betalingsbetingelse); } catch (InvalidOperationException ex) { throw new DataAccessSystemException( Resource.GetExceptionMessage(ExceptionMessage.CantFindUniqueRecordId, typeof(Betalingsbetingelse), command.Betalingsbetingelse), ex); } } var firma = new Firma(0, command.Navn, adressegruppe); firma.SætAdresseoplysninger(command.Adresse1, command.Adresse2, command.PostnummerBy); firma.SætTelefon(command.Telefon1, command.Telefon2, command.Telefax); firma.SætBekendtskab(command.Bekendtskab); firma.SætMailadresse(command.Mailadresse); firma.SætWebadresse(command.Webadresse); firma.SætBetalingsbetingelse(betalingsbetingelse); firma.SætUdlånsfrist(command.Udlånsfrist); firma.SætFilofaxAdresselabel(command.FilofaxAdresselabel); var oprettetFirma = _adresseRepository.FirmaAdd(firma.Navn, firma.Adresse1, firma.Adresse2, firma.PostnrBy, firma.Telefon1, firma.Telefon2, firma.Telefax, firma.Adressegruppe, firma.Bekendtskab, firma.Mailadresse, firma.Webadresse, firma.Betalingsbetingelse, firma.Udlånsfrist, firma.FilofaxAdresselabel); return(_objectMapper.Map <Firma, FirmaView>(oprettetFirma)); }