예제 #1
0
 public void UpdateUserGroup(DT.UserGroup group)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         DA.UserGroup entity = context.UserGroupBases.OfType <DA.UserGroup>().FirstOrDefault(x => x.Id == group.Id);
         Convert.ToEntity(group, entity);
         context.SubmitChanges();
     }
 }
예제 #2
0
 public static DA.UserGroup ToEntity(DT.UserGroup source)
 {
     return(new DA.UserGroup()
     {
         Id = source.Id,
         Name = source.Name
     });
 }
예제 #3
0
 public void AddUserGroupBaseToGroup(DT.UserGroupBase resource, DT.UserGroup group)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         DA.UserGroupUserGroup ugug = new DA.UserGroupUserGroup();
         ugug.UserGroupId          = resource.Id;
         ugug.UserGroupUserGroupId = group.Id;
         context.UserGroupUserGroups.InsertOnSubmit(ugug);
         context.SubmitChanges();
     }
 }
예제 #4
0
        public Guid AddUserGroup(DT.UserGroup group)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                //because id is not automatically set because of user, we have to do it here manually for group
                group.Id = Guid.NewGuid();

                context.UserGroupBases.InsertOnSubmit(Convert.ToEntity(group));
                context.SubmitChanges();
                return(group.Id);
            }
        }
예제 #5
0
        public void RemoveUserGroupBaseFromGroup(DT.UserGroupBase resource, DT.UserGroup userGroup)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from u in context.UserGroupUserGroups
                            where u.UserGroupId == resource.Id && u.UserGroupUserGroupId == userGroup.Id
                            select u;

                if (query.Count() == 1)
                {
                    context.UserGroupUserGroups.DeleteOnSubmit(query.First());
                    context.SubmitChanges();
                }
            }
        }
예제 #6
0
        public void AddRoleToGroup(DT.UserGroup userGroup, DT.Role role)
        {
            Guid[]   userIds;
            string[] aspUsers;

            using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
                userIds = (from u in accessContext.UserGroupUserGroups
                           where u.UserGroupUserGroupId == userGroup.Id
                           select u.UserGroupId).ToArray();
            }

            using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
                aspUsers = (from u in aspContext.aspnet_Users
                            where userIds.Contains(u.UserId)
                            select u.UserName).ToArray();
            }

            Roles.AddUsersToRole(aspUsers, role.Name);
        }
예제 #7
0
        public void RemoveRoleFromGroup(DT.UserGroup userGroup, DT.Role role)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            Guid[]   userIds;
            string[] aspUsers;

            using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
                userIds = (from u in accessContext.UserGroupUserGroups
                           where u.UserGroupUserGroupId == userGroup.Id
                           select u.UserGroupId).ToArray();
            }

            using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
                aspUsers = (from u in aspContext.aspnet_Users
                            where userIds.Contains(u.UserId)
                            select u.UserName).ToArray();
            }

            Roles.RemoveUsersFromRole(aspUsers.ToArray(), role.Name);
        }
예제 #8
0
        public void DeleteUserGroup(DT.UserGroup group)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
            var g = group; //linq does not like vars called group

            if (g.Id != null && g.Id != Guid.Empty)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from ug in context.UserGroupBases.OfType <DA.UserGroup>()
                                where ug.Id == g.Id
                                select ug;
                    if (query.Count() > 0)
                    {
                        context.UserGroupBases.DeleteOnSubmit(query.First());
                        context.SubmitChanges();
                    }
                    else
                    {
                        throw new Exception("UserGroup with id " + g.Id + " does not exist.");
                    }
                }
            }
        }
예제 #9
0
 public static void ToEntity(DT.UserGroup source, DA.UserGroup target)
 {
     target.Name = source.Name;
 }