private List <ServiceType> GetServiceTypes(TreeListNodes nodes) { List <ServiceType> result = new List <ServiceType>(); foreach (TreeListNode listNode in nodes) { if (listNode.Nodes.Count > 0) { result.AddRange(GetServiceTypes(listNode.Nodes)); } ServiceTree service = GetServiceByNode(listNode); if (service == null || service.ParentId != Guid.Empty) { continue; } ServiceType s = new ServiceType(); s.ServiceTypeId = service.ServiceId; s.Name = service.Name; result.Add(s); } return(result); }
private List <TreeListNode> GetNodesByServiceIds(TreeListNodes nodes, List <Guid> serviceIds, bool invert) { List <TreeListNode> result = new List <TreeListNode>(); foreach (TreeListNode node in nodes) { if (node.Nodes.Count > 0) { result.AddRange(GetNodesByServiceIds(node.Nodes, serviceIds, invert)); } ServiceTree service = GetServiceByNode(node); if (service == null || service.ParentId == Guid.Empty) { continue; } if (invert) { if (!serviceIds.Contains(service.ServiceId)) { result.Add(node); } } else { if (serviceIds.Contains(service.ServiceId)) { result.Add(node); } } } return(result); }
private ServiceTree GetServiceByNode(TreeListNode listNode) { if (listNode == null) { return(null); } ServiceTree st = new ServiceTree(); st.ServiceId = (Guid)listNode["service_id"]; st.ParentId = (Guid)listNode["service_type_id"]; st.Name = (string)listNode["name"]; return(st); }
private void ServiceTree_MouseDoubleClick(object sender, MouseEventArgs e) { TreeListHitInfo info = ServiceTree.CalcHitInfo(new Point(e.X, e.Y)); if (info.Node == null || info.HitInfoType == HitInfoType.Empty) { return; } ServiceTree serviceTree = GetServiceByNode(info.Node); ServiceTree parentNode = GetServiceByNode(info.Node.ParentNode); if (parentNode == null) { return; } using (ServiceDetailsForm form = new ServiceDetailsForm()) { form.ServiceTypes = GetServiceTypes(ServiceTree.Nodes); form.CurrentServiceType = new ServiceType { Name = parentNode.Name, ServiceTypeId = parentNode.ServiceId }; form.Service = new Service { Name = serviceTree.Name, ServiceId = serviceTree.ServiceId, ServiceTypeId = parentNode.ServiceId }; if (form.ShowDialog() == DialogResult.OK) { needRaseSelecttionChangedEvent = false; OnServiceUpdated(new ServiceUpdatedEventArgs(form.CurrentServiceType, form.Service)); OnDataSourceChanged(); ServiceTree.Selection.Clear(); needRaseSelecttionChangedEvent = true; Select(form.Service); } } }
private List <Service> GetSelectedServices() { List <Service> result = new List <Service>(); foreach (TreeListNode listNode in ServiceTree.Selection) { ServiceTree service = GetServiceByNode(listNode); if (service == null || service.ParentId == Guid.Empty) { continue; } Service s = new Service(); s.ServiceId = service.ServiceId; s.Name = service.Name; result.Add(s); } return(result); }
private void SelectService(TreeListNodes nodes, Service sService) { foreach (TreeListNode listNode in nodes) { if (listNode.Nodes.Count > 0) { SelectService(listNode.Nodes, sService); } ServiceTree service = GetServiceByNode(listNode); if (service == null || service.ParentId == Guid.Empty) { continue; } if (service.ServiceId == sService.ServiceId) { listNode.Selected = true; return; } } }