Exemple #1
0
        public ActionResult <ShotResultResource> Put(SaveShotResource saveShot)
        {
            var shot       = _mapper.Map <SaveShotResource, Shot>(saveShot);
            var shotResult = _gameService.FireShot(shot);
            var result     = _mapper.Map <ShotResult, ShotResultResource>(shotResult);

            if (result.IsSuccess)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
Exemple #2
0
        public async Task <IActionResult> PostAsync([FromBody] SaveShotResource resource)
        {
            var trainer = await userService.FindByUsername(resource.Trainer.Username);

            var player = await userService.FindByUsername(resource.Player.Username);

            if (trainer == null || player == null)
            {
                return(NotFound(new { message = "Trainer or player not found", trainer, player }));
            }

            var shot = mapper.Map <SaveShotResource, Shot>(resource);

            shot.TrainerId = trainer.Id;
            shot.PlayerId  = player.Id;
            shot.Player    = null;
            shot.Trainer   = null;

            var newLogin = new Login {
                PlayerId = player.Id, TrainerId = trainer.Id, TimeStamp = resource.TimeStamp
            };
            var saveLoginResult = await loginService.SaveAsync(newLogin);

            if (!saveLoginResult.Success)
            {
                return(BadRequest(saveLoginResult));
            }

            var saveShotResult = await shotService.SaveAsync(shot);

            if (!saveShotResult.Success)
            {
                return(BadRequest(saveShotResult));
            }

            saveShotResult.value.Player  = player;
            saveShotResult.value.Trainer = trainer;

            var shotResource = mapper.Map <Shot, ShotResource>(saveShotResult.value);

            return(CreatedAtAction(nameof(GetShotById), new { id = shot.Id }, shotResource));
        }