コード例 #1
0
        /// <summary>
        /// Realiza o Parser do Arquivo txt para um List de Log Corrida
        /// </summary>
        /// <param name="_arrayLog"></param>
        /// <returns></returns>
        private List <LogCorrida> ParserLog()
        {
            List <LogCorrida> lst = new List <LogCorrida>();

            foreach (string line in _arrayLogCorrida.Where(x => !x.Contains("Hora")).ToList())
            {
                if (line.Length > 1)
                {
                    LogCorrida corrida = new LogCorrida();

                    corrida.HoraVolta = TimeSpan.Parse(line.Substring(0, 17).Trim());

                    corrida.Piloto = new Piloto()
                    {
                        Numero = Convert.ToInt32(line.Substring(18, 3).Trim()),
                        Nome   = line.Substring(23, 35).Trim()
                    };

                    corrida.NumVolta = Convert.ToInt32(line.Substring(57, 2).Trim());

                    TimeSpan ts = new TimeSpan(0, 0,
                                               int.Parse(line.Substring(61, 30).Trim().Substring(0, 1)),
                                               int.Parse(line.Substring(61, 30).Trim().Substring(2, 2)),
                                               int.Parse(line.Substring(61, 30).Trim().Substring(5, 3)));

                    corrida.TempoVolta           = ts * corrida.NumVolta;
                    corrida.VelocidadeMediaVolta = Convert.ToDecimal(line.Substring(92, 7).Trim());

                    lst.Add(corrida);
                }
            }

            return(lst.OrderBy(x => x.NumVolta).ToList());
        }
コード例 #2
0
 public void Log(long corridaId, string mensaje, string detalle)
 {
     using (var ctx = new FacturaElectronicaEntities())
     {
         LogCorrida log = new LogCorrida();
         log.CorridaId = corridaId;
         log.Fecha     = DateTime.Now;
         log.Mensaje   = mensaje;
         log.Detalle   = detalle;
         ctx.LogCorridas.AddObject(log);
         ctx.SaveChanges();
     }
 }
コード例 #3
0
        /// <summary>
        /// Lista o resumo final da prova
        /// </summary>
        /// <param name="_arrayLog"></param>
        public List <LogCorrida> ResultadoCorrida(string[] _arrayLog)
        {
            _arrayLogCorrida = _arrayLog;
            var list = ParserLog().OrderBy(x => x.TempoVolta);

            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("   Resultado da Corrida: ");
            Console.ForegroundColor = ConsoleColor.DarkGreen;

            List <LogCorrida> ListaResultCorrida = new List <LogCorrida>();

            foreach (var item in list.Where(x => x.NumVolta > 3))
            {
                var listNomePiloto = list.Where(x => x.Piloto.Numero == item.Piloto.Numero).Select(x => x.Piloto.Nome).Distinct();

                LogCorrida logCorrida = new LogCorrida();

                logCorrida.HoraVolta = item.HoraVolta;
                logCorrida.Piloto    = new Piloto()
                {
                    Numero = item.Piloto.Numero,
                    Nome   = listNomePiloto.First()
                };
                logCorrida.NumVolta             = item.NumVolta;
                logCorrida.TempoVolta           = item.TempoVolta;
                logCorrida.VelocidadeMediaVolta = item.VelocidadeMediaVolta;

                strGridChegada.Clear();
                strGridChegada.AppendLine("   Posição Chegada: " + count++ +
                                          " | Código Piloto: " + item.Piloto.Numero +
                                          " | Nome Piloto: " + listNomePiloto.First() +
                                          " | Qtde Voltas Completadas: " + item.NumVolta +
                                          " | Tempo Total de Prova: " + item.TempoVolta);;;

                Console.WriteLine(strGridChegada);

                ListaResultCorrida.Add(logCorrida);
            }

            return(ListaResultCorrida);
        }
コード例 #4
0
        private static LogCorridaDto ToLogCorridaDto(LogCorrida logCorrida)
        {
            if (logCorrida == null)
            {
                return(null);
            }

            LogCorridaDto dto = new LogCorridaDto();

            dto.Id        = logCorrida.Id;
            dto.CorridaId = logCorrida.CorridaId;
            dto.Fecha     = logCorrida.Fecha;
            if (logCorrida.Mensaje == CorridaService.FinCorridaMsg)
            {
                dto.CorridaTerminada = true;
            }
            else
            {
                dto.Mensaje = logCorrida.Mensaje;
            }

            return(dto);
        }