Ejemplo n.º 1
0
        public ReplayData SingleScan(FileInfo file, int lines)
        {
            if (file != null)
            {
                if (file.Exists)
                {
                    ReplayData    replay    = new ReplayData();
                    DataCollector collector = new DataCollector();

                    replay.Path     = file.DirectoryName;
                    replay.Name     = file.Name;
                    replay.FullPath = file.FullName;
                    replay.Size     = Convert.ToInt32(file.Length / 1024);
                    string text = String.Empty;
                    if (lines > 0)
                    {
                        text = ReplayReader.ReadReplay(replay.FullPath, lines);
                    }
                    else
                    {
                        text = ReplayReader.ReadReplay(replay.FullPath);
                    }

                    if (String.IsNullOrEmpty(text))
                    {
                        return(replay);
                    }
                    bool isValidReplay = collector.GetReplayStatus(text);

                    replay.DateTime   = collector.DateTime(text);
                    replay.Map        = collector.GetMapName(text);
                    replay.Player     = collector.GetPlayerName(text);
                    replay.GamePlayId = collector.GetGamePlay(text);
                    replay.Respawn    = collector.Respawn(text);
                    replay.Players    = collector.Players(text);
                    replay.Status     = isValidReplay;
                    replay.Vehicle    = collector.PlayerVehicle(text);
                    replay.Version    = collector.Version(text);
                    replay.BattleType = collector.BattleType(text);
                    replay.HasMods    = collector.HasMods(text);
                    replay.RegionCode = collector.RegionCode(text);
                    replay.ServerName = collector.ServerName(text);
                    replay.PlayerId   = collector.PlayerId(text);

                    if (isValidReplay)
                    {
                        replay.Duration = collector.BattleDuration(text);
                        replay.Winner   = collector.Winner(text);
                        replay.Status   = collector.GetReplayStatus(text);
                    }
                    else
                    {
                        _broken++;
                    }

                    return(replay);
                }
            }

            return(null);
        }