public int agregarRegistro(int idCorredor, int categoria, DateTime horaPartida, DateTime horaLlegada)
 {
     try
     {
         RegistroCorrida registro = new RegistroCorrida(idCorredor, categoria, horaPartida, horaLlegada);
         listaRegistros.Add(registro);
         return(1); // Se agrego correctamente
     }
     catch (Exception e)
     {
         return(-1); // Error
     }
 }
        private bool VerificaKartEstaValido(RegistroCorrida kart)
        {
            string colunasIncorretas = string.Empty;

            if (kart.Hora == new TimeSpan())
            {
                colunasIncorretas += "  Hora  ";
            }

            if (string.IsNullOrEmpty(kart.NomePiloto))
            {
                colunasIncorretas += "  NumeroPiloto  ";
            }

            if (string.IsNullOrEmpty(kart.NomePiloto))
            {
                colunasIncorretas += "  NomePiloto  ";
            }

            if (kart.Volta == 0)
            {
                colunasIncorretas += "  Volta  ";
            }

            if (kart.TempoVolta == new TimeSpan())
            {
                colunasIncorretas += "  TempoVolta  ";
            }

            if (kart.VelocidadeMediaVolta == 0)
            {
                colunasIncorretas += "  VelocidadeMediaVolta  ";
            }

            if (!string.IsNullOrEmpty(colunasIncorretas))
            {
                colunasIncorretas = this.colunasIncorretas;
                return(false);
            }


            return(true);
        }
        private RegistroCorrida CriarRegistro(string[] kartRegistros, int linhaAtual)
        {
            RegistroCorrida kart = new RegistroCorrida();

            for (int registro = 0; registro <= kartRegistros.Length; registro++)
            {
                switch (registro)
                {
                case (int)FormatoArquivoCorrida.Hora:
                    if (ContemLetras(kartRegistros[registro]))
                    {
                        throw new Exception("Campo Hora no Formato Errado!");
                    }


                    kart.Hora = TimeSpan.Parse(kartRegistros[registro]);
                    break;

                case (int)FormatoArquivoCorrida.NumeroPiloto:
                    if (ContemLetras(kartRegistros[registro]))
                    {
                        throw new Exception("Campo NumeroPiloto no Formato Errado!");
                    }

                    kart.NumeroPiloto = Convert.ToInt32(kartRegistros[registro]);
                    break;

                case (int)FormatoArquivoCorrida.NomePiloto:
                    kart.NomePiloto = kartRegistros[registro];
                    break;

                case (int)FormatoArquivoCorrida.Volta:
                    if (ContemLetras(kartRegistros[registro]))
                    {
                        throw new Exception("Campo Volta no Formato Errado!");
                    }


                    kart.Volta = Convert.ToInt32(kartRegistros[registro]);
                    break;

                case (int)FormatoArquivoCorrida.TempoVolta:
                    if (ContemLetras(kartRegistros[registro]))
                    {
                        throw new Exception("Campo tempoVolta no Formato Errado!");
                    }


                    TimeSpan tempoVolta;
                    if (!TimeSpan.TryParse(kartRegistros[registro], out tempoVolta))
                    {
                        if (kartRegistros[registro].Length == timeSpanIncompleto)
                        {
                            tempoVolta = TimeSpan.Parse("00:0" + kartRegistros[registro]);
                        }
                    }

                    kart.TempoVolta = tempoVolta;
                    break;

                case (int)FormatoArquivoCorrida.VelocidadeMediaVolta:
                    if (ContemLetras(kartRegistros[registro]))
                    {
                        throw new Exception("Formato do arquivo errado!");
                    }

                    kart.VelocidadeMediaVolta = Convert.ToDouble(kartRegistros[registro]);
                    break;

                default:
                    break;
                }

                if (registro == colunasArquivo - 1)
                {
                    if (!VerificaKartEstaValido(kart))
                    {
                        throw new Exception("Formato Incorreto! verificar linha " + (linhaAtual + 1).ToString() + "Campos: " + colunasIncorretas);
                    }
                }
            }

            return(kart);
        }
        public RegistroCorrida buscarRegistro(int idCorredor)
        {
            RegistroCorrida resultado = listaRegistros.Find(x => x.numeroCorredor == idCorredor);

            return(resultado);
        }