public ActionResult CreateGame(MultiPlayerGameData multiPlayerGame)
        {
            bool gotLock     = false;
            Guid guid        = Guid.NewGuid();
            Game CurrentGame = null;

            if (ValidatingNewGameForPlayer(null))
            {
                try
                {
                    LockListGameDoesntStart.AcquireWriterLock(timeOut);
                    ListGameDoesntStart.Add(guid, new WeakReference <Game>(CurrentGame = new Game(multiPlayerGame)
                    {
                        IdentifyGuid = guid
                    }));
                }
                catch
                {
                }
                finally
                {
                    gotLock = LockListGameDoesntStart.IsWriterLockHeld;
                    LockListGameDoesntStart.ReleaseWriterLock();
                }
            }
            else
            {
                return(Json(new { GUID = (string)null }));
            }
            if (gotLock)
            {
                CurrentGame.Register(UserFiche.CurentUser);
                Game.GetUserBySesionFicheUser().UserCanStart = true;
                return(Json(new { GUID = guid.ToString() }));
            }
            throw new NotSupportedException("Nie udało się stworzyć nowej gry");
        }