public override IEnumerable <Taxonomy> Get([FromQuery] Dictionary <string, string> filter) { IEnumerable <Taxonomy> result; if (filter.Count == 0) { result = base.Get(filter); } else if (filter.ContainsKey("parent")) { result = context.Set <Taxonomy>() .Include(t => t.Children) .Where(t => t.ParentId == null) .ToList(); } else if (filter.ContainsKey("name")) { result = context.Set <Taxonomy>() .Include(t => t.Parent) .Include(t => t.Children) .Where(t => EF.Equals(t.Name.ToLower(), filter["name"].ToLower())) .ToList(); } else { result = new List <Taxonomy>(); } foreach (var taxonomy in result) { if (taxonomy.Children != null) { taxonomy.Children = taxonomy.Children.OrderBy(f => f.Order).ToList(); } } return(result); }