public async Task<BaseResponse> RegisterExternalUserIfNeeded(RegisterExternalUserCommand command) { var response = new BaseResponse(); var request = new UserRequest(); request.Username = command.Email; var user = await _userQueryService.GetByUsername(command.Email); if (user != null) { response.Ack = AckType.FAILURE; response.Message = string.Format("There is already a user with the email {0}.", command.Email); return response; } await _commandDispatcher.Dispatch(command); return response; }
public async Task<HttpResponseMessage> RegisterExternal(RegisterExternalUserCommand command) { await _userApplicationService.RegisterExternalUserIfNeeded(command); return OkResponse(command.Identifier); }
public async Task<ActionResult> FacebookSignInCallback(string code, string returnUrl) { var facebookClient = new FacebookClient(); var redirectUri = BuildFacebookSignInCallbackUrl(); dynamic result = facebookClient.Post("oauth/access_token", new { client_id = _configurationService.FacebookAppId, client_secret = _configurationService.FacebookAppSecret, redirect_uri = redirectUri, code = code }); var access_token = result.access_token; facebookClient.AccessToken = access_token; dynamic me = facebookClient.Get("me"); string email = me.email; string name = me.name; string id = me.id; var userId = Guid.NewGuid(); var command = new RegisterExternalUserCommand(userId, name, email, FACEBOOK_PROVIDER, id); var response = await _userProxy.RegisterExternalUserIfNeeded(command); if (response.Ack == AckType.SUCCESS) { var appIdentity = new AppIdentity(userId.ToString(), command.Name, command.Email); _authenticationService.SignIn(appIdentity, true); return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("", response.Message); PreserveTempData(); return RedirectToAction("SignIn", new { returnUrl = returnUrl }); } }
public async Task<BaseResponse> RegisterExternalUserIfNeeded(RegisterExternalUserCommand command) { return await SendCommand(command, "user/registerexternal/"); }