Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 protected async Task <ICollection <Characteristic> > GetTreeInternal(
     CharacteristicFilterViewModel vm, params Expression <Func <T, object> >[] includedPath)
 {
     throw new NotImplementedException();
 }