Beispiel #1
0
        public GameModule()
            : base("/game")
        {
            Post["/UploadAssembly"] = _ =>
            {
                //var uploadModel = this.FormData<UploadModel>("data");

                //TODO: remove code duplicates
                //TODO: test getSubClassFromAssemblyPath as well
                //TODO: ExceptionHanlding

                //Player 1
                Stream      playerAssemblyStream = base.Request.Files.ElementAt(0).Value;
                ConnectFour player;

                using (var memoryStream = new MemoryStream())
                {
                    playerAssemblyStream.CopyTo(memoryStream);
                    player = Connect4Challenge.Bootstrapper.getSubClassFromAssemblyBytes <ConnectFour>(memoryStream.ToArray());
                }

                //Player 2
                Stream      enemyAssemblyStream = base.Request.Files.ElementAt(1).Value;
                ConnectFour enemy;

                using (var memoryStream = new MemoryStream())
                {
                    enemyAssemblyStream.CopyTo(memoryStream);
                    enemy = Connect4Challenge.Bootstrapper.getSubClassFromAssemblyBytes <ConnectFour>(memoryStream.ToArray());
                }

                var res   = RunTime.gameInterOp(player, enemy, 4, new int[7, 6]).ToArray();
                var pitch = RunTime.createPitch(res, 6, 5);
                return(pitch.ToString());
            };
        }