public IUserAuthDetails CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuthNHibernate(); var nhSession = GetCurrentSessionFn(sessionFactory); var authDetails = nhSession.QueryOver<UserAuthDetailsNHibernate>() .Where(x => x.Provider == tokens.Provider) .And(x => x.UserId == tokens.UserId) .SingleOrDefault(); if (authDetails == null) { authDetails = new UserAuthDetailsNHibernate { Provider = tokens.Provider, UserId = tokens.UserId, }; } authDetails.PopulateMissing(tokens); userAuth.PopulateMissingExtended(authDetails); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; nhSession.Save(userAuth); authDetails.UserAuthId = userAuth.Id; if (authDetails.CreatedDate == default(DateTime)) authDetails.CreatedDate = userAuth.ModifiedDate; authDetails.ModifiedDate = userAuth.ModifiedDate; nhSession.Save(authDetails); return authDetails; }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuthNHibernate(); var oAuthProvider = Session.QueryOver<UserAuthDetailsNHibernate>() .Where(x => x.Provider == tokens.Provider) .And(x => x.UserId == tokens.UserId) .SingleOrDefault(); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetailsNHibernate { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; Session.Save(userAuth); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) oAuthProvider.CreatedDate = userAuth.ModifiedDate; oAuthProvider.ModifiedDate = userAuth.ModifiedDate; Session.Save(oAuthProvider); return oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture); }