public List <EndpointDescriptor> GetEndpointDescriptorList() { endpointDescriptorList.Clear(); List <EndpointDescriptor> buffer = new List <EndpointDescriptor>(); Connect(); MySqlCommand cmd = connection.CreateCommand(); cmd.CommandText = "SELECT * FROM endpoint_descriptor ORDER BY endpoint_descriptor_id"; HtaMySqlDataReader reader = null; try { reader = new HtaMySqlDataReader(cmd.ExecuteReader()); } catch { MessageBox.Show("Datenbankfehler.", "", MessageBoxButton.OK); return(buffer); } while (reader.Read()) { EndpointDescriptor newEndpointType = ReadEndpointDescriptor(reader); buffer.Add(newEndpointType); } Disconnect(); foreach (EndpointDescriptor ep in buffer) { EndpointDescriptor elementToAdd = null; if (ep.ParentId > 0) { if (buffer.Any(item => item.Id == ep.ParentId)) { EndpointDescriptor parent = buffer.First(item => item.Id == ep.ParentId); parent.ChildList.Add(ep); ep.Parent = parent; elementToAdd = parent; } } else { elementToAdd = ep; } if (!endpointDescriptorList.Any(item => item.Id == elementToAdd.Id)) { endpointDescriptorList.Add(elementToAdd); } } return(endpointDescriptorList); }
public EndpointDescriptor ReadEndpointDescriptor(HtaMySqlDataReader reader) { EndpointDescriptor result = new EndpointDescriptor(); result.Id = reader.GetInt32("endpoint_descriptor_id"); result.Name = reader.GetString("endpoint_descriptor_name"); result.Abbreviation = reader.GetString("abbreviation"); result.Dimension = (EndpointDimensionType)Enum.Parse(typeof(EndpointDimensionType), reader.GetString("endpoint_descriptor_dimension").ToUpper()); result.ParentId = reader.GetInt32("parent_id"); result.NameEN = reader.GetString("endpoint_descriptor_shorthand"); result.AbbreviationEN = reader.GetString("abbreviation_en"); return(result); }