public string[] Process(IGameMaster gameMaster)
        {
            if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
            {
                return(null);
            }
            var messages = new  string[] { gameMaster.HandlePlacePieceRequest(this)?.Serialize() };

            gameMaster.LockObject();
            try
            {
                if (gameMaster.IsGameFinished && gameMaster.State == GameMasterState.GameResolved)
                {
                    var newGameMessages = gameMaster.RestartGame();
                    messages = messages.Union(newGameMessages).ToArray();
                }
            }
            catch (Exception e)
            { }
            finally
            {
                gameMaster.UnlockOject();
            }
            return(messages);
        }