private static void SegregarCompetidores(List <List <RegistroCorrida> > pilotos, out List <ResultadoCorrida> incompletos, out List <ResultadoCorrida> completos) { incompletos = new List <ResultadoCorrida>(); completos = new List <ResultadoCorrida>(); foreach (var piloto in pilotos) { if (piloto.Count > numeroVoltasCorrida) { _mensagemErro = "Formato Incorreto! O piloto: " + piloto[0].NomePiloto + " Possui número de voltas além do permitido"; throw new Exception(); } ResultadoCorrida resultado = new ResultadoCorrida(); if (piloto.Count() < numeroVoltasCorrida) { resultado.NomePiloto = piloto[0].NomePiloto; resultado.CodigoPiloto = piloto[0].NumeroPiloto; resultado.QtdVoltasCompletadas = piloto.Count(); resultado.TempoTotalProva = new TimeSpan(piloto.Sum(p => p.TempoVolta.Ticks)).ToString(); incompletos.Add(resultado); break; } resultado.NomePiloto = piloto[0].NomePiloto; resultado.CodigoPiloto = piloto[0].NumeroPiloto; resultado.QtdVoltasCompletadas = piloto.Count(); resultado.TempoTotalProva = new TimeSpan(piloto.Sum(p => p.TempoVolta.Ticks)).ToString(); completos.Add(resultado); } }
public List <ResultadoCorrida> ObterEstatisticas() { List <ResultadoCorrida> resultado = new List <ResultadoCorrida>(); ResultadoCorrida resultadoCorrida = new ResultadoCorrida(); var melhorVoltaProva = _resultadoCorridaPiloto.OrderBy(r => r.MelhorVolta).FirstOrDefault(); resultadoCorrida.CodigoPiloto = melhorVoltaProva.CodigoPiloto; resultadoCorrida.NomePiloto = melhorVoltaProva.NomePiloto; resultadoCorrida.MelhorVoltaProva = melhorVoltaProva.MelhorVolta; resultado.Add(resultadoCorrida); return(resultado); }