static void RunWithOptions(Options opt)
        {
            if (opt.InputFile == null && opt.InputFolder == null)
            {
                Console.WriteLine("ERROR: Input file OR folder must be provided");
                return;
            }
            if (opt.OutputFile == null && opt.OutputFolder == null)
            {
                Console.WriteLine("ERROR: Input file OR folder must be provided");
                return;
            }

            if (opt.OutputFile != null)
            {
                s_writer = new SingleFileGameWriter(opt.OutputFile);
            }
            else if (opt.OutputFolder != null)
            {
                s_writer = new MultiFileGameWriter(opt.OutputFolder);
            }

            if (opt.InputFile != null)
            {
                SingleFileProcessor sfp = new SingleFileProcessor(opt.InputFile);
                sfp.GameComplete += GameComplete;
                sfp.Run();
                sfp.GameComplete -= GameComplete;
            }
            else if (opt.InputFolder != null)
            {
                MultiFileProcessor mfp = new MultiFileProcessor(opt.InputFolder);
                mfp.GameComplete += GameComplete;
                mfp.Run();
                mfp.GameComplete -= GameComplete;
            }

            s_writer.Finish();

            //int discards = c.TrackedGames.Values.Sum(x => x.Discards);
            //int processed = c.TrackedGames.Values.Sum(x => x.Processed);
            //int errors = c.TrackedGames.Values.Sum(x => x.Errors);
            //IEnumerable<string> errorGameIds = c.TrackedGames.Values.Where(x => x.Errors > 0).Select(x => x.GameId);
            //Console.WriteLine($"Error Games:");
            //foreach (var game in errorGameIds)
            //	Console.WriteLine(game);
            //Console.WriteLine("=========");
            //Console.WriteLine($"Updates Processed: {processed}\nDuplicates Discarded: {discards}\nGames With Errors: {errorGameIds.Count()}\nErrors: {errors}\nGames Found: {c.TrackedGames.Keys.Count}");
        }
Esempio n. 2
0
 public GameServer(IPAddress ipAddress, IGameWriter writer)
 {
     IpAddress  = ipAddress;
     GameWriter = writer;
     ModManager = new ModManager(this);
 }
Esempio n. 3
0
 private Game()
 {
     this.writer = new ConsoleGameWriter();
 }