Exemplo n.º 1
0
        public async Task <IEnumerable <IEmissaoDeRemuneracao> > AdicionarEmissoesAsync(IEnumerable <IEmissaoDeRemuneracao> emissoes, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            ConcurrentQueue <EmissaoDeRemuneracaoBD> emissoesBD = new ConcurrentQueue <EmissaoDeRemuneracaoBD>();

            foreach (IEmissaoDeRemuneracao emissao in emissoes)
            {
                EmissaoDeRemuneracaoBD emissaoBD = new EmissaoDeRemuneracaoBD(emissao)
                {
                    ContaExecutoraDaEmissao = _contextoDeConexao.IdContaUsuario,
                    Remuneracao_Paga        = false
                };

                emissoesBD.Enqueue(emissaoBD);
            }

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                context.RemuneracoesEmitidas.AddRange(emissoesBD.SelectMany(emiss => emiss.RemuneracoesEmitidas).ToArray());

                await context.SaveChangesAsync();

                context.Emissoes.AddRange(emissoesBD);

                await context.SaveChangesAsync();
            }

            IEnumerable <IEmissaoDeRemuneracao> emissaoSalva = emissoesBD.Select(emissBD => emissBD.ConverteParaModelo());

            return(emissaoSalva);
        }
Exemplo n.º 2
0
        public async Task PagarRemuneracao(IRemuneracaoPaga remuneracao, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            RemuneracoesPagasBD    remuneracaoBD = new RemuneracoesPagasBD(remuneracao);
            EmissaoDeRemuneracaoBD emissao       = remuneracaoBD.EmissaoDeRemuneracao;

            using (RemuneracaoContext context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                emissao.Remuneracao_Paga = true;
                context.Emissoes.Update(emissao);
                context.RemuneracoesPagas.Add(remuneracaoBD);
                await context.SaveChangesAsync();
            }
        }