private void Reload() { var entities = new List <EntitySchema>(); string filter = _filter.Text.ToLower(); foreach (var item in _api.GetSchema().Entities) { var entity = _api.GetEntitySchema(item); bool include = true; if (filter.Length > 0) { include = entity.Name.ToLower().Contains(filter) || (entity.Comments != null && entity.Comments.ToLower().Contains(filter)); } if (include) { entities.Add(entity); } } entities.Sort(EntitySchemaComparer.Instance); _entities.BeginUpdate(); _entities.Items.Clear(); string header = null; bool hadSelected = false; foreach (var entity in entities) { var name = new EntityName(entity.Name); if (header != name.Header) { _entities.Items.Add(new HeaderDrawer(HumanText.ToHuman(name.Header))); header = name.Header; } _entities.Items.Add(new EntityDrawer(entity)); if (!hadSelected) { hadSelected = true; _entities.SelectedIndex = _entities.Items.Count - 1; } } _entities.EndUpdate(); }
public int Compare(EntitySchema x, EntitySchema y) { if (x == null) { throw new ArgumentNullException(nameof(x)); } if (y == null) { throw new ArgumentNullException(nameof(y)); } var aName = new EntityName(x.Name); var bName = new EntityName(y.Name); int result; if (aName.Header == null && bName.Header == null) { result = 0; } else if (aName.Header == null) { result = -1; } else if (bName.Header == null) { result = 1; } else { result = String.Compare(aName.Header, bName.Header, StringComparison.CurrentCultureIgnoreCase); } if (result != 0) { return(result); } return(String.Compare(aName.Name, bName.Name, StringComparison.CurrentCultureIgnoreCase)); }