public IEnumerable <Linha> CalculoDetalhado(IEnumerable <Concurso> concursos, IEnumerable <IEnumerable <int> > jogos) { OnCalculoStart?.Invoke(this, EventArgs.Empty); foreach (var concurso in concursos) { foreach (var jogo in jogos) { var arrayJogo = jogo.ToArray(); var ganhoJogo = CalcularJogo(concurso, arrayJogo, out var pontos); yield return(CriarLinhaDetalhe(concurso, arrayJogo, ganhoJogo, pontos)); } } }
public IEnumerable <Linha> CalculoSintetico(IEnumerable <Concurso> concursos, IEnumerable <IEnumerable <int> > jogos) { OnCalculoStart?.Invoke(this, EventArgs.Empty); foreach (var concurso in concursos) { var ganhoJogo = 0M; foreach (var jogo in jogos) { var arrayJogo = jogo.ToArray(); ganhoJogo += CalcularJogo(concurso, arrayJogo, out var _); } yield return(CriarLinhaSubTotal(concurso, jogos.Count(), ganhoJogo)); } }
public IEnumerable <Linha> CalculoCompleto(IEnumerable <Concurso> concursos, IEnumerable <IEnumerable <int> > jogos) { OnCalculoStart?.Invoke(this, EventArgs.Empty); var ganhoTotal = 0M; foreach (var concurso in concursos) { var ganhoParcial = 0M; foreach (var jogo in jogos) { var arrayJogo = jogo.ToArray(); var ganhoJogo = CalcularJogo(concurso, arrayJogo, out var pontos); yield return(CriarLinhaDetalhe(concurso, arrayJogo, ganhoJogo, pontos)); ganhoParcial += ganhoJogo; } yield return(CriarLinhaSubTotal(concurso, jogos.Count(), ganhoParcial)); ganhoTotal += ganhoParcial; } yield return(CriarLinhaTotal(concursos.Count(), jogos.Count(), ganhoTotal)); }