public async Task <ICollection <CharacteristicViewModel> > GetTree([FromUri] CharacteristicFilterViewModel vm) { if (vm != null && !string.IsNullOrEmpty(vm.Name)) { var ids = await _dbContext.CharacteristicContext.Entities .Include(e => e.CharacteristicAliases) .Where(e => e.Name.ToLower().Contains(vm.Name.ToLower()) || e.CharacteristicAliases.Any(a => a.Value.ToLower().Contains(vm.Name.ToLower()))) .Select(e => e.Id).ToListAsync(); var results = new List <Characteristic>(); foreach (var id in ids) { if (!results.Any(e => e.Id == id)) { var branch = await _dbContext.CharacteristicContext.GetParentsWithAllDependenciesAsync(id, true); results = results.Union(branch).ToList(); } } return(results.OrderBy(e => e.LeftKey).Select(e => Mapper.CreateInstanceAndMapProperties <CharacteristicViewModel>(e)).ToList()); } var res = await _dbContext.CharacteristicContext.GetAllQueryWithAllDependencies().ToListAsync(); return(res.Select(e => Mapper.CreateInstanceAndMapProperties <CharacteristicViewModel>(e)).ToList()); }
protected async Task <ICollection <Characteristic> > GetTreeInternal( CharacteristicFilterViewModel vm, params Expression <Func <T, object> >[] includedPath) { throw new NotImplementedException(); }