Esempio n. 1
0
    public void ClearEvents()
    {
        //loop through every event and unsubscribe the events
        if (LevelGeneration != null)
        {
            foreach (var eventDelegate in LevelGeneration.GetInvocationList())
            {
                LevelGeneration -= (eventDelegate as EventHandler);
            }
        }

        if (LevelBaking != null)
        {
            foreach (var eventDelegate in LevelBaking.GetInvocationList())
            {
                LevelBaking -= (eventDelegate as EventHandler);
            }
        }

        if (LevelPopulation != null)
        {
            foreach (var eventDelegate in LevelPopulation.GetInvocationList())
            {
                LevelPopulation -= (eventDelegate as EventHandler);
            }
        }

        if (PlayerPopulation != null)
        {
            foreach (var eventDelegate in PlayerPopulation.GetInvocationList())
            {
                PlayerPopulation -= (eventDelegate as EventHandler);
            }
        }

        if (PostPlayer != null)
        {
            foreach (var eventDelegate in PostPlayer.GetInvocationList())
            {
                PostPlayer -= (eventDelegate as EventHandler);
            }
        }

        if (FinalizeObjectPools != null)
        {
            foreach (var eventDelegate in FinalizeObjectPools.GetInvocationList())
            {
                FinalizeObjectPools -= (eventDelegate as EventHandler);
            }
        }

        if (FinalStep != null)
        {
            foreach (var eventDelegate in FinalStep.GetInvocationList())
            {
                FinalStep -= (eventDelegate as EventHandler);
            }
        }
    }
        public async Task <IActionResult> PostPlayer([FromBody] PostPlayer playerData, int userId)  //metoda tworząca nowego zawodnika dla odpowiedniego konta
        {
            // sprawdza czy walidacja pobieranej klasy jako "FromBody" powiodła się
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // wywołanie metody tworzącej zawodnika ze zwrotką uzyskanego przez niego id
            int playerId = await _playerService.CreateAsyncPlayer(playerData, userId);

            // pobranie nowo utworzonego zawodnika
            var player = await _playerService.GetAsyncPlayer(playerId);

            //zwrotka statusu kodu "201" wraz z adresem do utworzonego zawodnika i jego obiektem w postaci json
            return(Created($"https://localhost:44356/" + "Players/GetPlayer/{playerId}/", Json(player)));
        }
        public async Task <int> CreateAsyncPlayer(PostPlayer playerData, int userId)
        {
            //pobieramy uzytkownika z bazy aby utworzyc pelny obiekt player do dodania do bazy
            var user = await _authRepository.UserAccount(userId);

            // tworzy objekt Player
            var player = new Player();

            player.user = user;
            player.SetSurname(playerData.Surname);
            player.SetName(playerData.Name);
            player.SetAge(playerData.Age);
            player.SetPosition(playerData.Position);
            var PlayersStatictics = new PlayersStatictics(0, 0, 0, 0, 0, player);

            player.Statictics = PlayersStatictics;

            // przekazuje id użytkownika, który chce stworzyć zawodnika i samego zawodnika do metody z repozytorium
            // a wywołanie jest przypisane do zmiennej ponieważ metoda z repozytorium zwraca id nowo utworzonego zawodnika
            int createdPlayerId = await _playerRepository.AddAsyncPlayer(player, userId);

            return(createdPlayerId);
        }