Пример #1
0
        public async Task <IEnumerable <IMetaDeRemuneracao> > DescobrirMetasAplicaveisAsync(Competencia[] competencias)
        {
            IEnumerable <ParametrosDeMetas> parametros = (await _repositorio.ListarMetasVigentesEm(competencias)).Select(par => (ParametrosDeMetas)par);

            ConcurrentQueue <IMetaDeRemuneracao> metasDeRemuneracao = new ConcurrentQueue <IMetaDeRemuneracao>();

            Parallel.ForEach(parametros, (parametro) =>
            {
                IMetaDeRemuneracao limite = ConstruirMeta(parametro);
                if (limite != null)
                {
                    metasDeRemuneracao.Enqueue(limite);
                }
            });


            return(metasDeRemuneracao);
        }
Пример #2
0
        public async Task <IEnumerable <IMetaDeRemuneracao> > ObtemMetasAsync(int[] idsMetas)
        {
            IEnumerable <ParametrosDeMetas> parametros = (await _repositorio.ObtemMetasAsync(idsMetas)).Select(par => (ParametrosDeMetas)par);

            ConcurrentQueue <IMetaDeRemuneracao> metasDeRemuneracao = new ConcurrentQueue <IMetaDeRemuneracao>();

            Parallel.ForEach(parametros, (parametro) =>
            {
                IMetaDeRemuneracao limite = ConstruirMeta(parametro);
                if (limite != null)
                {
                    metasDeRemuneracao.Enqueue(limite);
                }
            });


            return(metasDeRemuneracao);
        }