/// <summary> /// Checks or creates a twitter based login. /// </summary> /// <param name="authentication"></param> /// <param name="userName"></param> /// <returns></returns> public RegisteredUser AuthenticateTwitterAccount(TwitterAuthentication authentication, string userName, int twitterId) { //see if there is alraedy an account. RegisteredUser returnedUser = _userDao.GetUserByUserName(userName); //check if its new if (returnedUser == null) { //save the user details returnedUser = new RegisteredUser() { AuthDetails = authentication, UserName = userName, TwitterId = twitterId }; IUserDetailsService userDetailsService = ServiceLayer.UserDetailsService; userDetailsService.CreateUser(returnedUser); //setup the indexing of their tweets IIndexQueuerService indexQueuerService = ServiceLayer.IndexQueuerService; indexQueuerService.QueueUserStreamIndex(returnedUser); } else { //make sure the tokens match if (!returnedUser.AuthDetails.AccessToken.Equals(authentication.AccessToken)) { return(null); } } return(returnedUser); }