public async Task <IEnumerable <object> > GetEntitiesAsync(EntityGet model) { if (string.IsNullOrWhiteSpace(model.EntityTypeName)) { throw new ArgumentException("Entity type is not specified"); } var entityTypeName = model.EntityTypeName.Trim().ToLowerInvariant(); var result = await(from et in dbContext.EntityTypes join e in dbContext.Entities on et.Id equals e.EntityTypeId where et.Name == entityTypeName select e.Data) .Select(x => JsonSerializer.Deserialize <object>(x, null)) .ToListAsync(); return(result); }
/// <summary> /// Extract data from the Entity object to current object /// </summary> /// <param name="entity"></param> internal void ExtractData(Entity entity) { Properties.Keys.ToList().ForEach(key => { var property = Properties[key]; var genericMethod = EntityGet?.MakeGenericMethod(property.PropertyType); var value = genericMethod?.Invoke(entity, new object[] { key }); property.SetValue(this, value, null); }); Fields.Keys.ToList().ForEach(key => { var field = Fields[key]; var genericMethod = EntityGet?.MakeGenericMethod(field.FieldType); var value = genericMethod?.Invoke(entity, new object[] { key }); field.SetValue(this, value); }); }
/// <summary> /// Extract data from the Entity object to current object /// </summary> /// <param name="entity"></param> internal void ExtractData(Entity entity) { Properties.ForEach(tuple => { var name = tuple.Item1; var property = tuple.Item2; var genericMethod = EntityGet?.MakeGenericMethod(property.PropertyType); var value = genericMethod?.Invoke(entity, new object[] { name }); property.SetValue(this, value, null); }); Fields.ForEach(tuple => { var name = tuple.Item1; var field = tuple.Item2; var genericMethod = EntityGet?.MakeGenericMethod(field.FieldType); var value = genericMethod?.Invoke(entity, new object[] { name }); field.SetValue(this, value); }); }
public async Task <IActionResult> Get(EntityGet model) { var result = await entityService.GetEntitiesAsync(model); return(Ok(result)); }