Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
            });
        }
Beispiel #3
0
        /// <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);
            });
        }
Beispiel #4
0
        public async Task <IActionResult> Get(EntityGet model)
        {
            var result = await entityService.GetEntitiesAsync(model);

            return(Ok(result));
        }