public void CreateEdsUser(string aspnetUserId, tblUserExt newUser) { try { // 1. Add user to tblUser tblUser newTblUser = new tblUser() { CreateDatetime = DateTime.Now, AspNetUserId = aspnetUserId, FirstName = newUser.FirstName, LastName = newUser.LastName, UserEmail = newUser.UserEmail, StateId = newUser.StateId, LocalId = newUser.LocalId, RoleId = newUser.RoleId }; _db.tblUsers.Add(newTblUser); _db.SaveChanges(); // Get new user int edsUserId = _db.tblUsers .Where(x => x.AspNetUserId == aspnetUserId) .Select(x => x.UserId) .SingleOrDefault(); int districtId = _siteUser.Districts[0].Id; newUser.UserId = edsUserId; using (var context = new dbTIREntities()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { try { // 2. Add user to tblUserDistrict tblUserDistrict newTblUserDistrict = new tblUserDistrict() { UserId = edsUserId, DistrictId = districtId, CreatedDatetime = DateTime.Now, ChangedDatetime = DateTime.Now, SchoolYearId = newUser.SchoolYearId, RoleId = (int)newUser.RoleId }; context.tblUserDistricts.Add(newTblUserDistrict); // 3. Add schools for this user UpdateUserSchool(context, newUser); // 4. Commit changes dbContextTransaction.Commit(); } catch (Exception ex) { // 4. Rollback changes dbContextTransaction.Rollback(); throw ex; } } } } catch (Exception ex) { DeleteAspNetUser(aspnetUserId); throw new Exception(String.Format("ERROR: {0}", ex)); } }
public void CreateEdsUser(string aspnetUserId, tblUserExt newUser) { try { // 1. Add user to tblUser tblUser newTblUser = new tblUser() { CreateDatetime = DateTime.Now, AspNetUserId = aspnetUserId, FirstName = newUser.FirstName, LastName = newUser.LastName, UserEmail = newUser.UserEmail, StateId = newUser.StateId, LocalId = newUser.LocalId, RoleId = newUser.RoleId }; _db.tblUsers.Add(newTblUser); _db.SaveChanges(); // Get new user int edsUserId = _db.tblUsers .Where(x => x.AspNetUserId == aspnetUserId) .Select(x => x.UserId) .SingleOrDefault(); int districtId = _siteUser.Districts[0].Id; newUser.UserId = edsUserId; using (var context = new dbTIREntities()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { try { // 2. Add user to tblUserDistrict tblUserDistrict newTblUserDistrict = new tblUserDistrict() { UserId = edsUserId, DistrictId = districtId, CreatedDatetime = DateTime.Now, ChangedDatetime = DateTime.Now, SchoolYearId = newUser.SchoolYearId, RoleId = (int)newUser.RoleId }; context.tblUserDistricts.Add(newTblUserDistrict); // 3. Add schools for this user UpdateUserSchool(context, newUser); // 4. Commit changes dbContextTransaction.Commit(); } catch (Exception ex) { // 4. Rollback changes dbContextTransaction.Rollback(); throw ex; } } } } catch (Exception ex) { DeleteAspNetUser(aspnetUserId); throw new Exception(String.Format("ERROR: {0}", ex)); } }