public async Task <IActionResult> Register([FromBody] AccountView model)
        {
            IdentityUser user = new IdentityUser {
                UserName = model.Name
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(BadRequest(ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                  .Select(m => m.ErrorMessage).ToArray()));
            }
            await _signInManager.SignInAsync(user, false);

            string token = GetToken(model.Name);

            _gameService.SelectPlayer(model.Name);
            var response = new AccountResponseView
            {
                Name  = model.Name,
                Token = token
            };

            return(Ok(response));
        }
        public async Task <IActionResult> Login([FromBody] AccountView model)
        {
            var result =
                await _signInManager.PasswordSignInAsync(model.Name, model.Password, false, false);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Incorrect username and / or password");
                return(BadRequest(ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                  .Select(m => m.ErrorMessage).ToArray()));
            }
            string token    = GetToken(model.Name);
            var    response = new AccountResponseView
            {
                Name  = model.Name,
                Token = token
            };

            return(Ok(response));
        }