public Task ConcluirPagamentoAsync(List <PagamentoVenda> pagamentoVendas, Venda venda) { Parallel.ForEach(pagamentoVendas, e => { if (!e.Parcelado) { _pagamentoVendaRepository.GetById(e.Id); e.StatusPagamento = EnumStatusPagamento.Pago; Pagamento pagamento = new Pagamento(); pagamento.Parcelado = e.Parcelado; pagamento.CompetenciaId = e.CompetenciaId; pagamento.ClienteId = venda.ClienteId; pagamento.EmpresaId = venda.EmpresaId; pagamento.UsuarioId = venda.UsuarioId; pagamento.DataCredito = e.DataCredito; pagamento.DataPagamento = e.DataPagamento; pagamento.EnumTipoPagamento = EnumTipoPagamento.Realizado; pagamento.NumeroDaParcela = 1; pagamento.ValorPago = venda.ValorPago.HasValue ? venda.ValorPago.Value : venda.ValorTotal; pagamento.PagamentoVendaId = e.Id; foreach (var formPagamento in e.PagamentoVendasFormasPagamentos) { pagamento.PagamentosFormasPagamentos.Add(new PagamentoFormaPagamento(formPagamento.FormaPagamentoId)); } _pagamentoService.AddAsync(pagamento); } }); return(Task.CompletedTask); }