public User CreateUser(User user) { using (var tran = new DbTransactionManager()) { tran.BeginTransaction(); using (var db = new DataAccess(tran)) { try { db.CreateStoredProcCommand("dbo.CreateUser"); db.AddInputParameter("@Email", DbType.String, user.Email); db.AddInputParameter("@DisplayName", DbType.String, user.DisplayName); db.AddOutputParameter("@UserId", DbType.Int32); db.ExecuteNonQuery(); user.UserId = db.GetParameterValue<int>("@UserId"); user.OAuth.UserId = user.UserId; user.OAuth = CreateOAuthUser(user.OAuth, tran); db.CreateStoredProcCommand("dbo.CreateUserProfile"); db.AddInputParameter("@UserId", DbType.String, user.UserId); db.AddInputParameter("@LanguageId", DbType.String, user.Profile.Lang.LanguageId); db.AddInputParameter("@Dob", DbType.String, user.Profile.Dob); db.AddInputParameter("@Nationality", DbType.String, user.Profile.Nationality); db.AddOutputParameter("@UserProfileId", DbType.Int32); db.ExecuteNonQuery(); user.Profile.UserProfileId = db.GetParameterValue<int>("@UserProfileId"); user = GetUser(user.UserId); tran.Commit(); } catch (Exception ex) { tran.Rollback(); Logger.Error("Error while creating user.", ex); throw; } return user; } } }
public User GetUser(int userId) { var user = new User(); using (var db = new DataAccess()) { db.CreateStoredProcCommand("dbo.GetUserByUserId"); db.AddInputParameter("@UserId", DbType.Int32, userId); try { db.ReadInto(user, user.Profile, user.Profile.Lang, user.OAuth, user.Roles); } catch (Exception ex) { Logger.Error("Error while getting user.", ex); throw; } } return user; }
public void UpdateUser(User user) { using (var tran = new DbTransactionManager()) { tran.BeginTransaction(); using (var db = new DataAccess(tran)) { db.CreateStoredProcCommand("dbo.UpdateUser"); db.AddInputParameter("@UserId", DbType.Int32, user.UserId); db.AddInputParameter("@Email", DbType.String, user.Email); db.AddInputParameter("@DisplayName", DbType.String, user.DisplayName); try { db.ExecuteNonQuery(); if (user.Profile != null) { UpdateUserProfile(user.Profile); } tran.Commit(); } catch (Exception ex) { tran.Rollback(); Logger.Error("Error while updating user.", ex); throw; } } } }