public IEnumerable <Dictionary <string, string> > GetMenu() { var s = new Stopwatch(); s.Start(); var type = _context.Types.FirstOrDefault(t => t.Name == "menuitem") ?? throw new ArgumentException("menuitem doesn't exist in database"); var entities = _context.Entities.Where(e => e.TypeId == type.Id); var entitiesProperties = new List <Dictionary <string, string> >(); var propertyRepository = new PropertyRepository(_context); foreach (var entity in entities) { var dict = new Dictionary <string, string>(); var props = propertyRepository.GetByEntityId(entity.Id, type.Id).ToList(); props.ForEach(x => dict.Add(x.Key, x.Value)); entitiesProperties.Add(dict); } s.Stop(); Console.WriteLine(s.ElapsedMilliseconds); return(entitiesProperties); }
public IEnumerable <Entity> GetByTypeName(string typeName) { var type = _context.Types.FirstOrDefault(t => t.Name == typeName); var propertyRepository = new PropertyRepository(_context); var propertyName = propertyRepository.GetAttributeValue(typeName, "display"); var entities = _context.Entities.Where(e => e.TypeId == type.Id); foreach (var entity in entities) { entity.Display = propertyRepository.GetByPropertyName(propertyName, typeName, entity.Id).Value; } return(entities); }