public Faturamento GerarFaturamento(Faturamento faturamento)
        {
            var registros = _repositoryRegistroDeFluxo.Find(r => r.ValorAPagar != null &&
                                                            r.DataSaida.Value.Year == faturamento.DataCompetencia.Year &&
                                                            r.DataSaida.Value.Month == faturamento.DataCompetencia.Month &&
                                                            r.FaturamentoId == null).ToList <RegistroDeFluxo>();

            var faturamentoExistente = _repositoryFaturamento.FindSingle(f => f.DataCompetencia.Year == faturamento.DataCompetencia.Year &&
                                                                         f.DataCompetencia.Month == faturamento.DataCompetencia.Month &&
                                                                         f.EmpresaId == faturamento.EmpresaId);

            if (faturamentoExistente != null)
            {
                faturamentoExistente.Valor            += registros.Sum(r => r.ValorAPagar);
                faturamentoExistente.ValorCompetencia += registros.Sum(r => r.ValorAPagar).Value * 0.05;
                _repositoryFaturamento.Update(faturamentoExistente);
                faturamento = faturamentoExistente;
            }
            else
            {
                faturamento.Valor            = registros.Sum(r => r.ValorAPagar);
                faturamento.ValorCompetencia = registros.Sum(r => r.ValorAPagar) * 0.05;

                _repositoryFaturamento.Add(faturamento);
            }

            registros.ForEach(registro => { registro.FaturamentoId = faturamento.Id;
                                            _repositoryRegistroDeFluxo.Update(registro); });

            return(faturamento);
        }
 public void Update(RegistroDeFluxo RegistroDeFluxo)
 {
     _repositoryRegistroDeFluxo.Update(RegistroDeFluxo);
 }