private static string GetClippedGPIListString(IGroupInfo gi, int clipAfterLength = 60) { StringBuilder sb = new StringBuilder(); foreach (var gpi in gi.GroupPointInfoArray) { string gpiName = gpi.Name.MapNullToEmpty(); if (sb.Length > 0) { sb.Append(","); } if (sb.Length + gpiName.Length <= clipAfterLength) { sb.Append(gpiName); } else { return("{0}...".CheckedFormat(sb)); } } return(sb.ToString()); }
/// <summary>添加帐号与相关群组的关系</summary> /// <param name="accountId">帐号标识</param> /// <param name="groupId">群组标识</param> /// <param name="beginDate">启用时间</param> /// <param name="endDate">停用时间</param> public int AddRelation(string accountId, string groupId, DateTime beginDate, DateTime endDate) { if (string.IsNullOrEmpty(accountId)) { // 帐号标识不能为空 return(1); } if (string.IsNullOrEmpty(groupId)) { // 群组标识不能为空 return(2); } if (LDAPConfigurationView.Instance.IntegratedMode == "ON") { IAccountInfo account = MembershipManagement.Instance.AccountService[accountId]; IGroupInfo group = MembershipManagement.Instance.GroupService[groupId]; // 帐号对象、帐号的全局名称、帐号的登录名、群组对象、群组的全局名称等不能为空。 if (account != null && !string.IsNullOrEmpty(account.GlobalName) && !string.IsNullOrEmpty(account.LoginName) && group != null && !string.IsNullOrEmpty(group.GlobalName)) { LDAPManagement.Instance.Group.AddRelation(account.LoginName, LDAPSchemaClassType.User, group.Name); } } return(this.provider.AddRelation(accountId, groupId, beginDate, endDate)); }
/// <summary> /// 构造函数 /// </summary> /// <param name="mirai"></param> /// <param name="command"></param> /// <param name="info"></param> /// <param name="groupInfo"></param> public GameInput(MiraiHttpSession mirai, string command, IGroupMemberInfo info, IGroupInfo groupInfo) { this.Mirai = mirai; this.Command = command; this.GroupInfo = groupInfo; this.Sender = info; }
public static void ShowSplit(IGroupInfo collection) { var page = new SplitPage(); //if (_sampleData == null) _sampleData = new SampleDataSource(page.BaseUri); //if (collection == null) collection = _sampleData.GroupedCollections.First(); page.Items = collection; //page.Context = collection.Key; Window.Current.Content = page; }
public GroupAnnouncement(string id, IGroupInfo group, string content, long sender, bool allMemberConfirmed, int confirmedMembersCount, DateTime createTime) { Id = id; Group = group; Content = content; Sender = sender; AllMemberConfirmed = allMemberConfirmed; ConfirmedMembersCount = confirmedMembersCount; CreateTime = createTime; }
// ------------------------------------------------------- // 查询 // ------------------------------------------------------- #region 函数:FindOne(string id) /// <summary>查询某条记录</summary> /// <param name="id">标识</param> /// <returns>返回实例<see cref="IGroupInfo"/>的详细信息</returns> public IGroupInfo FindOne(string id) { Dictionary <string, object> args = new Dictionary <string, object>(); args.Add("Id", StringHelper.ToSafeSQL(id)); IGroupInfo param = this.ibatisMapper.QueryForObject <IGroupInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_FindOne", tableName)), args); return(param); }
// ------------------------------------------------------- // 添加 删除 修改 // ------------------------------------------------------- #region 函数:Save(IGroupInfo param) /// <summary>保存记录</summary> /// <param name="param">实例<see cref="IGroupInfo"/>详细信息</param> /// <returns>实例<see cref="IGroupInfo"/>详细信息</returns> public IGroupInfo Save(IGroupInfo param) { if (string.IsNullOrEmpty(param.Id) || !IsExist(param.Id)) { Insert(param); } else { Update(param); } return(param); }
/// <summary> /// 构造函数 /// </summary> /// <param name="groupInfo"></param> public GameStartUp(GameCommand gameCommand, IGroupInfo groupInfo) : base(gameCommand, groupInfo) { GameInfo = new GameInfo(); Steps = new Dictionary <IGameState, IGameStep>() { { GameState.AddPlayer, new AddPlayerStep() }, { GameState.Closed, new ClosedStep() }, { GameState.HunterStep, new HunterStep() }, { GameState.Night, new NightStep() }, { GameState.Over, new OverStep() }, { GameState.ProphetStep, new ProphetStep() }, { GameState.SheriffMoveStep, new SheriffMoveStep() }, { GameState.SheriffSpeekStep, new SheriffSpeekStep() }, { GameState.SheriffVotedStep, new SheriffVotedStep() }, { GameState.TalkAboutStep, new TalkAboutStep() }, { GameState.VotedStep, new VotedStep() }, { GameState.WhiteStep, new WhiteStep() }, { GameState.WitchStep, new WitcherStep() }, { GameState.WolfKillStep, new WolfKillStep() }, }; CommandStart = GameStartCommand; CmmandDestory = GameDestoryCommand; Name = "狼人杀"; }
/// <summary>同步信息至 Active Directory</summary> /// <param name="param">角色信息</param> /// <param name="originalGlobalName">原始的全局名称</param> /// <param name="originalGroupTreeNodeId">原始的分组标识</param> public int SyncToLDAP(IGroupInfo param, string originalGlobalName, string originalCatalogItemId) { if (LDAPConfigurationView.Instance.IntegratedMode == "ON") { if (string.IsNullOrEmpty(param.Name)) { // 角色【${Name}】名称为空,请配置相关信息。 return(1); } else if (string.IsNullOrEmpty(param.GlobalName)) { // 角色【${GlobalName}】名称为空,请配置相关信息。 return(1); } else { // 1.原始的全局名称不为空。 // 2.Active Directory 上有相关对象。 if (!string.IsNullOrEmpty(originalGlobalName) && LDAPManagement.Instance.Group.IsExistName(originalGlobalName)) { if (param.GlobalName != originalGlobalName) { // 角色【${Name}】的名称发生改变。 LDAPManagement.Instance.Group.Rename(originalGlobalName, param.GlobalName); } if (param.CatalogItemId != originalCatalogItemId) { // 角色【${Name}】所属的组织发生变化。 LDAPManagement.Instance.Group.MoveTo(param.GlobalName, MembershipManagement.Instance.CatalogItemService.GetLDAPOUPathByCatalogItemId(param.CatalogItemId)); } return(0); } else { string parentPath = MembershipManagement.Instance.CatalogItemService.GetLDAPOUPathByCatalogItemId(param.CatalogItemId); LDAPManagement.Instance.Group.Add(param.GlobalName, parentPath); // 角色【${Name}】创建成功。 return(0); } } } return(0); }
/// <summary>添加记录</summary> /// <param name="param">实例<see cref="IGroupInfo"/>详细信息</param> public void Insert(IGroupInfo param) { if (string.IsNullOrEmpty(param.Id)) { param.Id = DigitalNumberContext.Generate("Key_Guid"); } if (string.IsNullOrEmpty(param.Code)) { param.Code = DigitalNumberContext.Generate("Table_Group_Key_Code"); } this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param); }
public string FindOne(XmlDocument doc) { StringBuilder outString = new StringBuilder(); string id = XmlHelper.Fetch("id", doc); IGroupInfo param = this.service.FindOne(id); outString.Append("{\"data\":" + AjaxUtil.Parse <IGroupInfo>(param) + ","); outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}"); return(outString.ToString()); }
/// <summary> /// 初始化 /// </summary> /// <param name="row"></param> /// <param name="col"></param> public FiveGame(GameCommand gameCommand, IGroupInfo groupInfo) : base(gameCommand, groupInfo) { int row = Convert.ToInt32(gameCommand.Commands[0].Contents[0]); int col = Convert.ToInt32(gameCommand.Commands[0].Contents[1]); GameInfo = new GameInfo(row, col); Steps = new Dictionary <IGameState, IGameStep>() { { FiveGameState.AddPlayer, new AddPlayerStep() }, { FiveGameState.Play, new PlayStep() }, { FiveGameState.Over, new OverStep() }, { FiveGameState.Init, new InitStep() } }; CommandStart = GameStartCommand; CmmandDestory = GameDestoryCommand; Name = "五子棋"; }
public static void ShowSplit(IGroupInfo collection) { var page = new SplitPage(); if (_sampleData == null) { _sampleData = new SampleDataSource(page.BaseUri); } if (collection == null) { collection = _sampleData.GroupedCollections.First(); } page.Items = collection; page.Context = collection.Key; Window.Current.Content = page; }
public static void ShowSplit(IGroupInfo collection) { var page = new SplitPage(); if (_repository == null) // _repository = new GithubRepository(); _repository = new SampleRepository(page.BaseUri); if (!_repository.IsAuthenticated) _repository.Authenticate(); if (collection == null) collection = _repository.GetCollaborator(""); page.Items = collection; page.Context = collection.Key; Window.Current.Content = page; }
public void chainReceived(IGroupInfo group, IGroupMemberInfo sender, IMessageBase[] msg) { foreach (Conversation conv in conversations) { if (conv.peerid == group.Id) { conv.messages.Add(new KeyValuePair <IBaseInfo, IMessageBase[]>(sender, msg)); if (conv.Equals(current)) { addonRefresh(); } return; } } //没有符合的Conversation,创建。 startConversation(sender.Group.Id, sender.Group.Name, 1).messages.Add(new KeyValuePair <IBaseInfo, IMessageBase[]>(sender, msg)); }
// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(IGroupInfo param) /// <summary>保存记录</summary> /// <param name="param">实例<see cref="IGroupInfo"/>详细信息</param> /// <returns>实例<see cref="IGroupInfo"/>详细信息</returns> public IGroupInfo Save(IGroupInfo param) { if (LDAPConfigurationView.Instance.IntegratedMode == "ON") { IGroupInfo originalObject = FindOne(param.Id); if (originalObject == null) { originalObject = param; } this.SyncToLDAP(param, originalObject.GlobalName, originalObject.CatalogItemId); } // 设置组织全路径 param.FullPath = this.CombineFullPath(param.Name, param.CatalogItemId); // 设置唯一识别名称 param.DistinguishedName = this.CombineDistinguishedName(param.Name, param.CatalogItemId); this.provider.Save(param); if (param != null) { string groupId = param.Id; // 绑定新的关系 if (!string.IsNullOrEmpty(groupId)) { // 1.移除非默认成员关系 MembershipManagement.Instance.GroupService.ClearupRelation(groupId); // 2.设置新的关系 foreach (IAccountInfo item in param.Members) { MembershipManagement.Instance.GroupService.AddRelation(item.Id, groupId); } } } return(param); }
private void OnSemanticZoomViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e) { // only interested in zoomed out->zoomed in transitions if (e.IsSourceZoomedInView) { return; } // get the selected group IGroupInfo <object, object> selectedGroup = e.SourceItem.Item as IGroupInfo <object, object>; // identify the selected group in the zoomed in data source (here I do it by its name, YMMV) var vectorView = zoomedInGridView.ItemsSource as ObservableVectorView <object>; var myItemGroups = vectorView.CollectionGroups; IGroupInfo <object, object> myGroup = myItemGroups.First((g) => { var gi = g as IGroupInfo <object, object>; if (gi == null) { return(false); } return(gi.Key == selectedGroup.Key); }) as IGroupInfo <object, object>; if (myGroup != null) { object firstInGroup = myGroup.First(); object vvi = vectorView[vectorView.IndexOf(firstInGroup)]; bool eq = vvi == firstInGroup; // workaround: need to reset the scroll position first, otherwise ScrollIntoView won't work SemanticZoomLocation zoomloc = new SemanticZoomLocation(); zoomloc.Bounds = new Windows.Foundation.Rect(0, 0, 1, 1); zoomloc.Item = firstInGroup;// myItemGroups.First();//[0]; zoomedInGridView.MakeVisible(zoomloc); // now we can scroll to the selected group in the zoomed in view zoomedInGridView.ScrollIntoView(firstInGroup, ScrollIntoViewAlignment.Leading); } }
// ------------------------------------------------------- // 群组 // ------------------------------------------------------- #region 函数:GetGroups(string ids) /// <summary>获取对应的群组信息</summary> /// <param name="ids">群组标识,多个以逗号隔开</param> /// <returns></returns> public static IList <IGroupInfo> GetGroups(string ids) { string[] keys = ids.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); IList <IGroupInfo> list = new List <IGroupInfo>(); IGroupInfo item = null; foreach (string key in keys) { item = MembershipManagement.Instance.GroupService[key]; // 过滤对象为空或者禁用的对象。 if (item != null && item.Status == 1) { list.Add(item); } } return(list); }
public GroupEventArgs(GroupInfo group) { Group = group; }
public GroupMemberInviteChangedEventArgs(IGroupInfo group, IGroupMemberInfo @operator, bool origin, bool current) : base(group, @operator, origin, current) { }
public BotKickedOutEventArgs(IGroupInfo group, IGroupMemberInfo @operator) : base(group, @operator) { }
public BotGroupEnumPropertyChangedEventArgs(IGroupInfo group, TProperty origin, TProperty current) : base(group, origin, current) { }
/// <summary>修改记录</summary> /// <param name="param">实例<see cref="IGroupInfo"/>详细信息</param> public void Update(IGroupInfo param) { this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", tableName)), param); }
public BotGroupPermissionChangedEventArgs(IGroupInfo group, GroupPermission origin, GroupPermission current) : base(group, origin, current) { }
/// <summary>同步信息</summary> /// <param name="param">群组信息</param> public int SyncFromPackPage(IGroupInfo param) { this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_SyncFromPackPage", tableName)), param); return(0); }
protected GroupEventArgs(GroupInfo group) { Group = group; }
public void checkAndProcessReqQueue() { if (reqs.Count < 1) { return; } DateTime start = DateTime.Now; MainHolder.broadcaster.broadcastToAdminGroup("[队列DEBUG]\n长度=" + reqs.Count); Dictionary <long, GroupEntranceInfo> fails = new Dictionary <long, GroupEntranceInfo>(); string log = ""; int pass = 0; int fail = 0; foreach (KeyValuePair <long, GroupEntranceInfo> d in reqs) { if (d.Value == null) { continue; } IGroupInfo g = getGroupInfo(d.Value.group.Id); IGroupConfig gc = getGroupConf(d.Value.group.Id); int countmember = memberCountGroup(d.Value.group.Id); if (g != null) { bool success = true; int maxmember = groupMaxMember; long q = d.Value.qq.qq; QBaseInfo qi = d.Value.qq; int trusted = DataBase.me.isUserTrusted(q); //QQ q = MainHolder.session.get; if (DataBase.me.isUserOperator(q)) { MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Allow); log += qi.nickname + "-> 是管理员 √\n"; pass++; } else if (trusted >= 0) { long opid = DataBase.me.getUserTrustOperator(q); MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Allow); if (trusted == 1) { DataBase.me.removeUserTrustlist(q); log += qi.nickname + " -> 信任一次 [ATUSER(" + opid + ")] √\n"; } else { log += qi.nickname + " -> 永久信任 [ATUSER(" + opid + ")] √\n"; } pass++; } else if (memberCountGroup(g.Id) >= maxmember - 10) { long gpid = getLeastMemberGroup(); MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Deny, "该群成员已达上限,请加入" + gpid); log += qi.nickname + " -> 群满 ×\n"; fail++; } else if (DataBase.me.isUserBlacklisted(q) && DataBase.me.connected)//已被拉黑 { MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Deny, "您在LUYE通用黑名单中,不允许加群。"); log += qi.nickname + " -> 已被拉黑 ×\n"; fail++; } else if (DataBase.me.whichGroupsAreTheUserIn(q).Count > 0 && DataBase.me.connected) {//重复加群 if (!DataBase.me.isMEIgnoreGroup(g.Id)) { MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Deny, "您加入了其它鹿野群"); log += qi.nickname + " -> 重复加群 ×\n"; fail++; } else { MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Allow); log += qi.nickname + " -> 不查重 √\n"; pass++; } } else { int level = ThirdPartAPIs.getQQLevel(q, 3); if (level < 0) { log += qi.nickname + " -> 等级验证失败 E\n"; fails.Add(d.Key, d.Value); } else if (level < 16) { MainHolder.session.HandleGroupApplyAsync(d.Value.igpargs, GroupApplyActions.Deny, "您的QQ等级(" + level + ")低于设定值(16)"); log += qi.nickname + " -> 等级过低 ×\n"; fail++; } else { log += qi.nickname + " -> 符合要求 √\n"; pass++; } } } } MainHolder.broadcaster.broadcastToAdminGroup("[延迟通过队列处理结果]\n" + log + "--------------\n" + pass + "通过," + fail + "拒绝," + fails.Count() + "错误\n\n处理耗时" + (DateTime.Now - start).TotalSeconds + "s"); reqs.Clear(); reqs = fails; }
public GroupMessageRevokedEventArgs(IGroupInfo group, IGroupMemberInfo @operator, long senderId, int messageId, DateTime sentTime) : base(senderId, messageId, sentTime) { Group = group; Operator = @operator; }
public GroupEntranceAnnouncementChangedEventArgs(IGroupInfo group, IGroupMemberInfo @operator, string origin, string current) : base(group, @operator, origin, current) { }
public GroupPropertyChangedEventArgs(IGroupInfo group, IGroupMemberInfo @operator, TProperty origin, TProperty current) : base(group, origin, current) { Operator = @operator; }
public GroupNameChangedEventArgs(IGroupInfo group, IGroupMemberInfo @operator, string origin, string current) : base(group, @operator, origin, current) { }
public GroupOperatingEventArgs(IGroupInfo group, IGroupMemberInfo @operator) : base(@operator) { Group = group; }