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 static void ChangeMemberStatus(Guid userId, Guid groupId, GroupMemberState role) { Current.ChangeMemberStatus(userId, groupId, role); }
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; }