public IEnumerable <FirmaView> FirmaGetAll(FirmaGetAllQuery firmaGetAllQuery)
 {
     try
     {
         return(_queryBus.Query <FirmaGetAllQuery, IEnumerable <FirmaView> >(firmaGetAllQuery));
     }
     catch (Exception ex)
     {
         throw CreateFault(MethodBase.GetCurrentMethod(), ex,
                           int.Parse(Properties.Resources.EventLogAdresseRepositoryService));
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Henter alle adresser.
        /// </summary>
        /// <returns>Liste af adresser.</returns>
        public IEnumerable <AdresseBase> AdresseGetAll()
        {
            var channel = _channelFactory.CreateChannel <IAdresseRepositoryService>(EndpointConfigurationName);

            try
            {
                // Henter alle adressegrupper.
                var adressegruppeQuery = new AdressegruppeGetAllQuery();
                var adressegruppeViews = channel.AdressegruppeGetAll(adressegruppeQuery);
                // Henter alle betalingsbetingelser.
                var betalingsbetingelseQuery = new BetalingsbetingelseGetAllQuery();
                var betalingsbetingelseViews = channel.BetalingsbetingelseGetAll(betalingsbetingelseQuery);
                // Henter alle firmaadresser.
                var firmaQuery = new FirmaGetAllQuery();
                var firmaViews = channel.FirmaGetAll(firmaQuery);
                // Henter alle personadresser.
                var personQuery = new PersonGetAllQuery();
                var personViews = channel.PersonGetAll(personQuery);
                // Mapper views til adresser.
                lock (SyncRoot)
                {
                    var adresser = new List <AdresseBase>();
                    var adressegruppelisteHelper       = new AdressegruppelisteHelper(_domainObjectBuilder.BuildMany <AdressegruppeView, Adressegruppe>(adressegruppeViews));
                    var betalingsbetingelselisteHelper = new BetalingsbetingelselisteHelper(_domainObjectBuilder.BuildMany <BetalingsbetingelseView, Betalingsbetingelse>(betalingsbetingelseViews));
                    var adresselisteHelper             = new AdresselisteHelper(adresser);
                    _domainObjectBuilder.GetAdressegruppeCallback       = adressegruppelisteHelper.GetById;
                    _domainObjectBuilder.GetBetalingsbetingelseCallback = betalingsbetingelselisteHelper.GetById;
                    _domainObjectBuilder.GetAdresseBaseCallback         = adresselisteHelper.GetById;
                    adresser.AddRange(_domainObjectBuilder.BuildMany <FirmaView, AdresseBase>(firmaViews));
                    adresser.AddRange(_domainObjectBuilder.BuildMany <PersonView, AdresseBase>(personViews));
                    return(adresser.OrderBy(m => m, new AdresseComparer()).ToList());
                }
            }
            catch (IntranetRepositoryException)
            {
                throw;
            }
            catch (FaultException ex)
            {
                throw new IntranetRepositoryException(ex.Message);
            }
            catch (Exception ex)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.RepositoryError, MethodBase.GetCurrentMethod().Name, ex.Message), ex);
            }
            finally
            {
                ChannelTools.CloseChannel(channel);
            }
        }
        /// <summary>
        /// Udfører forespørgelse.
        /// </summary>
        /// <param name="query">Forespørgelse efter alle firmaer.</param>
        /// <returns>Alle firmaer.</returns>
        public IEnumerable <FirmaView> Query(FirmaGetAllQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            var getBrevhoved = new Func <int, Brevhoved>(nummer => _fællesRepository.BrevhovedGetByNummer(nummer));
            var regnskaber   = _finansstyringRepository.RegnskabGetAll(getBrevhoved);
            var firmaer      = _adresseRepository.AdresseGetAll(adresse => MergeInformations(adresse, regnskaber))
                               .OfType <Firma>()
                               .ToArray();

            return(_objectMapper.Map <IEnumerable <Firma>, IEnumerable <FirmaView> >(firmaer));
        }