public IEnumerable <object> GetSessions() { List <object> sessions = new List <object>(); var sessionNames = _chessDbService.GetSessions(); if (sessionNames == null) { return(sessions); } foreach (var sessionName in sessionNames) { var session = _chessDbService.GetSession(sessionName.ToString()); var chessSession = SessionFactory.CreateFrom(session.SessionInfo); var players = chessSession.GetPlayerInformations(); var title = string.Join(" vs ", players.Select(p => p.Nickname)); sessions.Add(new { Title = title, Players = players, SessionName = session.SessionName }); } return(sessions); }
public SessionInformation Command([FromBody] CommandRequest request, [FromHeader(Name = "SessionName")] string sessionName) { var session = _chessDbService.GetSession(sessionName); var chessSession = SessionFactory.CreateFrom(session.SessionInfo); var sessionInfo = chessSession.Command(request.Command); session.SessionInfo = Newtonsoft.Json.JsonConvert.SerializeObject(sessionInfo); _chessDbService.UpdateSession(session); return(sessionInfo); }
static void Main(string[] args) { var startingCommands = new List <string>(); //startingCommands.Add("play h7 h5"); //startingCommands.Add("play e2 e3"); //startingCommands.Add("play h5 h4"); //startingCommands.Add("play f1 c4"); //startingCommands.Add("play h4 h3"); //startingCommands.Add("play d1 f3"); //startingCommands.Add("play h3 g2"); //startingCommands.Add("play f3 f7"); //SessionFactory // .CreateOne<ChessPlayingSession>("test-session") // .AddPlayers("faruk", "ali") // .AddStartingCommands(startingCommands.ToArray()) // .Start(); string path = @"C:\Users\faruk\source\repos\ChessGame\ChessPlaying\session.json"; string text = System.IO.File.ReadAllText(path); //string text = "{\"CurrentIndexer\": \"0\", \"FullTypeName\": \"ChessPlaying.ChessPlayingSession\", \"Name\":\"test-session\",\"Players\":[{\"Nickname\":\"faruk\"},{\"Nickname\":\"ali\"}],\"Table\":{\"Stones\":[{\"Type\":\"King\",\"Color\":\"Black\",\"Location\":\"4|8\"},{\"Type\":\"Queen\",\"Color\":\"Black\",\"Location\":\"3|8\"},{\"Type\":\"King\",\"Color\":\"White\",\"Location\":\"4|1\"},{\"Type\":\"Queen\",\"Color\":\"White\",\"Location\":\"3|1\"}]}}"; var session = SessionFactory.CreateFrom(text); //PlayerFactory // .CreateOne("faruk", EnumStoneColor.Black) // .AddStone<King>(5, 8) // .AddStone<Queen>(4, 8) // .AddStone<Rook>(1, 8) // .AddStone<Rook>(8, 8) // .AddStone<Knight>(3, 5) // .AddStone<Knight>(5, 5) // .AddStone<Pawn>(1, 7) // .AddStone<Pawn>(2, 7) // .AddStone<Pawn>(5, 6) // .AddStone<Pawn>(6, 6) // .AddStone<Pawn>(8, 7) // .AddStone<Pawn>(8, 5) // .Build(session); //PlayerFactory // .CreateOne("ali", EnumStoneColor.White) // .AddStone<King>(5, 1) // .AddStone<Queen>(2, 1) // .AddStone<Bishop>(4, 2) // .AddStone<Bishop>(6, 1) // .AddStone<Pawn>(1, 3) // .AddStone<Pawn>(3, 4) // .AddStone<Pawn>(5, 4) // .AddStone<Pawn>(6, 4) // .Build(session); session.SetLogger(new FileLogger(Environment.CurrentDirectory)); session.Start(); string command = string.Empty; while (command != "quit" && command != "exit") { command = ((Session)session).WaitCommand(); text = Newtonsoft.Json.JsonConvert.SerializeObject(session.Command(command)); session = SessionFactory.CreateFrom(text); } //session.Start(); }