コード例 #1
0
        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);
        }