public async Task <IActionResult> VerifySmsAsync(PhoneConfirmRequest model, CancellationToken token) { var phoneCommand = new ConfirmPhoneNumberCommand(model.Id); var registrationBonusCommand = new FinishRegistrationCommand(model.Id); try { await _commandBus.DispatchAsync(phoneCommand, token); await _commandBus.DispatchAsync(registrationBonusCommand, token); } catch { return(BadRequest()); } return(Ok(new { model.Id })); }
private async Task <IActionResult> FinishRegistrationAsync(User user, string country, string fingerPrint, string userAgent, CancellationToken token) { if (TempData[HomeController.Referral] != null) { if (Base62.TryParse(TempData[HomeController.Referral].ToString(), out var base62)) { try { var command = new ReferringUserCommand(base62, user.Id); await _commandBus.DispatchAsync(command, token); } catch (UserLockoutException) { _logger.Warning($"{user.Id} got locked referring user {TempData[HomeController.Referral]}"); } } else { _logger.Error($"{user.Id} got wrong referring user {TempData[HomeController.Referral]}"); } TempData.Remove(HomeController.Referral); } TempData.Clear(); var command2 = new AddUserLocationCommand(user, country, HttpContext.GetIpAddress(), fingerPrint, userAgent); var registrationBonusCommand = new FinishRegistrationCommand(user.Id); var t1 = _commandBus.DispatchAsync(command2, token); var t2 = _signInManager.SignInAsync(user, false); var t3 = _commandBus.DispatchAsync(registrationBonusCommand, token); await Task.WhenAll(t1, t2, t3); return(Ok(new { user.Id })); }