예제 #1
0
        public async Task <PlayerResponseDto> AddAsync([FromBody] PlayerRequestDto userDto)
        {
            var model    = mapper.Map <PlayerModel>(userDto);
            var response = await playerService.AddAsync(model);

            return(mapper.Map <PlayerResponseDto>(response));
        }
        public async Task <JsonResult> SignInUser([FromBody] SignInUserRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException($"Request {nameof(request)} should be not null.");
            }

            try
            {
                await _playerService.AddAsync(request.Name);

                var player = await _playerService.AuthenticateUserAsync(request.Name);

                var response = new SignInUserResponse
                {
                    Token  = player.Token,
                    Reward = player.Reward,
                    Scores = player.Scores
                };

                return(this.JsonApi(response));
            }
            catch (PlayerException exception)
            {
                return(this.JsonApi(exception));
            }
        }
        public async Task <IActionResult> Create(CreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Login, Email = model.Email, EmailConfirmed = true
                };
                var player = new Player {
                    Name = model.Login, Email = model.Email
                };
                var result = await _userManager.CreateAsync(user, model.Password);

                await _playerService.AddAsync(player);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(View(model));
        }
예제 #4
0
        public async Task <IActionResult> Add(Player player)
        {
            var result = await _playerService.AddAsync(player);

            if (result.Success)
            {
                return(Created("", player));
            }
            return(BadRequest(result.Message));
        }
        public async Task <IActionResult> Create([Bind("PlayerId,LastName,FirstName,NickName")] Player player)
        {
            if (ModelState.IsValid)
            {
                await _service.AddAsync(player);

                return(RedirectToAction(nameof(Index)));
            }
            //TODO: si ahy combos inicializarlos antes
            return(View(nameof(Create), player));
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = Input.Login, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                var player = new Player {
                    Name = Input.Login, Email = Input.Email
                };
                await _playerService.AddAsync(player);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code },
                        protocol: Request.Scheme);


                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
예제 #7
0
        public async Task <IActionResult> PostAsync([FromBody] PlayerInputModel model)
        {
            if (ModelState.IsValid)
            {
                var player = new Player(model.Name);
                await _playerService.AddAsync(player);

                if (ValidOperation())
                {
                    return(Created(GetRouteById(player.Id), new { id = player.Id }));
                }

                return(ResponseInvalid());
            }

            NotifyModelStateError();

            return(ResponseInvalid());
        }
예제 #8
0
        public async Task <IActionResult> Save(PlayerDto playerDto)
        {
            var player = await _playerService.AddAsync(_mapper.Map <Player>(playerDto));

            return(Ok(_mapper.Map <PlayerDto>(player)));
        }