示例#1
0
        public void ChangeMemberStatus(Guid userId, Guid groupId, GroupMemberState state)
        {
            var gm = DataService.PerThread.GroupMemberSet.SingleOrDefault(x => x.GroupId == groupId & x.UserId == userId);

            if (gm == null)
            {
                throw new BusinessLogicException("Указанный участник группы не найден");
            }

            if (gm.State != (byte)GroupMemberState.Moderator && state == GroupMemberState.NotMember)
            {
                gm.State = (byte)GroupMemberState.NotMember;
            }

            if (gm.State != (byte)GroupMemberState.Approved && state == GroupMemberState.Approved)
            {
                gm.State = (byte)GroupMemberState.Approved;
                VotingService.AnalizeGroupMemberBulletins(gm.Id);
            }

            if (gm.State != (byte)GroupMemberState.Moderator && state == GroupMemberState.Moderator)
            {
                if (gm.Group.ModeratorsCount > gm.Group.GroupMembers.Count(x => x.State == (byte)GroupMemberState.Moderator))
                {
                    gm.State = (byte)GroupMemberState.Moderator;
                }
                else
                {
                    gm.State = (byte)GroupMemberState.Approved;
                    VotingService.AnalizeGroupMemberBulletins(gm.Id);
                }
            }

            DataService.PerThread.SaveChanges();

            UpdateGroupState(gm.GroupId);
        }
示例#2
0
 public static void ChangeMemberStatus(Guid userId, Guid groupId, GroupMemberState role)
 {
     Current.ChangeMemberStatus(userId, groupId, role);
 }
示例#3
0
        public void ChangeMemberStatus(Guid userId, Guid groupId, GroupMemberState state)
        {
            var gm = DataService.PerThread.GroupMemberSet.SingleOrDefault(x => x.GroupId == groupId & x.UserId == userId);

            if (gm == null)
                throw new BusinessLogicException("Указанный участник группы не найден");

            if (gm.State != (byte)GroupMemberState.Moderator && state == GroupMemberState.NotMember)
            {
                gm.State = (byte)GroupMemberState.NotMember;
            }

            if (gm.State != (byte)GroupMemberState.Approved && state == GroupMemberState.Approved)
            {
                gm.State = (byte)GroupMemberState.Approved;
                VotingService.AnalizeGroupMemberBulletins(gm.Id);
            }

            if (gm.State != (byte)GroupMemberState.Moderator && state == GroupMemberState.Moderator)
            {
                if (gm.Group.ModeratorsCount > gm.Group.GroupMembers.Count(x => x.State == (byte)GroupMemberState.Moderator))
                    gm.State = (byte)GroupMemberState.Moderator;
                else
                {
                    gm.State = (byte)GroupMemberState.Approved;
                    VotingService.AnalizeGroupMemberBulletins(gm.Id);
                }
            }

            DataService.PerThread.SaveChanges();

            UpdateGroupState(gm.GroupId);
        }
 public GroupMember(string id, GroupMemberState inGroup, DateTime created)
 {
     Id      = id;
     State   = inGroup;
     Created = created;
 }
 public UserGroupData UpdateState(GroupMemberState newState)
 {
     return(new UserGroupData(GroupId, newState));
 }
 public UserGroupData(string groupId, GroupMemberState pendingInvitation)
 {
     GroupId = groupId;
     State   = pendingInvitation;
 }
示例#7
0
 public static void ChangeMemberStatus(Guid userId, Guid groupId, GroupMemberState role)
 {
     Current.ChangeMemberStatus(userId, groupId, role);
 }