private void MemberTree_MouseDoubleClick(object sender, MouseEventArgs e) { MemberNode node = MemberTree.GetNodeAt(e.Location) as MemberNode; if (node == null) { return; } OpMenuItem info = new OpMenuItem(node.UserID, 0); if (Locations.ActiveClientCount(node.UserID) > 0) { var im = ParentView.UI.GetService(ServiceIDs.IM) as IMUI; if (im != null) { im.OpenIMWindow(info.UserID); } } else { var mail = ParentView.UI.GetService(ServiceIDs.Mail) as MailUI; if (mail != null) { mail.OpenComposeWindow(info.UserID); } } }
/// <summary> /// 获取部门所有成员,并以membertree的形式返回 /// </summary> /// <param name="ds"></param> /// <returns></returns> private MemberTree GetAllMembers(DataSet ds) { MemberTree Department = new MemberTree(); Department.Name = "电学部"; foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["部门"].ToString() == "电子部" && dr["在职状态"].ToString() != "False") { //新建一个与datarow对应的子树 MemberTree Company = new MemberTree(); Company.Name = dr["分公司"].ToString(); Company.Children = new List <MemberTree>(); MemberTree Group = new MemberTree(); Group.Name = dr["组别"].ToString(); Group.Children = new List <MemberTree>(); MemberTree Member = new MemberTree(); Member.Name = dr["姓名"].ToString(); Group.Children.Add(Member); Company.Children.Add(Group); //将子树合并到部门树中去 Department.Add(Company); } } return(Department); }
private void InitialWeChat() { InitialTree(userManager.UserInfo.InitialUrl, true); StatusNotifyRequestModel snrm = StatusNotifyRequestModel.Create(userManager.UserInfo); string value = HttpHelper.GetResponseValue(userManager.UserInfo.StatusNotifyUrl, HttpMethod.POST, JsonConvert.SerializeObject(snrm), userManager.UserInfo.Cookies); value = HttpHelper.GetResponseValue(userManager.UserInfo.ContactUrl, HttpMethod.GET, null, userManager.UserInfo.Cookies); using (StreamWriter sw = new StreamWriter(Path + "\\getcontact.txt", true)) sw.Write(value); MemberTree memberTree = JsonConvert.DeserializeObject <MemberTree>(value); BatchRequestModel brm = BatchRequestModel.Create(userManager.UserInfo); for (int i = 0; i < memberTree.MemberCount; ++i) { brm.Count++; brm.List.AddLast(new BatchItem { UserName = memberTree.MemberList[i].UserName }); if (i > 0 && i % 50 == 0) { string json = JsonConvert.SerializeObject(brm); using (StreamWriter sw = new StreamWriter(Path + "\\batch.txt", true)) { sw.WriteLine(json); } value = HttpHelper.GetResponseValue(userManager.UserInfo.BatchContactUrl, HttpMethod.POST, json, userManager.UserInfo.Cookies); InitialContactTree tree = JsonConvert.DeserializeObject <InitialContactTree>(value); tree.Initial(); userManager.UserInfo.SetContact(tree.ContactList); brm.Count = 0; brm.List.Clear(); Thread.Sleep(100); } } if (brm.Count > 0) { string json = JsonConvert.SerializeObject(brm); using (StreamWriter sw = new StreamWriter(Path + "\\batch.txt", true)) { sw.WriteLine(json); } value = HttpHelper.GetResponseValue(userManager.UserInfo.BatchContactUrl, HttpMethod.POST, json, userManager.UserInfo.Cookies); using (StreamWriter sw = new StreamWriter(Path + "\\member.txt", true)) { sw.WriteLine(value); } InitialContactTree tree = JsonConvert.DeserializeObject <InitialContactTree>(value); tree.Initial(); userManager.UserInfo.SetContact(tree.ContactList); } }
/// <summary> /// 获取部门所有成员,并以membertree的形式返回 /// </summary> /// <param name="ds"></param> /// <returns></returns> private MemberTree GetAllMembers(string department) { MemberTree Department = new MemberTree(); Department.Name = department; using (mainEntities db = new mainEntities()) { List <staff> staffs = new List <staff>(); staffs = db.staffs.Where(x => x.部门 == department).ToList <staff>();; foreach (var item in staffs) { //新建一个与datarow对应的子树 MemberTree Company = new MemberTree(); Company.Name = item.分公司; Company.Children = new List <MemberTree>(); MemberTree Group = new MemberTree(); Group.Name = item.组别; Group.Children = new List <MemberTree>(); MemberTree Member = new MemberTree(); //Member.Name = dr["姓名"].ToString()+"("+dr["系统账号"].ToString()+")"; Member.Name = item.Name; Member.Account = item.Account; Group.Children.Add(Member); Company.Children.Add(Group); //将子树合并到部门树中去 Department.Add(Company); } } return(Department); }
public void TestMemberTree() { string path = AppDomain.CurrentDomain.BaseDirectory; string json = string.Empty; using (StreamReader sr = new StreamReader(path + "\\data\\MemberTree.json")) { json = sr.ReadToEnd(); } MemberTree tree = JsonConvert.DeserializeObject <MemberTree>(json); }
private AttorneyStatus GetAttorneyStatusofOne(MemberTree mt) { DataRow[] drs = ds.Tables[0].Select("承办人 LIKE '" + mt.Name + "'"); DataSet dstemp = new DataSet(); dstemp = ds.Clone(); foreach (DataRow dr in drs) { dstemp.Tables[0].Rows.Add(dr.ItemArray); } AttorneyStatus ats = new AttorneyStatus(dstemp); return(ats); }
internal Class(TypeBuilder typeBuilder, string name, DynamicAssembly assembly, Type mappingType, IEnumerable <PropertyBinding> bindings) { _typeBuilder = typeBuilder; Name = name; _assembly = assembly; _mappingType = mappingType; _bindings = bindings; _isInternal = mappingType == null; _mappingTypeMember = new MemberTree(_mappingType); _propertyBuilders = new Dictionary <string, PropertyBuilder>(StringComparer.OrdinalIgnoreCase); _subClasses = new Dictionary <string, Class>(); _alternativeProperties = new Dictionary <string, Class>(); _ctorBuilder = DeclareConstructor(); }
/// <summary> /// 如果是叶子节点,则获取指标详情 /// </summary> /// <param name="mt"></param> /// <returns></returns> private ViewModel.AttorneyIndex GetAttorneyIndexofOne(MemberTree mt) { DataRow[] drs = ds.Tables[0].Select("承办人 LIKE '" + mt.Name + "'"); DataSet dstemp = new DataSet(); dstemp = ds.Clone(); foreach (DataRow dr in drs) { dstemp.Tables[0].Rows.Add(dr.ItemArray); } ViewModel.AttorneyIndex aii = new ViewModel.AttorneyIndex(dstemp, dpStart.SelectedDate, dpEnd.SelectedDate); aii.Name = mt.Name; aii.PercentofExceed = Math.Round(aii.PercentofExceed, 3); return(aii); }
private void memberTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { MemberTree tvi = (MemberTree)memberTree.SelectedItem; List <staff> staffs = new List <staff>(); switch (tvi.NodeType) { case "专业部": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Name).ToList <staff>(); } break; case "分公司": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Department && x.分公司 == tvi.Company).ToList <staff>(); } break; case "组": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Department && x.分公司 == tvi.Company && x.组别 == tvi.Name).ToList <staff>(); } break; default: using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.Name == tvi.Name).ToList <staff>(); } break; } using (mainEntities db = new mainEntities()) { foreach (var staff in staffs) { List <Task> taskstemp = db.Tasks.Where(x => x.Attorney == staff.Name).ToList <Task>(); tasks = tasks.Concat(taskstemp).ToList(); } } }
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { if (!Singleton <BITCurrentSession> .Inst.isLoginUser) { Response.Redirect("~/Admin/Login.aspx"); } else { var ParentCodeId = Singleton <BITCurrentSession> .Inst.SessionMember.CodeId; List <MEMBERS> lstMember = new List <MEMBERS>(); if (Singleton <BITCurrentSession> .Inst.SessionMember.Username.ToUpper().IndexOf("ADMIN") > 0) { lstMember = Singleton <MEMBERS_BC> .Inst.Tree_GetData(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty); } else { lstMember = Singleton <MEMBERS_BC> .Inst.Tree_GetItem_By_CodeId(ParentCodeId); } List <MemberTree> lstTreemember = new List <MemberTree>(); foreach (var _item in lstMember) { MemberTree itemTree = new MemberTree(_item); lstTreemember.Add(itemTree); } if (lstMember != null && lstMember.Count > 0) { MemberTree root = new MemberTree(); root.CodeId_Sponsor = null; root.CodeId = Singleton <BITCurrentSession> .Inst.SessionMember.CodeId_Sponsor; root.Fullname = "Đây là root node"; root.IsLock = 1; lstTreemember.Add(root); var tree = lstTreemember.ToTree(); ltrTree.Text = this.ShowTree(tree.Childens); } } } }
private static void PopulateChildren2(MemberTree node, List <MemberTree> all) { var childs = all.Where(x => x.CodeId_Sponsor == node.CodeId).ToList(); foreach (var item in childs) { node.ExistsChild = true; node.Childens.Add(item); } foreach (var item in childs) { all.Remove(item); } foreach (var item in childs) { PopulateChildren2(item, all); } }
/// <summary> /// 获取某个节点上的所有叶子节点,也即所有的代理人 /// </summary> /// <param name="mt"></param> /// <returns></returns> private List <MemberTree> GetAllLeafofOneNode(MemberTree mt) { List <MemberTree> leafs = new List <MemberTree>(); if (mt.Children != null) { foreach (MemberTree mtchild in mt.Children) { foreach (MemberTree mtleaf in GetAllLeafofOneNode(mtchild)) { leafs.Add(mtleaf); } } } else { leafs.Add(mt); } return(leafs); }
/// <summary> /// 选中一个节点时,在列表区展示相应范围的代理人 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MemberTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { MemberTree tvi = (MemberTree)memberTree.SelectedItem; List <staff> staffs = new List <staff>(); switch (tvi.NodeType) { case "专业部": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Name).ToList <staff>(); } break; case "分公司": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Department && x.分公司 == tvi.Company).ToList <staff>(); } break; case "组": using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.部门 == tvi.Department && x.分公司 == tvi.Company && x.组别 == tvi.Name).ToList <staff>(); } break; default: using (mainEntities db = new mainEntities()) { staffs = db.staffs.Where(x => x.Name == tvi.Name).ToList <staff>(); } break; } dgStaff.ItemsSource = staffs; }
void Chat_MembersUpdate() { MemberTree.BeginUpdate(); MemberTree.Nodes.Clear(); NodeMap.Clear(); List <ulong> users = new List <ulong>(); Room.Members.LockReading(delegate() { if (Room.Members.SafeCount == 0) { MemberTree.EndUpdate(); return; } users = Room.Members.ToList(); TreeListNode root = MemberTree.virtualParent; if (Room.Host != 0) { root = new MemberNode(this, Room.Host); if (Room.IsLoop) { ((MemberNode)root).IsLoopRoot = true; } else { NodeMap[Room.Host] = root as MemberNode; } UpdateNode(root as MemberNode); MemberTree.Nodes.Add(root); root.Expand(); } foreach (ulong id in Room.Members) { if (id != Room.Host) { // if they left the room dont show them if (!ChatService.IsCommandRoom(Room.Kind)) { if (Room.Members.SafeCount == 0) { continue; } } MemberNode node = new MemberNode(this, id); NodeMap[id] = node; UpdateNode(node); GuiUtils.InsertSubNode(root, node); } } }); MemberTree.EndUpdate(); if (VoiceButton != null) { AudioDirection direction = AudioDirection.Both; if (ParentView.ViewHigh != null && ParentView.ViewLow != null) { if (Room.Kind == RoomKind.Command_High || Room.Kind == RoomKind.Live_High) { direction = AudioDirection.Left; } else if (Room.Kind == RoomKind.Command_Low || Room.Kind == RoomKind.Live_Low) { direction = AudioDirection.Right; } } VoiceButton.SetUsers(users, direction); } }
void UpdateNode(MemberNode node) { if (!Room.Members.SafeContains(node.UserID)) { if (node.IsLoopRoot) { node.Text = "Trust Loop"; } return; } // get if node is connected bool connected = (Room.Active && (node.UserID == Core.UserID || Chat.Network.RudpControl.GetActiveSessions(node.UserID).Count > 0)); // get away status bool away = false; foreach (ClientInfo info in Core.Locations.GetClients(node.UserID)) { if (info != null && info.Data.Away) { away = true; } } node.Text = Core.GetName(node.UserID); if (away) { node.Text += " [away]"; } // bold if local if (node.UserID == Core.UserID) { node.Font = new Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); } // color based on connect status Color foreColor = connected ? Color.Black : Color.Gray; if (node.ForeColor == foreColor) { MemberTree.Invalidate(); return; // no change } /*if (!node.Unset) // on first run don't show everyone as joined * { * string message = ""; * * if (connected) * message = Core.GetName(node.UserID) + " has joined the room"; * else * message = Core.GetName(node.UserID) + " has left the room"; * * * // dont log * Chat_Update(new ChatMessage(Core, message, true)); * }*/ node.Unset = false; node.ForeColor = foreColor; MemberTree.Invalidate(); }
/// <summary> /// 点击节点的处理逻辑:获取该节点下的所有人名,并生成指标数据填入【详情列表】中。 /// 同时将汇总数据填入【指标详情区】 /// 同时将案件情况填入【案件情况区】 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MemberTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { //生成指标数据填入【详情列表】中 List <MemberTree> leafs = new List <MemberTree>(); //创建叶子列表用于保存所有的叶子节点 MemberTree mt = new MemberTree(); //创建成员树对象,用于保存所选择的节点数实例 List <ViewModel.AttorneyIndex> indices = new List <ViewModel.AttorneyIndex>(); //创建指标详情列表,用于保存所选择的节点下的所有叶子节点的指标详情 List <AttorneyStatus> atss = new List <AttorneyStatus>(); //创建案件情况列表,用于保存所选择的节点下的所有叶子节点的案件情况 mt = (MemberTree)memberTree.SelectedItem; leafs = GetAllLeafofOneNode(mt); foreach (MemberTree leaf in leafs) { indices.Add(GetAttorneyIndexofOne(leaf)); atss.Add(GetAttorneyStatusofOne(leaf)); } dgDetail.ItemsSource = indices; //将汇总数据填入【指标详情区】 ViewModel.AttorneyIndex indextotal = new ViewModel.AttorneyIndex(); foreach (ViewModel.AttorneyIndex index in indices) { indextotal.FirstVirsionWeight += index.FirstVirsionWeight; indextotal.DoneWeight += index.DoneWeight; indextotal.NumofDoneOA += index.NumofDoneOA; indextotal.NumofHandled += index.NumofHandled; indextotal.NumofExceedlimit += index.NumofExceedlimit; indextotal.NumofExceedOutsidelimit += index.NumofExceedOutsidelimit; indextotal.NumofEntrusted += index.NumofEntrusted; indextotal.DaysofExceedlimit += index.DaysofExceedlimit; indextotal.DaysofExceedOutsidelimit += index.DaysofExceedOutsidelimit; indextotal.TdsFirstVirsions = indextotal.TdsFirstVirsions.Concat(index.TdsFirstVirsions).ToList(); indextotal.TdsDone = indextotal.TdsDone.Concat(index.TdsDone).ToList(); indextotal.TdsDoneOA = indextotal.TdsDoneOA.Concat(index.TdsDoneOA).ToList(); indextotal.TdsEntrusted = indextotal.TdsEntrusted.Concat(index.TdsEntrusted).ToList(); indextotal.TdsExceedOutsidelimit = indextotal.TdsExceedlimit.Concat(index.TdsExceedOutsidelimit).ToList(); indextotal.TdsExceedlimit = indextotal.TdsExceedlimit.Concat(index.TdsExceedlimit).ToList(); indextotal.TdsHandled = indextotal.TdsHandled.Concat(index.TdsHandled).ToList(); } indextotal.PercentofExceed = (double)indextotal.NumofExceedlimit / indextotal.NumofHandled; indextotal.PercentofExceedOutside = (double)indextotal.NumofExceedOutsidelimit / indextotal.NumofHandled; spIndex.DataContext = indextotal; //将汇总数据填入【案件情况区】 AttorneyStatus atstotal = new AttorneyStatus(); foreach (AttorneyStatus ats in atss) { atstotal.IntCN += ats.IntCN; atstotal.IntForeign += ats.IntForeign; atstotal.IntTodo += ats.IntTodo; atstotal.IntFirstVirsion += ats.IntFirstVirsion; atstotal.IntAllOA += ats.IntAllOA; atstotal.IntOAin30 += ats.IntOAin30; atstotal.TdsCN = atstotal.TdsCN.Concat(ats.TdsCN).ToList(); atstotal.TdsForeign = atstotal.TdsForeign.Concat(ats.TdsForeign).ToList(); atstotal.TdsFirstVirsions = atstotal.TdsFirstVirsions.Concat(ats.TdsFirstVirsions).ToList(); atstotal.TdsTodo = atstotal.TdsTodo.Concat(ats.TdsTodo).ToList(); atstotal.TdsAllOA = atstotal.TdsAllOA.Concat(ats.TdsAllOA).ToList(); atstotal.TdsOAin30 = atstotal.TdsOAin30.Concat(ats.TdsOAin30).ToList(); } spStatus.DataContext = atstotal; }
private void MemberTree_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } MemberNode node = MemberTree.GetNodeAt(e.Location) as MemberNode; if (node == null) { return; } if (Core.Trust != null) { Core.Trust.Research(node.UserID, 0, false); } Core.Locations.Research(node.UserID); ContextMenuStripEx treeMenu = new ContextMenuStripEx(); // views List <MenuItemInfo> quickMenus = new List <MenuItemInfo>(); List <MenuItemInfo> extMenus = new List <MenuItemInfo>(); foreach (var service in ParentView.UI.Services.Values) { if (service is TrustService || service is BuddyService) { continue; } service.GetMenuInfo(InterfaceMenuType.Quick, quickMenus, node.UserID, Room.ProjectID); service.GetMenuInfo(InterfaceMenuType.External, extMenus, node.UserID, Room.ProjectID); } if (quickMenus.Count > 0 || extMenus.Count > 0) { if (treeMenu.Items.Count > 0) { treeMenu.Items.Add("-"); } } foreach (MenuItemInfo info in quickMenus) { treeMenu.Items.Add(new OpMenuItem(node.UserID, Room.ProjectID, info.Path, info)); } if (extMenus.Count > 0) { ToolStripMenuItem viewItem = new ToolStripMenuItem("Views", InterfaceRes.views); foreach (MenuItemInfo info in extMenus) { viewItem.DropDownItems.SortedAdd(new OpMenuItem(node.UserID, Room.ProjectID, info.Path, info)); } treeMenu.Items.Add(viewItem); } // add trust/buddy options at bottom quickMenus.Clear(); ParentView.UI.Services[ServiceIDs.Buddy].GetMenuInfo(InterfaceMenuType.Quick, quickMenus, node.UserID, Room.ProjectID); if (ParentView.UI.Services.ContainsKey(ServiceIDs.Trust)) { ParentView.UI.Services[ServiceIDs.Trust].GetMenuInfo(InterfaceMenuType.Quick, quickMenus, node.UserID, Room.ProjectID); } if (quickMenus.Count > 0) { treeMenu.Items.Add("-"); foreach (MenuItemInfo info in quickMenus) { treeMenu.Items.Add(new OpMenuItem(node.UserID, Room.ProjectID, info.Path, info)); } } // show if (treeMenu.Items.Count > 0) { treeMenu.Show(MemberTree, e.Location); } }