public void SaveAssignedRolesInTransaction(Guid[] rolesIds, int typeId) { TraderRepo <Trader> traderRepo = new TraderRepo <Trader>(_context); List <Trader> tradersList = traderRepo.GetAllByType(typeId); var UsersContext = new ApplicationDbContext(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { try { //01- Delete old roles DeleteRolePermissionsByTypeID(typeId); // _context.SaveChanges(); //02- Add new roles if (rolesIds != null) { foreach (var id in rolesIds) { RolePermission newRolePermissiion = new RolePermission(); newRolePermissiion.AspNetRolesID = id; newRolePermissiion.UserTypeID = typeId; AddNewRolePermissions(newRolePermissiion); } } _context.SaveChanges(); //using () //{ //03- Assign new roles to users in AspNetUserRoles foreach (var trader in tradersList) { List <ApplicationUser> applicationUsers = GetApplicationUsersByTraderID(trader.ID, UsersContext); foreach (var appUser in applicationUsers) { DeleteAllUserRoles(appUser.Id, UsersContext); if (rolesIds != null) { foreach (var roleID in rolesIds) { ApplicationUserRole appUserRole = new ApplicationUserRole(); appUserRole.UserId = appUser.Id; appUserRole.RoleId = roleID.ToString(); AddNewUserRoles(appUserRole, UsersContext); } } } } UsersContext.SaveChanges(); // } scope.Complete(); } catch { scope.Dispose(); } } }
public void SaveChanges() { db.SaveChanges(); }
public void SaveChanges() { entities.SaveChanges(); }