public GroupMember(TenantId tenantId, string name, GroupMemberType type) { AssertionConcern.NotNull(tenantId, "The tenantId must be provided."); AssertionConcern.NotEmpty(name, "Member name is required."); AssertionConcern.Length(name, 1, 100, "Member name must be 100 characters or less."); this.TenantId = tenantId; this.Name = name; this.Type = type; }
internal GroupMember(TenantId tenantId, string name, GroupMemberType type) { AssertionConcern.AssertArgumentNotNull(tenantId, "The tenantId must be provided."); AssertionConcern.AssertArgumentNotEmpty(name, "Member name is required."); AssertionConcern.AssertArgumentLength(name, 1, 100, "Member name must be 100 characters or less."); this.Name = name; this.TenantId = tenantId; this.Type = type; }
public void TestGroupMemberType() { foreach (GroupMemberType groupMemberType in GroupMemberType.Values()) { Assert.IsNotNull(groupMemberType.ToString()); Assert.IsNotEmpty(groupMemberType.ToString()); } Assert.AreEqual(0, (int)GroupMemberType.REGULAR); Assert.AreEqual("MANAGER", (string)GroupMemberType.MANAGER); Assert.AreEqual("MANAGER", GroupMemberType.MANAGER.GetName()); }
/// <summary> /// 初始化 <see cref="GroupMember"/> 类的新实例 /// </summary> /// <param name="id">QQ号</param> /// <param name="nick">昵称</param> /// <param name="sex">性别</param> /// <param name="age">年龄</param> /// <param name="card">群名片</param> /// <param name="area">所在区域</param> /// <param name="joinTime">加入时间</param> /// <param name="lastSpeakTime">最后发言时间</param> /// <param name="level">成员等级</param> /// <param name="memberType">成员类型</param> /// <param name="exclusiveTitle">专属头衔</param> /// <param name="exclusiveTitleExpirationTime">专属头衔过期时间</param> /// <param name="isBadRecord">是否为不良群成员</param> /// <param name="isAllowEditorCard">是否允许修改群名片</param> public GroupMember(long id, string nick, Sex sex, int age, Group group, string card, string area, DateTime joinTime, DateTime lastSpeakTime, string level, GroupMemberType memberType, string exclusiveTitle, DateTime?exclusiveTitleExpirationTime, bool isBadRecord, bool isAllowEditorCard) : base(id, nick, sex, age) { Group = group ?? throw new ArgumentNullException(nameof(group)); Card = card ?? throw new ArgumentNullException(nameof(card)); Area = area ?? throw new ArgumentNullException(nameof(area)); JoinTime = joinTime; LastSpeakTime = lastSpeakTime; Level = level ?? throw new ArgumentNullException(nameof(level)); MemberType = memberType; ExclusiveTitle = exclusiveTitle ?? throw new ArgumentNullException(nameof(exclusiveTitle)); ExclusiveTitleExpirationTime = exclusiveTitleExpirationTime; IsBadRecord = isBadRecord; IsAllowEditorCard = isAllowEditorCard; }
public bool Unserialize(JsonReader reader) { while (reader.Read()) { switch (reader.TokenType) { case JsonToken.PropertyName: if (reader.Value.Equals("type")) { type = (GroupMemberType)JsonTools.getNextInt(reader); } else if (reader.Value.Equals("updateDt")) { updateDt = JsonTools.getNextBigInt(reader); } else if (reader.Value.Equals("groupId")) { groupId = JsonTools.getNextString(reader); } else if (reader.Value.Equals("memberId")) { memberId = JsonTools.getNextString(reader); } else if (reader.Value.Equals("alias")) { alias = JsonTools.getNextString(reader); } else { } break; case JsonToken.EndObject: return(true); } } return(false); }
/// <summary> /// 生成已指定条件的数据 /// </summary> /// <returns>当前数据池实例</returns> public CQPSimulatorDataPool Generate() { #region --机器人QQ-- if (this.RobotQQ == null) { long qqId = RandomUtility.RandomInt64(QQ.MinValue, 100000000000); string nick = RandomUtility.RandomSymbol(); Sex sex = RandomUtility.RandomEnum <Sex> (); int age = RandomUtility.RandomInt32(0, 131); this.RobotQQ = new QQ(qqId, nick, sex, age); } #endregion #region 好友生成 for (int i = 0; i < this._friendCount; i++) { long qqId = RandomUtility.RandomInt64(Friend.MinValue, 100000000000); if (this.GroupCollection.Count(p => p.Id == qqId) >= 1) { i--; } else { string nick = RandomUtility.RandomSymbol(); Sex sex = RandomUtility.RandomEnum <Sex> (); int age = RandomUtility.RandomInt32(0, 131); string postscript = RandomUtility.RandomElement(RandomUtility.RandomName(), string.Empty); Friend friend = new Friend(qqId, nick, sex, age, postscript); this.QQCollection.Add(friend); this.FriendCollection.Add(friend); } } #endregion #region 群生成 for (int i = 0; i < this._groupCount; i++) { long groupId = RandomUtility.RandomInt64(Group.MinValue, 10000000000); if (this.GroupCollection.Count(p => p.Id == groupId) >= 1) { i--; } else { string name = RandomUtility.RandomGroupName(); int maxMemberCount = RandomUtility.RandomElement(200, 500, 1000, 2000); // 随机获取一个群人数 int currentMemberCount = RandomUtility.RandomInt32(1, maxMemberCount); // 随机群人数, 最少1人 Group group = new Group(groupId, name, currentMemberCount, maxMemberCount); this.GroupCollection.Add(group); #region 群成员生成 string[] levelGroup = RandomUtility.RandomElement(this._groupLevels); // 获取一个成员等级名称组 for (int j = 0; j <= currentMemberCount; j++) { QQ qq = null; bool newQQ = false; if (j == currentMemberCount) { qq = this.RobotQQ; } else { long qqId = RandomUtility.RandomInt64(QQ.MinValue, 100000000000); qq = this.QQCollection.Where(p => p.Id == qqId).FirstOrDefault(); if (qq == null) { string nick = RandomUtility.RandomSymbol(); Sex sex = RandomUtility.RandomEnum <Sex> (); int age = RandomUtility.RandomInt32(0, 131); qq = new QQ(qqId, nick, sex, age); newQQ = true; } } string card = RandomUtility.RandomSymbol(); string area = RandomUtility.RandomArea(); DateTime joinTime = RandomUtility.RandomDateTime(_minValue, DateTime.Now); DateTime lastSpeakTime = RandomUtility.RandomDateTime(joinTime, DateTime.Now); string level = RandomUtility.RandomElement(levelGroup); GroupMemberType memberType = RandomUtility.RandomEnum <GroupMemberType> (); string exculsiveTitle = string.Empty; DateTime? exculsiveTitleDateTime = null; bool isBadRecord = RandomUtility.RandomBoolean(); bool isAllowEditorCard = RandomUtility.RandomBoolean(); GroupMember member = new GroupMember(qq.Id, qq.Nick, qq.Sex, qq.Age, group, card, area, joinTime, lastSpeakTime, level, memberType, exculsiveTitle, exculsiveTitleDateTime, isBadRecord, isAllowEditorCard); group.MemberCollection.Add(member); if (newQQ) { this.QQCollection.Add(member); } } #endregion } } #endregion #region 讨论组生成 for (int i = 0; i < this._discussCount; i++) { long discussId = RandomUtility.RandomInt64(Discuss.MinValue, 10000000000); if (this.DiscussCollection.Count(p => p.Id == discussId) >= 1) { i--; } else { Discuss discuss = new Discuss(discussId); this.DiscussCollection.Add(discuss); #region 讨论组成员生成 int memberCount = RandomUtility.RandomInt32(10, 200); for (int j = 0; j <= memberCount; j++) { QQ qq = null; bool newQQ = false; if (j == memberCount) { qq = this.RobotQQ; } else { long qqId = RandomUtility.RandomInt64(QQ.MinValue, 100000000000); qq = this.QQCollection.Where(p => p.Id == qqId).FirstOrDefault(); if (qq == null) { string nick = RandomUtility.RandomSymbol(); Sex sex = RandomUtility.RandomEnum <Sex> (); int age = RandomUtility.RandomInt32(0, 131); qq = new QQ(qqId, nick, sex, age); newQQ = true; } } DiscussMember member = new DiscussMember(qq.Id, qq.Nick, qq.Sex, qq.Age); discuss.MemberCollection.Add(member); if (newQQ) { this.QQCollection.Add(member); } } ; #endregion } } #endregion return(this); }
internal GroupMember(TenantId tenantId, string name, GroupMemberType type) { this.Name = name; this.TenantId = tenantId; this.Type = type; }
public GroupMembershipDto GetMembers(ServerDto serverDto, string tenant, GroupDto groupDto, GroupMemberType type, Token token) { var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain); tenant = Uri.EscapeDataString(tenant); var url = string.Format(ServiceConfigManager.GetAllMembersOfGroupPostEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName, type); ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; var requestConfig = new RequestSettings { Method = HttpMethod.Post, }; var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType); var postData = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower(); var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, postData); return(JsonConvert.Deserialize <GroupMembershipDto>(response)); }
public GroupMemberTypeConverter( GroupMemberType groupMemberType ) { this.groupMemberType = groupMemberType; }
public GroupMemberBuilder AsMemberType( GroupMemberType groupMemberType ) { this.groupMemberType = groupMemberType; return this; }
public GroupMembershipDto GetMembers(ServerDto serverDto, string tenant, GroupDto groupDto, GroupMemberType type, Token token) { var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain); tenant = Uri.EscapeDataString(tenant); var url = string.Format(ServiceConfigManager.GetAllMembersOfGroupPostEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName, type); ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var requestConfig = new RequestSettings { Method = HttpMethod.Post, }; var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType); var postData = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower(); var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, postData); return JsonConvert.Deserialize<GroupMembershipDto>(response); }