Beispiel #1
0
        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();
                }
            }
        }
Beispiel #2
0
 public void SaveChanges()
 {
     db.SaveChanges();
 }
Beispiel #3
0
 public void SaveChanges()
 {
     entities.SaveChanges();
 }