private void LogUser(string openId, ClaimsResponse profileFields) { //recupero l'utente da db, oppure lo creo al volo se non esiste MTBUser user = DBHelper.LoadUser(openId); //non esiste? allora lo creo e lo metto nella sessione come NewUser, quindi //rimando alla pagina User che, solo dopo aver inserito i dati obblicatori, lo metterà //finalmente in sessione come User if (user == null) { user = new MTBUser(); user.OpenId = openId; user.Surname = ""; if (profileFields != null) { user.Name = profileFields.FullName; user.EMail = profileFields.Email; user.Nickname = profileFields.Nickname; if (profileFields.Gender != null) { switch (profileFields.Gender.Value) { case Gender.Male: user.Gender = MTBUser.GenderType.Male; break; case Gender.Female: user.Gender = MTBUser.GenderType.Female; break; default: break; } } if (profileFields.BirthDate != null) user.BirthDate = profileFields.BirthDate.Value; } LoginState.NewUser = user; Response.Redirect("User.aspx"); } else { LoginState.User = user; FormsAuthentication.RedirectFromLoginPage("", false); } }
//-------------------------------------------------------------------------------- public static void SaveUser(MTBUser user) { using (ISession iSession = NHSessionManager.GetSession()) { //aggiungo l'utente al database, oppure lo aggiorno using (ITransaction transaction = iSession.BeginTransaction()) { iSession.SaveOrUpdate(user); iSession.Flush(); transaction.Commit(); } new Thread(() => { using (ISession ss = NHSessionManager.GetSession()) { DBHelper.LoadUsers(ss); } }).Start(); } }